IMPORTED_GLOBAL.cmake 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. macro(print_property TARGET PROP)
  2. get_property(val TARGET ${TARGET} PROPERTY ${PROP})
  3. message(STATUS "${TARGET}: Target ${PROP} is '${val}'")
  4. endmacro()
  5. # Changing property on IMPORTED target created with `GLOBAL` option.
  6. add_library(ImportedGlobalTarget SHARED IMPORTED GLOBAL)
  7. print_property(ImportedGlobalTarget IMPORTED_GLOBAL)
  8. set_property(TARGET ImportedGlobalTarget PROPERTY IMPORTED_GLOBAL FALSE)
  9. print_property(ImportedGlobalTarget IMPORTED_GLOBAL)
  10. set_property(TARGET ImportedGlobalTarget PROPERTY IMPORTED_GLOBAL TRUE)
  11. print_property(ImportedGlobalTarget IMPORTED_GLOBAL)
  12. set_property(TARGET ImportedGlobalTarget PROPERTY IMPORTED_GLOBAL TRUE)
  13. print_property(ImportedGlobalTarget IMPORTED_GLOBAL)
  14. # Appending property is never allowed!
  15. set_property(TARGET ImportedGlobalTarget APPEND PROPERTY IMPORTED_GLOBAL TRUE)
  16. print_property(ImportedGlobalTarget IMPORTED_GLOBAL)
  17. # Changing property on IMPORTED target created without `GLOBAL` option.
  18. add_library(ImportedLocalTarget SHARED IMPORTED)
  19. print_property(ImportedLocalTarget IMPORTED_GLOBAL)
  20. set_property(TARGET ImportedLocalTarget PROPERTY IMPORTED_GLOBAL TRUE)
  21. print_property(ImportedLocalTarget IMPORTED_GLOBAL)
  22. set_property(TARGET ImportedLocalTarget PROPERTY IMPORTED_GLOBAL TRUE)
  23. print_property(ImportedLocalTarget IMPORTED_GLOBAL)
  24. set_property(TARGET ImportedLocalTarget PROPERTY IMPORTED_GLOBAL FALSE)
  25. print_property(ImportedLocalTarget IMPORTED_GLOBAL)
  26. # Setting property on non-IMPORTED target is never allowed!
  27. add_library(NonImportedTarget SHARED test.cpp)
  28. print_property(NonImportedTarget IMPORTED_GLOBAL)
  29. set_property(TARGET NonImportedTarget PROPERTY IMPORTED_GLOBAL TRUE)
  30. print_property(NonImportedTarget IMPORTED_GLOBAL)
  31. # Local IMPORTED targets can only be promoted from same directory!
  32. add_library(ImportedLocalTarget2 SHARED IMPORTED)
  33. print_property(ImportedLocalTarget2 IMPORTED_GLOBAL)
  34. add_subdirectory(IMPORTED_GLOBAL)
  35. # Note: The value should not have changed. However, it does change because the
  36. # check for the same directory comes after it was changed! (At least, that is
  37. # not really bad because the generation will fail due to this error.)
  38. print_property(ImportedLocalTarget2 IMPORTED_GLOBAL)
  39. # Global IMPORTED targets from subdir are always visible
  40. # no matter how they became global.
  41. print_property(ImportedSubdirTarget1 IMPORTED_GLOBAL)
  42. print_property(ImportedSubdirTarget2 IMPORTED_GLOBAL)
  43. # Changing property on IMPORTED target from subdir is never possible.
  44. set_property(TARGET ImportedSubdirTarget1 PROPERTY IMPORTED_GLOBAL FALSE)
  45. print_property(ImportedSubdirTarget1 IMPORTED_GLOBAL)
  46. set_property(TARGET ImportedSubdirTarget2 PROPERTY IMPORTED_GLOBAL FALSE)
  47. print_property(ImportedSubdirTarget2 IMPORTED_GLOBAL)