I have a CMakeLists.txt which builds a number of targets. Call one foo
and one bar
At the moment foo
and bar
both share some settings given to ccmake
configuration
CMAKE_CXX_FLAGS = -W -Wall
CMAKE_CXX_FLAGS_DEBUG = -g -pg
etc
I need to add -fPIC
to foo
but not bar
. According to this answer I want to use TARGET_COMPILE_OTIONS
target_compile_options(foo PUBLIC "$<$<CONFIG:DEBUG>:${MY_DEBUG_OPTIONS}>")
target_compile_options(foo PUBLIC "$<$<CONFIG:RELEASE>:${MY_RELEASE_OPTIONS}>")
Note that target_compile_options add [sic] options
This sounds like it's what I need but what does this syntax mean?
"$<$<CONFIG:DEBUG>:${MY_DEBUG_OPTIONS}>"
To clarify, I want to add -fPIC
as an additional flag when compiling foo
but not when compiling bar
Please explain the $<$<
business and show me, concretely, how -fPIC
would be added as a flag for foo
.