CMakeLists.txt 623 B

1234567891011121314151617181920212223
  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. $<$<TARGET_DEFINED:notdefined>:SHOULD_NOT_BE_DEFINED>
  17. $<$<TARGET_DEFINED:target_compile_definitions>:SHOULD_BE_DEFINED>
  18. )