Bryan O'Sullivan wrote:
I know that I can use set_source_files_properties to add to the compilation flags used to build a single source file, but is there a way to *remove* a compilation flag for one file?

My problem is that I build the source tree with -Wall -Werror, but one source file contains a use of a bad macro from a third party package for which there's no gcc option to override the warning that gets generated, so I need to turn off -Werror instead.

Not easily....

You could do something like remove the -Werror from the flags, and add it into the files that need it.


Something like:

# remove -Werror from CMAKE_CXX_FLAGS and save it
# in EXTRA_FLAG if found
if(CMAKE_CXX_FLAGS MATCHES -Werror)
  replace -Werror in CMAKE_CXX_FLAGS with ""
  set(EXTRA_FLAG -Werror)
...

# if there is an EXTRA_FLAG, add it to all the source files
# except the ones that don't need it.
if(EXTRA_FLAG)
  foreach(f ${SOURCES})
   if(f NOT somefile)
     set_source_files_properties(f1 COMPILE_FLAGS ${EXTRA_FLAG})

-Bill
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to