Mercurial > dedupe
changeset 29:ad9c92d782dd
Move cmake file into CMake_Modules
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 06 Sep 2012 18:32:02 +0200 |
| parents | b2c2c2bf2bbd |
| children | 1072257d2bab |
| files | CMakeLists.txt CMake_Modules/PrecompiledHeader.cmake PrecompiledHeader.cmake |
| diffstat | 3 files changed, 77 insertions(+), 77 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Thu Sep 06 18:29:43 2012 +0200 +++ b/CMakeLists.txt Thu Sep 06 18:32:02 2012 +0200 @@ -1,7 +1,7 @@ PROJECT(DeDupe) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) -INCLUDE(PrecompiledHeader.cmake) +#INCLUDE(PrecompiledHeader.cmake) SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake_Modules/")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CMake_Modules/PrecompiledHeader.cmake Thu Sep 06 18:32:02 2012 +0200 @@ -0,0 +1,76 @@ +# Macro for setting up precompiled headers. Usage: +# +# add_precompiled_header(target header.h [FORCEINCLUDE]) +# +# MSVC: A source file with the same name as the header must exist and +# be included in the target (E.g. header.cpp). +# +# MSVC: Add FORCEINCLUDE to automatically include the precompiled +# header file from every source file. +# +# GCC: The precompiled header is always automatically included from +# every header file. +MACRO(ADD_PRECOMPILED_HEADER _targetName _input) + GET_FILENAME_COMPONENT(_inputWe ${_input} NAME_WE) + SET(pch_source ${_inputWe}.cpp) + FOREACH(arg ${ARGN}) + IF(arg STREQUAL FORCEINCLUDE) + SET(FORCEINCLUDE ON) + ELSE(arg STREQUAL FORCEINCLUDE) + SET(FORCEINCLUDE OFF) + ENDIF(arg STREQUAL FORCEINCLUDE) + ENDFOREACH(arg) + + IF(MSVC) + GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) + SET(_sourceFound FALSE) + FOREACH(_source ${sources}) + SET(PCH_COMPILE_FLAGS "") + IF(_source MATCHES \\.\(cc|cxx|cpp\)$) +GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) +IF(_sourceWe STREQUAL ${_inputWe}) +SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yc${_input}") +SET(_sourceFound TRUE) +ELSE(_sourceWe STREQUAL ${_inputWe}) +SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yu${_input}") +IF(FORCEINCLUDE) +SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /FI${_input}") +ENDIF(FORCEINCLUDE) +ENDIF(_sourceWe STREQUAL ${_inputWe}) +SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") + ENDIF(_source MATCHES \\.\(cc|cxx|cpp\)$) + ENDFOREACH() + IF(NOT _sourceFound) + MESSAGE(FATAL_ERROR "A source file for ${_input} was not found. Required for MSVC builds.") + ENDIF(NOT _sourceFound) + ENDIF(MSVC) + + IF(CMAKE_COMPILER_IS_GNUCXX) + GET_FILENAME_COMPONENT(_name ${_input} NAME) + SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}") + SET(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch") + MAKE_DIRECTORY(${_outdir}) + SET(_output "${_outdir}/.c++") + + STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) + SET(_compiler_FLAGS ${${_flags_var_name}}) + + GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) + FOREACH(item ${_directory_flags}) + LIST(APPEND _compiler_FLAGS "-I${item}") + ENDFOREACH(item) + + GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) + LIST(APPEND _compiler_FLAGS ${_directory_flags}) + + SEPARATE_ARGUMENTS(_compiler_FLAGS) + MESSAGE("${CMAKE_CXX_COMPILER} -DPCHCOMPILE ${_compiler_FLAGS} -x c++-header -o {_output} ${_source}") + ADD_CUSTOM_COMMAND( + OUTPUT ${_output} + COMMAND ${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source} + DEPENDS ${_source} ) + ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${_output}) + ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) + SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "-include ${_name} -Winvalid-pch") + ENDIF(CMAKE_COMPILER_IS_GNUCXX) +ENDMACRO()
--- a/PrecompiledHeader.cmake Thu Sep 06 18:29:43 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -# Macro for setting up precompiled headers. Usage: -# -# add_precompiled_header(target header.h [FORCEINCLUDE]) -# -# MSVC: A source file with the same name as the header must exist and -# be included in the target (E.g. header.cpp). -# -# MSVC: Add FORCEINCLUDE to automatically include the precompiled -# header file from every source file. -# -# GCC: The precompiled header is always automatically included from -# every header file. -MACRO(ADD_PRECOMPILED_HEADER _targetName _input) - GET_FILENAME_COMPONENT(_inputWe ${_input} NAME_WE) - SET(pch_source ${_inputWe}.cpp) - FOREACH(arg ${ARGN}) - IF(arg STREQUAL FORCEINCLUDE) - SET(FORCEINCLUDE ON) - ELSE(arg STREQUAL FORCEINCLUDE) - SET(FORCEINCLUDE OFF) - ENDIF(arg STREQUAL FORCEINCLUDE) - ENDFOREACH(arg) - - IF(MSVC) - GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) - SET(_sourceFound FALSE) - FOREACH(_source ${sources}) - SET(PCH_COMPILE_FLAGS "") - IF(_source MATCHES \\.\(cc|cxx|cpp\)$) -GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) -IF(_sourceWe STREQUAL ${_inputWe}) -SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yc${_input}") -SET(_sourceFound TRUE) -ELSE(_sourceWe STREQUAL ${_inputWe}) -SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yu${_input}") -IF(FORCEINCLUDE) -SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /FI${_input}") -ENDIF(FORCEINCLUDE) -ENDIF(_sourceWe STREQUAL ${_inputWe}) -SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") - ENDIF(_source MATCHES \\.\(cc|cxx|cpp\)$) - ENDFOREACH() - IF(NOT _sourceFound) - MESSAGE(FATAL_ERROR "A source file for ${_input} was not found. Required for MSVC builds.") - ENDIF(NOT _sourceFound) - ENDIF(MSVC) - - IF(CMAKE_COMPILER_IS_GNUCXX) - GET_FILENAME_COMPONENT(_name ${_input} NAME) - SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}") - SET(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch") - MAKE_DIRECTORY(${_outdir}) - SET(_output "${_outdir}/.c++") - - STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) - SET(_compiler_FLAGS ${${_flags_var_name}}) - - GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-I${item}") - ENDFOREACH(item) - - GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) - LIST(APPEND _compiler_FLAGS ${_directory_flags}) - - SEPARATE_ARGUMENTS(_compiler_FLAGS) - MESSAGE("${CMAKE_CXX_COMPILER} -DPCHCOMPILE ${_compiler_FLAGS} -x c++-header -o {_output} ${_source}") - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - COMMAND ${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source} - DEPENDS ${_source} ) - ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${_output}) - ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "-include ${_name} -Winvalid-pch") - ENDIF(CMAKE_COMPILER_IS_GNUCXX) -ENDMACRO()
