From 2ceb5e27693b7ac92611410d2e488821e6dd9ba5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Peter=20K=C3=BCmmel?= Date: Mon, 23 Oct 2006 13:32:46 +0000 Subject: [PATCH] add support of precompiled headers for msvc, enable with -Dpch=1, disable headers by defining LYX_DONT_PRECOMPILE_* macros in config.C.cmake git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15505 a592a061-630c-0410-9148-cb99ea01b6c8 --- development/cmake/CMakeLists.txt | 29 +- development/cmake/config.C.cmake | 444 ++++++++++++++++++ development/cmake/config.h.cmake | 5 + development/cmake/modules/LyXMacros.cmake | 1 - development/cmake/src/CMakeLists.txt | 10 +- .../cmake/src/frontends/CMakeLists.txt | 4 + .../src/frontends/controllers/CMakeLists.txt | 4 + .../cmake/src/frontends/qt4/CMakeLists.txt | 4 + development/cmake/src/graphics/CMakeLists.txt | 4 + development/cmake/src/insets/CMakeLists.txt | 4 + development/cmake/src/mathed/CMakeLists.txt | 4 + development/cmake/src/support/CMakeLists.txt | 6 +- 12 files changed, 507 insertions(+), 12 deletions(-) create mode 100755 development/cmake/config.C.cmake diff --git a/development/cmake/CMakeLists.txt b/development/cmake/CMakeLists.txt index 69e7a0bb45..92575272d3 100644 --- a/development/cmake/CMakeLists.txt +++ b/development/cmake/CMakeLists.txt @@ -88,14 +88,35 @@ if(MSVC) SET(CMAKE_EXE_LINKER_FLAGS /MANIFEST) endif(MSVC_IDE) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Zi -wd4996 -wd4800" CACHE STRING "runtime-library flags" FORCE) - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -wd4996 -wd4800" CACHE STRING "runtime-library flags" FORCE) - SET(CMAKE_C_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) - SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) + else(MSVC) add_definitions(-DBOOST_USER_CONFIG="") endif(MSVC) +if(pch AND MSVC) + set(pch TRUE CACHE TYPE STRING) + + macro(lyx_add_msvc_pch _sources) + SET_SOURCE_FILES_PROPERTIES(${${_sources}} PROPERTIES COMPILE_FLAGS + "/Yuconfig.h /Fp${CMAKE_BINARY_DIR}/config.pch /Fd${CMAKE_BINARY_DIR}/pchlib.pdb") + endmacro(lyx_add_msvc_pch) + + configure_file(config.C.cmake ${CMAKE_BINARY_DIR}/config.C) + SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/config.C PROPERTIES COMPILE_FLAGS + "/Ycconfig.h /Fp${CMAKE_BINARY_DIR}/config.pch /Fd${CMAKE_BINARY_DIR}/pchlib.pdb") + + include_directories(${CMAKE_CURRENT_BINARY_DIR} ${TOP_SRC_DIR}/src/support ${ICONV_INCLUDE_DIR}) + add_library(pchlib STATIC ${CMAKE_BINARY_DIR}/config.C) + + set(pchlibname pchlib ) + set(PRECOMPILED_HEADERS TRUE) +else(pch AND MSVC) + macro(lyx_add_msvc_pch) + endmacro(lyx_add_msvc_pch) + set(pchlibname boost_signals) # dummy +endif(pch AND MSVC) + #TODO: insource is not the best place configure_file(${TOP_SRC_DIR}/lib/lyx2lyx/lyx2lyx_version.py.in diff --git a/development/cmake/config.C.cmake b/development/cmake/config.C.cmake new file mode 100755 index 0000000000..cee4a9fc1a --- /dev/null +++ b/development/cmake/config.C.cmake @@ -0,0 +1,444 @@ +/* + * \file config.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * This is the compilation configuration file for LyX. + * It was generated by autoconfs configure. + * You might want to change some of the defaults if something goes wrong + * during the compilation. + */ + +#include + +//#define LYX_DONT_PRECOMPILE_SRC +//#define LYX_DONT_PRECOMPILE_SUPPORT +//#define LYX_DONT_PRECOMPILE_INSETS +//#define LYX_DONT_PRECOMPILE_MATHED +//#define LYX_DONT_PRECOMPILE_FRONTENDS +//#define LYX_DONT_PRECOMPILE_CONTROLLERS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if BOOST_VERSION < 103300 +# include +#else +# include +#endif + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef LYX_DONT_PRECOMPILE_SRC +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#ifndef LYX_DONT_PRECOMPILE_SUPPORT +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + + +#ifndef LYX_DONT_PRECOMPILE_INSETS +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#ifndef LYX_DONT_PRECOMPILE_MATHED +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + + +#ifndef LYX_DONT_PRECOMPILE_FRONTENDS +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#ifndef LYX_DONT_PRECOMPILE_CONTROLLERS +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#endif + diff --git a/development/cmake/config.h.cmake b/development/cmake/config.h.cmake index 1627ea2129..e12a33c3c2 100644 --- a/development/cmake/config.h.cmake +++ b/development/cmake/config.h.cmake @@ -163,4 +163,9 @@ #define uintmax_t UINT_MAX #endif +#ifdef _MSC_VER +#pragma warning( disable : 4800 ) //: forcing value to bool 'true' or 'false' (performance warning) +#endif + + #endif diff --git a/development/cmake/modules/LyXMacros.cmake b/development/cmake/modules/LyXMacros.cmake index 4895221467..caf323506f 100644 --- a/development/cmake/modules/LyXMacros.cmake +++ b/development/cmake/modules/LyXMacros.cmake @@ -124,4 +124,3 @@ MACRO (LYX_AUTOMOC) endif (EXISTS ${_abs_FILE} AND NOT _skip) endforeach (_current_FILE) endmacro (LYX_AUTOMOC) - diff --git a/development/cmake/src/CMakeLists.txt b/development/cmake/src/CMakeLists.txt index c33bae3a39..a18f1d6f5f 100644 --- a/development/cmake/src/CMakeLists.txt +++ b/development/cmake/src/CMakeLists.txt @@ -27,21 +27,21 @@ list(REMOVE_ITEM lyx_sources ${TOP_SRC_DIR}/src/ispell.C ${TOP_SRC_DIR}/src/Variables.C ${TOP_SRC_DIR}/src/Sectioning.C) - -set( lyx_sources ${lyx_sources} ${CMAKE_CURRENT_BINARY_DIR}/version.C ) if(ASPELL_FOUND) include_directories(${ASPELL_INCLUDE_DIR}) set(lyx_sources ${lyx_sources} ${TOP_SRC_DIR}/src/aspell.C) endif(ASPELL_FOUND) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) +lyx_add_msvc_pch(lyx_sources) + +set(lyx_sources ${lyx_sources} ${CMAKE_CURRENT_BINARY_DIR}/version.C) + add_executable(lyx-${qt_postfix} ${lyx_sources} ${lyx_headers} - ${CMAKE_CURRENT_BINARY_DIR}/version.C ) target_link_libraries(lyx-${qt_postfix} @@ -54,9 +54,9 @@ target_link_libraries(lyx-${qt_postfix} intl ${QT_QTMAIN_LIBRARY} boost_iostreams + ${pchlibname} ) - if(ASPELL_FOUND) target_link_libraries(lyx-${qt_postfix} ${ASPELL_LIBRARY}) endif(ASPELL_FOUND) diff --git a/development/cmake/src/frontends/CMakeLists.txt b/development/cmake/src/frontends/CMakeLists.txt index e3e1675a7d..55e73bfd01 100644 --- a/development/cmake/src/frontends/CMakeLists.txt +++ b/development/cmake/src/frontends/CMakeLists.txt @@ -16,7 +16,11 @@ add_subdirectory(${qt_postfix}) file(GLOB frontends_sources ${TOP_SRC_DIR}/src/frontends/*.C) file(GLOB frontends_headers ${TOP_SRC_DIR}/src/frontends/*.h) +lyx_add_msvc_pch(frontends_sources) + add_library(frontends STATIC ${frontends_sources} ${frontends_headers}) +add_dependencies(frontends ${pchlibname}) + project_source_group("${GROUP_CODE}" frontends_sources frontends_headers) diff --git a/development/cmake/src/frontends/controllers/CMakeLists.txt b/development/cmake/src/frontends/controllers/CMakeLists.txt index d2922e9f09..a5c572348b 100644 --- a/development/cmake/src/frontends/controllers/CMakeLists.txt +++ b/development/cmake/src/frontends/controllers/CMakeLists.txt @@ -9,11 +9,15 @@ project(controllers) file(GLOB controllers_sources ${TOP_SRC_DIR}/src/frontends/controllers/*.C) file(GLOB controllers_headers ${TOP_SRC_DIR}/src/frontends/controllers/*.h) +lyx_add_msvc_pch(controllers_sources) + include_directories(${TOP_SRC_DIR}/src/frontends/controllers) add_library(controllers STATIC ${controllers_sources} ${controllers_headers}) target_link_libraries(controllers boost_regex boost_filesystem) +add_dependencies(controllers ${pchlibname}) + project_source_group("${GROUP_CODE}" controllers_sources controllers_headers) diff --git a/development/cmake/src/frontends/qt4/CMakeLists.txt b/development/cmake/src/frontends/qt4/CMakeLists.txt index ef2bf06131..b0dab2fada 100644 --- a/development/cmake/src/frontends/qt4/CMakeLists.txt +++ b/development/cmake/src/frontends/qt4/CMakeLists.txt @@ -11,6 +11,7 @@ file(GLOB frontends_qt4_sources ${TOP_SRC_DIR}/src/frontends/qt4/*.C) file(GLOB frontends_qt4_headers ${TOP_SRC_DIR}/src/frontends/qt4/*.h) file(GLOB frontend_qt4_UI ${TOP_SRC_DIR}/src/frontends/qt4/ui/*.ui) +lyx_add_msvc_pch(frontends_qt4_sources) lyx_automoc(${frontends_qt4_sources}) @@ -23,6 +24,7 @@ add_definitions( -DQT_NO_KEYWORDS ) + include_directories( ${TOP_SRC_DIR}/src/frontends/qt4 ${TOP_SRC_DIR}/src/frontends/controllers ${CMAKE_CURRENT_BINARY_DIR}) @@ -31,6 +33,8 @@ add_library(frontend_qt4 STATIC ${frontends_qt4_sources} ${frontends_qt4_headers target_link_libraries(frontend_qt4 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} controllers) +add_dependencies(frontend_qt4 ${pchlibname}) + if(WIN32) target_link_libraries(frontend_qt4 Gdi32) endif(WIN32) diff --git a/development/cmake/src/graphics/CMakeLists.txt b/development/cmake/src/graphics/CMakeLists.txt index d85dac3600..3eb5421396 100644 --- a/development/cmake/src/graphics/CMakeLists.txt +++ b/development/cmake/src/graphics/CMakeLists.txt @@ -9,9 +9,13 @@ project(graphics) file(GLOB graphics_sources ${TOP_SRC_DIR}/src/graphics/*.C) file(GLOB graphics_headers ${TOP_SRC_DIR}/src/graphics/*.h) +lyx_add_msvc_pch(graphics_sources) + include_directories(${TOP_SRC_DIR}/src/graphics) add_library(graphics STATIC ${graphics_sources} ${graphics_headers}) +add_dependencies(graphics ${pchlibname}) + project_source_group("${GROUP_CODE}" graphics_sources graphics_headers) diff --git a/development/cmake/src/insets/CMakeLists.txt b/development/cmake/src/insets/CMakeLists.txt index 3a4c9495f5..4fe34c569d 100644 --- a/development/cmake/src/insets/CMakeLists.txt +++ b/development/cmake/src/insets/CMakeLists.txt @@ -11,9 +11,13 @@ file(GLOB insets_headers ${TOP_SRC_DIR}/src/insets/*.h) list(REMOVE_ITEM insets_sources ${TOP_SRC_DIR}/src/insets/insettheorem.C) +lyx_add_msvc_pch(insets_sources) + include_directories(${TOP_SRC_DIR}/src/insets) add_library(insets STATIC ${insets_sources} ${insets_headers}) +add_dependencies(insets ${pchlibname}) + project_source_group("${GROUP_CODE}" insets_sources insets_headers) diff --git a/development/cmake/src/mathed/CMakeLists.txt b/development/cmake/src/mathed/CMakeLists.txt index 50735f99a3..d0e91000de 100644 --- a/development/cmake/src/mathed/CMakeLists.txt +++ b/development/cmake/src/mathed/CMakeLists.txt @@ -14,9 +14,13 @@ list(REMOVE_ITEM mathed_sources ${TOP_SRC_DIR}/src/mathed/InsetMathMBox.C ${TOP_SRC_DIR}/src/mathed/InsetFormulaMacro.C) +lyx_add_msvc_pch(mathed_sources) + include_directories(${TOP_SRC_DIR}/src/mathed) add_library(mathed STATIC ${mathed_sources} ${mathed_headers}) +add_dependencies(mathed ${pchlibname}) + project_source_group("${GROUP_CODE}" mathed_sources mathed_headers) diff --git a/development/cmake/src/support/CMakeLists.txt b/development/cmake/src/support/CMakeLists.txt index 4aeb4e8988..ce2784676b 100644 --- a/development/cmake/src/support/CMakeLists.txt +++ b/development/cmake/src/support/CMakeLists.txt @@ -19,17 +19,19 @@ list(REMOVE_ITEM support_sources ${TOP_SRC_DIR}/src/support/os_os2.C ${TOP_SRC_DIR}/src/support/atexit.c ${TOP_SRC_DIR}/src/support/strerror.c) - + +lyx_add_msvc_pch(support_sources) set(support_sources ${support_sources} ${CMAKE_CURRENT_BINARY_DIR}/package.C) include_directories(${TOP_SRC_DIR}/src/support ${ICONV_INCLUDE_DIR}) - add_library(support STATIC ${support_sources} ${support_headers}) target_link_libraries(support boost_signals) +add_dependencies(support ${pchlibname}) + if(WIN32) target_link_libraries(support shlwapi) endif(WIN32) -- 2.39.2