TransitiveDepConfig.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Abridged import written for the Tutorial
  2. if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
  3. message(FATAL_ERROR "CMake >= 3.0.0 required")
  4. endif()
  5. if(CMAKE_VERSION VERSION_LESS "3.0.0")
  6. message(FATAL_ERROR "CMake >= 3.0.0 required")
  7. endif()
  8. cmake_policy(PUSH)
  9. cmake_policy(VERSION 3.0.0...3.30)
  10. # Commands may need to know the format version.
  11. set(CMAKE_IMPORT_FILE_VERSION 1)
  12. # Protect against multiple inclusion, which would fail when already imported targets are added once more.
  13. set(_cmake_targets_defined "")
  14. set(_cmake_targets_not_defined "")
  15. set(_cmake_expected_targets "")
  16. foreach(_cmake_expected_target IN ITEMS TransitiveDep::TransitiveDep)
  17. list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
  18. if(TARGET "${_cmake_expected_target}")
  19. list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
  20. else()
  21. list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
  22. endif()
  23. endforeach()
  24. unset(_cmake_expected_target)
  25. if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
  26. unset(_cmake_targets_defined)
  27. unset(_cmake_targets_not_defined)
  28. unset(_cmake_expected_targets)
  29. unset(CMAKE_IMPORT_FILE_VERSION)
  30. cmake_policy(POP)
  31. return()
  32. endif()
  33. if(NOT _cmake_targets_defined STREQUAL "")
  34. string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
  35. string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
  36. message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
  37. endif()
  38. unset(_cmake_targets_defined)
  39. unset(_cmake_targets_not_defined)
  40. unset(_cmake_expected_targets)
  41. # Create imported target TransitiveDep::TransitiveDep
  42. add_library(TransitiveDep::TransitiveDep INTERFACE IMPORTED)
  43. # Commands beyond this point should not need to know the version.
  44. set(CMAKE_IMPORT_FILE_VERSION)
  45. cmake_policy(POP)