Blob Blame History Raw
From b873d2cb457503320e5f1d56d516e23eeb9ad7db Mon Sep 17 00:00:00 2001
From: Patrick Spendrin <ps_ml@gmx.de>
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