[CMake] Possible to modify COMPILE_FLAGS?

Campbell Barton ideasman42 at gmail.com
Tue Oct 25 20:58:29 EDT 2011


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 <themiwi at 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


More information about the CMake mailing list