xref: /aosp_15_r20/external/pytorch/cmake/Metal.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1if(NOT APPLE)
2    return()
3endif()
4
5if(NOT USE_PYTORCH_METAL)
6    return()
7endif()
8
9if(IOS OR INTERN_BUILD_MOBILE)
10    return()
11endif()
12
13set(OSX_PLATFORM "MacOSX.platform")
14exec_program(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR)
15set(XCODE_POST_43_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${OSX_PLATFORM}/Developer")
16set(XCODE_PRE_43_ROOT "/Developer/Platforms/${OSX_PLATFORM}/Developer")
17if(NOT DEFINED CMAKE_OSX_DEVELOPER_ROOT)
18    if(EXISTS ${XCODE_POST_43_ROOT})
19        set(CMAKE_OSX_DEVELOPER_ROOT ${XCODE_POST_43_ROOT})
20    elseif(EXISTS ${XCODE_PRE_43_ROOT})
21        set(CMAKE_OSX_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT})
22    elseif(EXISTS ${CMAKE_XCODE_DEVELOPER_DIR} AND ${CMAKE_XCODE_DEVELOPER_DIR} STREQUAL "/Library/Developer/CommandLineTools")
23            set(CMAKE_OSX_DEVELOPER_ROOT ${CMAKE_XCODE_DEVELOPER_DIR})
24    endif()
25endif(NOT DEFINED CMAKE_OSX_DEVELOPER_ROOT)
26set(CMAKE_OSX_DEVELOPER_ROOT ${CMAKE_OSX_DEVELOPER_ROOT} CACHE PATH "Location of OSX SDKs root directory")
27
28if(NOT DEFINED CMAKE_OSX_SDK_ROOT)
29    file(GLOB _CMAKE_OSX_SDKS "${CMAKE_OSX_DEVELOPER_ROOT}/SDKs/*")
30    if(_CMAKE_OSX_SDKS)
31        list(SORT _CMAKE_OSX_SDKS)
32        list(REVERSE _CMAKE_OSX_SDKS)
33        list(GET _CMAKE_OSX_SDKS 0 CMAKE_OSX_SDK_ROOT)
34        message(STATUS "_CMAKE_OSX_SDKS: ${_CMAKE_OSX_SDKS}")
35    else(_CMAKE_OSX_SDKS)
36        message(FATAL_ERROR "No OSX SDK's found in default search path ${CMAKE_OSX_DEVELOPER_ROOT}.")
37    endif(_CMAKE_OSX_SDKS)
38    message(STATUS "Toolchain using default OSX SDK: ${CMAKE_OSX_SDK_ROOT}")
39endif(NOT DEFINED CMAKE_OSX_SDK_ROOT)
40set(CMAKE_OSX_SDK_ROOT ${CMAKE_OSX_SDK_ROOT} CACHE PATH "Location of the selected OSX SDK")
41set(CMAKE_FRAMEWORK_PATH
42    ${CMAKE_OSX_SDK_ROOT}/System/Library/Frameworks
43    ${CMAKE_OSX_SDK_ROOT}/System/Library/PrivateFrameworks
44    ${CMAKE_OSX_SDK_ROOT}/Developer/Library/Frameworks
45)
46message(STATUS "CMAKE_FRAMEWORK_PATH: ${CMAKE_FRAMEWORK_PATH}")
47set(CMAKE_FIND_FRAMEWORK FIRST)
48