cmake_minimum_required(VERSION 2.8) project(target_compile_options) add_executable(target_compile_options "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp" ) target_compile_options(target_compile_options PRIVATE $<$:-DMY_PRIVATE_DEFINE> PUBLIC $<$:-DMY_PUBLIC_DEFINE> INTERFACE $<$:-DMY_INTERFACE_DEFINE> ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_definitions(target_compile_options PRIVATE "DO_GNU_TESTS" ) endif() add_executable(consumer "${CMAKE_CURRENT_SOURCE_DIR}/consumer.cpp" ) target_compile_options(consumer PRIVATE $<$:$> ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_definitions(consumer PRIVATE "DO_GNU_TESTS" ) endif() # Test no items target_compile_options(consumer PRIVATE )