1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4#[=======================================================================[.rst: 5CMakeFindFrameworks 6------------------- 7 8helper module to find OSX frameworks 9 10This module reads hints about search locations from variables:: 11 12 CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories 13#]=======================================================================] 14 15if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED) 16 set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1) 17 macro(CMAKE_FIND_FRAMEWORKS fwk) 18 set(${fwk}_FRAMEWORKS) 19 if(APPLE) 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} 24 ~/Library/Frameworks 25 /usr/local/Frameworks 26 /Library/Frameworks 27 /System/Library/Frameworks 28 /Network/Library/Frameworks 29 ${CMAKE_SYSTEM_FRAMEWORK_PATH}) 30 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}) 35 36 list(REMOVE_DUPLICATES _cmff_search_paths) 37 38 foreach(dir IN LISTS _cmff_search_paths) 39 if(EXISTS ${dir}) 40 set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir}) 41 endif() 42 endforeach() 43 endif() 44 endmacro() 45endif() 46