cmake-precompiled-header
cmake-precompiled-header copied to clipboard
If project define string difinition or have debug compiller options - not work precompile header.
if some in CMakeLists.txt have : target_compile_definitions(test-cxx-force PUBLIC OPENFLAG="Open") build wrong gch file. if call cmake with -DCMAKE_BUILD_TYPE=Debug build wrong gch file. Try this lifehack :)
#export_all_flags("${_pch_flags_file}") #set(_compiler_FLAGS "@${_pch_flags_file}") add_custom_command( OUTPUT "${_pchfile}" COMMAND "${CMAKE_COMMAND}" -E copy "${_pch_header}" "${_pchfile}" DEPENDS "${_pch_header}" COMMENT "Updating ${_name}") add_custom_command( OUTPUT "${_output_cxx}" COMMAND "${CMAKE_CXX_COMPILER}" $(CXX_DEFINES) $(CXX_FLAGS) -x c++-header -o "${_output_cxx}" "${_pchfile}" DEPENDS "${_pchfile}" "${_pch_flags_file}" COMMENT "Precompiling ${_name} for ${_target} (C++)") add_custom_command( OUTPUT "${_output_c}" COMMAND "${CMAKE_C_COMPILER}" $(C_DEFINES) $(C_FLAGS) -x c-header -o "${_output_c}" "${_pchfile}" DEPENDS "${_pchfile}" "${_pch_flags_file}" COMMENT "Precompiling ${_name} for ${_target} (C)")
I have a similar problem when trying to use C++11.
I defined using C++11 with set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
but it isn't picked up by this the precompiled header.
I have similar issue. I'm using set(CMAKE_CXX_STANDARD 14)
but it doesn't got picked up by this script when compiling the header, and so compilation fails.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
will not work. You have to use add_compile_options(-std=c++11) instead