automoc/0027-add-some-changes-to-bu...

59 lines
2.1 KiB
Diff

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