DebugProperties.cmake 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. cmake_minimum_required(VERSION 2.8)
  2. project(CompatibleInterface)
  3. include(GenerateExportHeader)
  4. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  5. add_library(iface1 INTERFACE)
  6. set_property(TARGET iface1 APPEND PROPERTY
  7. COMPATIBLE_INTERFACE_BOOL
  8. BOOL_PROP1
  9. BOOL_PROP2
  10. BOOL_PROP3
  11. BOOL_PROP4
  12. BOOL_PROP5
  13. BOOL_PROP6
  14. BOOL_PROP7
  15. )
  16. set_property(TARGET iface1 APPEND PROPERTY
  17. COMPATIBLE_INTERFACE_STRING
  18. STRING_PROP1
  19. STRING_PROP2
  20. STRING_PROP3
  21. STRING_PROP4 # Not set.
  22. )
  23. set_property(TARGET iface1 APPEND PROPERTY
  24. COMPATIBLE_INTERFACE_NUMBER_MIN
  25. NUMBER_MIN_PROP1
  26. NUMBER_MIN_PROP2
  27. )
  28. set_property(TARGET iface1 APPEND PROPERTY
  29. COMPATIBLE_INTERFACE_NUMBER_MAX
  30. NUMBER_MAX_PROP1
  31. NUMBER_MAX_PROP2
  32. )
  33. set(CMAKE_DEBUG_TARGET_PROPERTIES
  34. BOOL_PROP1 BOOL_PROP2 BOOL_PROP3 BOOL_PROP4 BOOL_PROP5 BOOL_PROP6 BOOL_PROP7
  35. STRING_PROP1 STRING_PROP2 STRING_PROP3 STRING_PROP4
  36. NUMBER_MIN_PROP1 NUMBER_MIN_PROP2
  37. NUMBER_MAX_PROP1 NUMBER_MAX_PROP2
  38. )
  39. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP1 ON)
  40. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP2 ON)
  41. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP5 OFF)
  42. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP6 OFF)
  43. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP7 OFF)
  44. set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP1 prop1)
  45. set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP2 prop2)
  46. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP1 100)
  47. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP2 200)
  48. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP1 100)
  49. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP2 200)
  50. add_library(iface2 INTERFACE)
  51. set_property(TARGET iface2 PROPERTY INTERFACE_BOOL_PROP6 OFF)
  52. add_library(iface3 INTERFACE)
  53. add_executable(CompatibleInterface empty.cpp)
  54. target_link_libraries(CompatibleInterface iface1 iface2
  55. $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP7>>:iface3>
  56. )
  57. set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP2 ON)
  58. set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP3 ON)
  59. set_property(TARGET CompatibleInterface PROPERTY STRING_PROP2 prop2)
  60. set_property(TARGET CompatibleInterface PROPERTY STRING_PROP3 prop3)
  61. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP1 50)
  62. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP2 250)
  63. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP1 50)
  64. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP2 250)