CMakeLists.txt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. cmake_minimum_required(VERSION 2.8)
  2. project(target_compile_definitions)
  3. add_executable(target_compile_definitions
  4. "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"
  5. )
  6. target_compile_definitions(target_compile_definitions
  7. PRIVATE MY_PRIVATE_DEFINE
  8. PUBLIC MY_PUBLIC_DEFINE
  9. INTERFACE MY_INTERFACE_DEFINE
  10. )
  11. add_executable(consumer
  12. "${CMAKE_CURRENT_SOURCE_DIR}/consumer.cpp"
  13. )
  14. target_compile_definitions(consumer
  15. PRIVATE $<TARGET_PROPERTY:target_compile_definitions,INTERFACE_COMPILE_DEFINITIONS>
  16. -DDASH_D_DEFINE
  17. )
  18. # Test no items
  19. target_compile_definitions(consumer
  20. PRIVATE
  21. )
  22. target_sources(consumer PRIVATE
  23. "${CMAKE_CURRENT_SOURCE_DIR}/consumer.c"
  24. )
  25. target_compile_definitions(consumer
  26. PRIVATE
  27. CONSUMER_LANG_$<COMPILE_LANGUAGE>
  28. LANG_IS_CXX=$<COMPILE_LANGUAGE:CXX>
  29. LANG_IS_C=$<COMPILE_LANGUAGE:C>
  30. LANG_IS_C_OR_CXX=$<COMPILE_LANGUAGE:C,CXX>
  31. )
  32. if(CMAKE_GENERATOR MATCHES "Visual Studio|Xcode")
  33. target_compile_definitions(consumer
  34. PRIVATE TEST_LANG_DEFINES_FOR_VISUAL_STUDIO_OR_XCODE
  35. )
  36. endif()
  37. add_definitions(-DSOME_DEF)
  38. add_library(imp UNKNOWN IMPORTED)
  39. get_target_property(_res imp COMPILE_DEFINITIONS)
  40. if (_res)
  41. message(SEND_ERROR "add_definitions populated the COMPILE_DEFINITIONS target property")
  42. endif()