Path: blob/master/Tests/CMakeCommands/target_compile_options/CMakeLists.txt
3152 views
cmake_minimum_required(VERSION 3.10)12if(POLICY CMP0129)3cmake_policy(SET CMP0129 NEW)4endif()56project(target_compile_options)78add_executable(target_compile_options9"${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"10)11target_compile_options(target_compile_options12PRIVATE $<$<CXX_COMPILER_ID:AppleClang,IBMClang,CrayClang,Clang,GNU,LCC>:-DMY_PRIVATE_DEFINE>13PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC>:-DMY_PUBLIC_DEFINE>14PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>15INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC>:-DMY_INTERFACE_DEFINE>16INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>17)1819if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")20target_compile_definitions(target_compile_options21PRIVATE22"DO_GNU_TESTS"23)24elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")25target_compile_definitions(target_compile_options26PRIVATE27"DO_CLANG_TESTS"28)29endif()3031add_executable(consumer32"${CMAKE_CURRENT_SOURCE_DIR}/consumer.cpp"33)3435target_sources(consumer PRIVATE36"${CMAKE_CURRENT_SOURCE_DIR}/consumer.c"37)38target_compile_options(consumer39PRIVATE40-DCONSUMER_LANG_$<COMPILE_LANGUAGE>41-DLANG_IS_CXX=$<COMPILE_LANGUAGE:CXX>42-DLANG_IS_C=$<COMPILE_LANGUAGE:C>43)4445if(CMAKE_GENERATOR MATCHES "Visual Studio")46target_compile_definitions(consumer47PRIVATE TEST_LANG_DEFINES_FOR_VISUAL_STUDIO48)49endif()5051target_compile_options(consumer52PRIVATE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>53)5455if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")56target_compile_definitions(consumer57PRIVATE58"DO_GNU_TESTS"59)60elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")61target_compile_definitions(consumer62PRIVATE63"DO_CLANG_TESTS"64)65endif()6667# Test no items68target_compile_options(consumer69PRIVATE70)717273