CMakeFindFrameworks.cmake 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. #[=======================================================================[.rst:
  4. CMakeFindFrameworks
  5. -------------------
  6. helper module to find OSX frameworks
  7. This module reads hints about search locations from variables::
  8. CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
  9. #]=======================================================================]
  10. if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
  11. set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)
  12. macro(CMAKE_FIND_FRAMEWORKS fwk)
  13. set(${fwk}_FRAMEWORKS)
  14. if(APPLE)
  15. file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _cmff_CMAKE_FRAMEWORK_PATH)
  16. set(_cmff_search_paths
  17. ${CMAKE_FRAMEWORK_PATH}
  18. ${_cmff_CMAKE_FRAMEWORK_PATH}
  19. ~/Library/Frameworks
  20. /usr/local/Frameworks
  21. /Library/Frameworks
  22. /System/Library/Frameworks
  23. /Network/Library/Frameworks
  24. ${CMAKE_SYSTEM_FRAMEWORK_PATH})
  25. # For backwards compatibility reasons,
  26. # CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS includes ${fwk}.framework
  27. list(TRANSFORM _cmff_search_paths APPEND /${fwk}.framework)
  28. list(APPEND _cmff_search_paths ${CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS})
  29. list(REMOVE_DUPLICATES _cmff_search_paths)
  30. foreach(dir IN LISTS _cmff_search_paths)
  31. if(EXISTS ${dir})
  32. set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir})
  33. endif()
  34. endforeach()
  35. endif()
  36. endmacro()
  37. endif()