[CMake] Possible to modify COMPILE_FLAGS?
The problem I'm trying to solve is to have -Werror for the whole project except a few files which include system headers that give warnings we can't workaround (even with -isystem). So I'm trying to get cmake to replace some flags for a specific file, and I ran into the problem that the variable appears not to be set. get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS) ... modify the MYVAR ... set the flags back But the variable isnt set, Im sure the source file is valid because I printed it from the list passed to the target, and I tried this before and after defining the source file in the target: message(FATAL_ERROR Check: ${MYVAR}) Check: NOTFOUND I'm guessing the COMPILE_FLAGS property can be set which overrides the default flags but is there a good way to manipulate the existing flags? -- - Campbell -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Possible to modify COMPILE_FLAGS?
On 10/25/2011 09:51 AM, Campbell Barton wrote: The problem I'm trying to solve is to have -Werror for the whole project except a few files which include system headers that give warnings we can't workaround (even with -isystem). So I'm trying to get cmake to replace some flags for a specific file, and I ran into the problem that the variable appears not to be set. get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS) ... modify the MYVAR ... set the flags back But the variable isnt set, Im sure the source file is valid because I printed it from the list passed to the target, and I tried this before and after defining the source file in the target: message(FATAL_ERROR Check: ${MYVAR}) Check: NOTFOUND I'm guessing the COMPILE_FLAGS property can be set which overrides the default flags but is there a good way to manipulate the existing flags? Problem is, that the COMPILE_FLAGS property only *appends* to the default compile flags. You'll have to remove -Werror from CMAKE_LANG_FLAGS[_CONFIG] variables and set it instead on all the files you want it to be set for. Michael -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Possible to modify COMPILE_FLAGS?
Thanks for that, from reading the docs now this is more clear but for some reason I had the impression the flags on a file could be manipulated. # --- # Heres the macro I came up with to disable certain warnings for a given set of files... macro(remove_strict_flags_file filenames) foreach(_SOURCE ${ARGV}) if(CMAKE_COMPILER_IS_GNUCC) set_source_files_properties(${_SOURCE} PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations ) endif() if(MSVC) # TODO endif() endforeach() unset(_SOURCE) endmacro() # --- # Example use remove_strict_flags_file( intern/indexer.c intern/util.c intern/anim_movie.c ) On Tue, Oct 25, 2011 at 7:16 PM, Michael Wild them...@gmail.com wrote: On 10/25/2011 09:51 AM, Campbell Barton wrote: The problem I'm trying to solve is to have -Werror for the whole project except a few files which include system headers that give warnings we can't workaround (even with -isystem). So I'm trying to get cmake to replace some flags for a specific file, and I ran into the problem that the variable appears not to be set. get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS) ... modify the MYVAR ... set the flags back But the variable isnt set, Im sure the source file is valid because I printed it from the list passed to the target, and I tried this before and after defining the source file in the target: message(FATAL_ERROR Check: ${MYVAR}) Check: NOTFOUND I'm guessing the COMPILE_FLAGS property can be set which overrides the default flags but is there a good way to manipulate the existing flags? Problem is, that the COMPILE_FLAGS property only *appends* to the default compile flags. You'll have to remove -Werror from CMAKE_LANG_FLAGS[_CONFIG] variables and set it instead on all the files you want it to be set for. Michael -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- - Campbell -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Possible to modify COMPILE_FLAGS?
On Tue, Oct 25, 2011 at 8:58 PM, Campbell Barton ideasma...@gmail.comwrote: Thanks for that, from reading the docs now this is more clear but for some reason I had the impression the flags on a file could be manipulated. # --- # Heres the macro I came up with to disable certain warnings for a given set of files... macro(remove_strict_flags_file filenames) foreach(_SOURCE ${ARGV}) if(CMAKE_COMPILER_IS_GNUCC) set_source_files_properties(${_SOURCE} PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations ) endif() if(MSVC) # TODO endif() endforeach() unset(_SOURCE) endmacro() # --- # Example use remove_strict_flags_file( intern/indexer.c intern/util.c intern/anim_movie.c ) On Tue, Oct 25, 2011 at 7:16 PM, Michael Wild them...@gmail.com wrote: On 10/25/2011 09:51 AM, Campbell Barton wrote: The problem I'm trying to solve is to have -Werror for the whole project except a few files which include system headers that give warnings we can't workaround (even with -isystem). So I'm trying to get cmake to replace some flags for a specific file, and I ran into the problem that the variable appears not to be set. get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS) ... modify the MYVAR ... set the flags back But the variable isnt set, Im sure the source file is valid because I printed it from the list passed to the target, and I tried this before and after defining the source file in the target: message(FATAL_ERROR Check: ${MYVAR}) Check: NOTFOUND I'm guessing the COMPILE_FLAGS property can be set which overrides the default flags but is there a good way to manipulate the existing flags? Problem is, that the COMPILE_FLAGS property only *appends* to the default compile flags. You'll have to remove -Werror from CMAKE_LANG_FLAGS[_CONFIG] variables and set it instead on all the files you want it to be set for. Michael -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- - Campbell -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake The flags on a file CAN be manipulated, but Michael's point was that the flags on a file are ADDED to the global flags and the flags on its containing target... So there's no reliable way to set file flags that will remove flags that were already added by the global or target level flags. HTH, David -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Possible to modify COMPILE_FLAGS?
On 10/26/2011 03:56 AM, David Cole wrote: On Tue, Oct 25, 2011 at 8:58 PM, Campbell Barton ideasma...@gmail.com mailto:ideasma...@gmail.com wrote: Thanks for that, from reading the docs now this is more clear but for some reason I had the impression the flags on a file could be manipulated. # --- # Heres the macro I came up with to disable certain warnings for a given set of files... macro(remove_strict_flags_file filenames) foreach(_SOURCE ${ARGV}) if(CMAKE_COMPILER_IS_GNUCC) set_source_files_properties(${_SOURCE} PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations ) endif() if(MSVC) # TODO endif() endforeach() unset(_SOURCE) endmacro() # --- # Example use remove_strict_flags_file( intern/indexer.c intern/util.c intern/anim_movie.c ) On Tue, Oct 25, 2011 at 7:16 PM, Michael Wild them...@gmail.com mailto:them...@gmail.com wrote: On 10/25/2011 09:51 AM, Campbell Barton wrote: The problem I'm trying to solve is to have -Werror for the whole project except a few files which include system headers that give warnings we can't workaround (even with -isystem). So I'm trying to get cmake to replace some flags for a specific file, and I ran into the problem that the variable appears not to be set. get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS) ... modify the MYVAR ... set the flags back But the variable isnt set, Im sure the source file is valid because I printed it from the list passed to the target, and I tried this before and after defining the source file in the target: message(FATAL_ERROR Check: ${MYVAR}) Check: NOTFOUND I'm guessing the COMPILE_FLAGS property can be set which overrides the default flags but is there a good way to manipulate the existing flags? Problem is, that the COMPILE_FLAGS property only *appends* to the default compile flags. You'll have to remove -Werror from CMAKE_LANG_FLAGS[_CONFIG] variables and set it instead on all the files you want it to be set for. Michael -- Powered by www.kitware.com http://www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- - Campbell -- Powered by www.kitware.com http://www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake The flags on a file CAN be manipulated, but Michael's point was that the flags on a file are ADDED to the global flags and the flags on its containing target... So there's no reliable way to set file flags that will remove flags that were already added by the global or target level flags. HTH, David Actually, I just found out, that in the special case of CMAKE_COMPILER_IS_GNUCC{,XX} and the -WXXX settings, you actually can effectively remove them for individual files, targets or directories by setting the COMPILE_FLAGS property to -Wno-XXX. In above case, -Werror will still be passed on the command line, but it will be overridden by -Wno-error that comes later on. HTH Michael -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake