Вы можете установить COMPILE_OPTIONS в библиотеке INTERFACE (foo) и эти COMPILE_OPTIONS будут также использоваться пользователями Foo.
add_library(foo INTERFACE)
target_link_libraries(foo INTERFACE foo_1)
target_compile_options(foo INTERFACE "-DSOME_DEFINE")
add_executable(exe exe.cpp)
target_link_libraries(exe foo)
Можно ли сделать что-то подобное для LINK_FLAGS?