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