From b873d2cb457503320e5f1d56d516e23eeb9ad7db Mon Sep 17 00:00:00 2001 From: Patrick Spendrin Date: Mon, 8 Nov 2010 18:12:50 +0100 Subject: [PATCH 27/33] add some changes to build automoc statically --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 43e225a..2effd95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,13 @@ project(Automoc4) cmake_minimum_required(VERSION 2.4.5 FATAL_ERROR) +if(WIN32) + # make cmake 2.6 happy + if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) + endif(COMMAND cmake_policy) +endif(WIN32) + include(CTest) find_package(Qt4 REQUIRED COMPONENTS QtCore ) @@ -19,6 +26,27 @@ include(Automoc4CPack.cmake) configure_file(automoc4_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/automoc4_config.h) +if(MSVC AND AUTOMOC_STATIC) + IF(EXISTS "${QT_MKSPECS_DIR}/default/qmake.conf") + FILE(READ "${QT_MKSPECS_DIR}/default/qmake.conf" _qmake_FILE_contents) + STRING(REGEX MATCH "QMAKE_CFLAGS_RELEASE[^\n]+" QMAKE_CFLAGS_RELEASE "${_qmake_FILE_contents}") + ENDIF(EXISTS "${QT_MKSPECS_DIR}/default/qmake.conf") + + if (QMAKE_CFLAGS_RELEASE MATCHES ".*-MT.*") + MESSAGE(STATUS "Qt is build in static mode with static runtime - use static build mode with static runtime too") + set (MSVCRT_COMPILE_FLAGS "-MT /Os /Oy /GL") + set (MSVCRT_LINK_FLAGS "/NODEFAULTLIB:msvcrt") + else (QMAKE_CFLAGS_RELEASE MATCHES ".*-MT.*") + set (MSVCRT_COMPILE_FLAGS "-MD") + set (MSVCRT_LINK_FLAGS "") + MESSAGE(STATUS "Qt is build in static mode using shared runtime - use static build mode too") + endif (QMAKE_CFLAGS_RELEASE MATCHES ".*-MT.*") + + set (CMAKE_C_FLAGS_RELEASE "${MSVCRT_COMPILE_FLAGS} /O2 /Ob2 /D NDEBUG") + set (CMAKE_CXX_FLAGS_RELEASE "${MSVCRT_COMPILE_FLAGS} /O2 /Ob2 /D NDEBUG") + set (CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO ${MSVCRT_LINK_FLAGS}") +endif(MSVC AND AUTOMOC_STATIC) + # Always include srcdir and builddir in include path set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories(${QT_INCLUDE_DIR}) -- 2.4.3