69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
 | |
| 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 $<$<CXX_COMPILER_ID:AppleClang,Clang,GNU>:-DMY_PRIVATE_DEFINE>
 | |
|   PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-DMY_PUBLIC_DEFINE>
 | |
|   PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,Clang,AppleClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>
 | |
|   INTERFACE $<$<CXX_COMPILER_ID:GNU>:-DMY_INTERFACE_DEFINE>
 | |
|   INTERFACE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>
 | |
| )
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
 | |
|   target_compile_definitions(target_compile_options
 | |
|     PRIVATE
 | |
|       "DO_GNU_TESTS"
 | |
|   )
 | |
| elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
 | |
|   target_compile_definitions(target_compile_options
 | |
|     PRIVATE
 | |
|       "DO_CLANG_TESTS"
 | |
|   )
 | |
| endif()
 | |
| 
 | |
| add_executable(consumer
 | |
|   "${CMAKE_CURRENT_SOURCE_DIR}/consumer.cpp"
 | |
| )
 | |
| 
 | |
| target_sources(consumer PRIVATE
 | |
|   "${CMAKE_CURRENT_SOURCE_DIR}/consumer.c"
 | |
| )
 | |
| target_compile_options(consumer
 | |
|   PRIVATE
 | |
|     -DCONSUMER_LANG_$<COMPILE_LANGUAGE>
 | |
|     -DLANG_IS_CXX=$<COMPILE_LANGUAGE:CXX>
 | |
|     -DLANG_IS_C=$<COMPILE_LANGUAGE:C>
 | |
| )
 | |
| 
 | |
| if(CMAKE_GENERATOR MATCHES "Visual Studio")
 | |
|   target_compile_definitions(consumer
 | |
|     PRIVATE TEST_LANG_DEFINES_FOR_VISUAL_STUDIO
 | |
|   )
 | |
| endif()
 | |
| 
 | |
| target_compile_options(consumer
 | |
|   PRIVATE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>
 | |
| )
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
 | |
|   target_compile_definitions(consumer
 | |
|     PRIVATE
 | |
|       "DO_GNU_TESTS"
 | |
|   )
 | |
| elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
 | |
|   target_compile_definitions(consumer
 | |
|     PRIVATE
 | |
|       "DO_CLANG_TESTS"
 | |
|   )
 | |
| endif()
 | |
| 
 | |
| # Test no items
 | |
| target_compile_options(consumer
 | |
|   PRIVATE
 | |
| )
 |