cmake-precompiled-header icon indicating copy to clipboard operation
cmake-precompiled-header copied to clipboard

If project define string difinition or have debug compiller options - not work precompile header.

Open talshadow opened this issue 9 years ago • 3 comments

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)")

talshadow avatar Nov 10 '14 18:11 talshadow

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.

wolfv avatar Mar 29 '16 09:03 wolfv

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.

phobos2077 avatar Mar 20 '17 06:03 phobos2077

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

will not work. You have to use add_compile_options(-std=c++11) instead

bubnikv avatar Oct 29 '18 16:10 bubnikv