DebugProperties.cmake 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. )
  15. set_property(TARGET iface1 APPEND PROPERTY
  16. COMPATIBLE_INTERFACE_STRING
  17. STRING_PROP1
  18. STRING_PROP2
  19. STRING_PROP3
  20. )
  21. set_property(TARGET iface1 APPEND PROPERTY
  22. COMPATIBLE_INTERFACE_NUMBER_MIN
  23. NUMBER_MIN_PROP1
  24. NUMBER_MIN_PROP2
  25. )
  26. set_property(TARGET iface1 APPEND PROPERTY
  27. COMPATIBLE_INTERFACE_NUMBER_MAX
  28. NUMBER_MAX_PROP1
  29. NUMBER_MAX_PROP2
  30. )
  31. set(CMAKE_DEBUG_TARGET_PROPERTIES
  32. BOOL_PROP1 BOOL_PROP2 BOOL_PROP3 BOOL_PROP4 BOOL_PROP5 BOOL_PROP6
  33. STRING_PROP1 STRING_PROP2 STRING_PROP3
  34. NUMBER_MIN_PROP1 NUMBER_MIN_PROP2
  35. NUMBER_MAX_PROP1 NUMBER_MAX_PROP2
  36. )
  37. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP1 ON)
  38. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP2 ON)
  39. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP5 OFF)
  40. set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP6 OFF)
  41. set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP1 prop1)
  42. set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP2 prop2)
  43. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP1 100)
  44. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP2 200)
  45. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP1 100)
  46. set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP2 200)
  47. add_library(iface2 INTERFACE)
  48. set_property(TARGET iface2 PROPERTY INTERFACE_BOOL_PROP6 OFF)
  49. add_executable(CompatibleInterface empty.cpp)
  50. target_link_libraries(CompatibleInterface iface1 iface2)
  51. set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP2 ON)
  52. set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP3 ON)
  53. set_property(TARGET CompatibleInterface PROPERTY STRING_PROP2 prop2)
  54. set_property(TARGET CompatibleInterface PROPERTY STRING_PROP3 prop3)
  55. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP1 50)
  56. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP2 250)
  57. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP1 50)
  58. set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP2 250)