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