Reputation: 10185
What is the difference between
COMPILE_FLAGS: Additional flags to use when compiling this target's sources.
and
COMPILE_OPTIONS: List of options to pass to the compiler.
In terms of resulting VS2010 solution these commands produce the same result:
target_compile_options(target PRIVATE "/option=test1")
set_target_properties(target PROPERTIES COMPILE_FLAGS "/option=test1")
set_target_properties(target PROPERTIES COMPILE_OPTIONS "/option=test1")
Upvotes: 13
Views: 5320
Reputation: 11084
COMPILE_OPTIONS
is a list, but COMPILE_FLAGS
is a string.
set_target_properties(target PROPERTIES
COMPILE_OPTIONS "/option=test1;/option2=test2")
set_target_properties(target PROPERTIES
COMPILE_FLAGS "/option=test1 /option2=test2")
You can more-easily append to a list than to a string.
Also, COMPILE_OPTIONS
is properly escaped, whereas some characters in COMPILE_FLAGS
may need to be escaped manually or cause problems.
Upvotes: 20
Reputation: 1512
Can be used to the same end, but flags are associated with some target enviroment. So you could use different sets of flags for different enviroments.
Upvotes: 2