mirror of
https://github.com/JesseTG/melonds-ds.git
synced 2024-11-23 06:29:46 +00:00
Update the iOS toolchain file
This commit is contained in:
parent
60086d9431
commit
80b4293b7f
@ -62,6 +62,7 @@
|
||||
# SIMULATOR = Build for x86 i386 iphoneOS Simulator.
|
||||
# SIMULATOR64 = Build for x86_64 iphoneOS Simulator.
|
||||
# SIMULATORARM64 = Build for arm64 iphoneOS Simulator.
|
||||
# SIMULATOR64COMBINED = Build for arm64 x86_64 iphoneOS Simulator. Combined into FAT STATIC lib (supported on 3.14+ of CMakewith "-G Xcode" argument ONLY)
|
||||
# TVOS = Build for arm64 tvOS.
|
||||
# TVOSCOMBINED = Build for arm64 x86_64 tvOS + tvOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step)
|
||||
# SIMULATOR_TVOS = Build for x86_64 tvOS Simulator.
|
||||
@ -155,10 +156,11 @@ set(ENV{_IOS_TOOLCHAIN_HAS_RUN} true)
|
||||
|
||||
# List of supported platform values
|
||||
list(APPEND _supported_platforms
|
||||
"OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64"
|
||||
"OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" "SIMULATOR64COMBINED"
|
||||
"TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" "SIMULATORARM64_TVOS"
|
||||
"WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS"
|
||||
"MAC" "MAC_ARM64" "MAC_UNIVERSAL"
|
||||
"VISIONOS" "SIMULATOR_VISIONOS" "SIMULATOR64_VISIONOS"
|
||||
"MAC_CATALYST" "MAC_CATALYST_ARM64")
|
||||
|
||||
# Cache what generator is used
|
||||
@ -195,10 +197,10 @@ endif()
|
||||
|
||||
# Assuming that xcode 12.0 is installed you most probably have ios sdk 14.0 or later installed (tested on Big Sur)
|
||||
# if you don't set a deployment target it will be set the way you only get 64-bit builds
|
||||
if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0)
|
||||
# Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64")
|
||||
endif()
|
||||
#if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0)
|
||||
# Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...)
|
||||
# set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64")
|
||||
#endif()
|
||||
|
||||
# Check if the platform variable is set
|
||||
if(DEFINED PLATFORM)
|
||||
@ -259,6 +261,9 @@ if(NOT DEFINED DEPLOYMENT_TARGET)
|
||||
elseif(PLATFORM STREQUAL "MAC")
|
||||
# Unless specified, SDK version 10.13 (High Sierra) is used by default as the minimum target version (macos).
|
||||
set(DEPLOYMENT_TARGET "10.13")
|
||||
elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "SIMULATOR64_VISIONOS")
|
||||
# Unless specified, SDK version 1.0 is used by default as minimum target version (visionOS).
|
||||
set(DEPLOYMENT_TARGET "1.0")
|
||||
elseif(PLATFORM STREQUAL "MAC_ARM64")
|
||||
# Unless specified, SDK version 11.0 (Big Sur) is used by default as the minimum target version (macOS on arm).
|
||||
set(DEPLOYMENT_TARGET "11.0")
|
||||
@ -303,7 +308,7 @@ if(PLATFORM_INT STREQUAL "OS")
|
||||
set(ARCHS armv7 armv7s arm64)
|
||||
set(APPLE_TARGET_TRIPLE_INT arm-apple-ios${DEPLOYMENT_TARGET})
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET})
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET})
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "OS64")
|
||||
set(SDK_NAME iphoneos)
|
||||
@ -321,12 +326,12 @@ elseif(PLATFORM_INT STREQUAL "OS64COMBINED")
|
||||
set(SDK_NAME iphoneos)
|
||||
if(MODERN_CMAKE)
|
||||
if(NOT ARCHS)
|
||||
if (XCODE_VERSION_INT VERSION_GREATER 10.0)
|
||||
set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple has fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example
|
||||
if (XCODE_VERSION_INT VERSION_GREATER 12.0)
|
||||
set(ARCHS arm64 x86_64)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64")
|
||||
else()
|
||||
set(ARCHS arm64 x86_64)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64")
|
||||
@ -341,6 +346,30 @@ elseif(PLATFORM_INT STREQUAL "OS64COMBINED")
|
||||
else()
|
||||
message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the OS64COMBINED setting work")
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "SIMULATOR64COMBINED")
|
||||
set(SDK_NAME iphonesimulator)
|
||||
if(MODERN_CMAKE)
|
||||
if(NOT ARCHS)
|
||||
if (XCODE_VERSION_INT VERSION_GREATER 12.0)
|
||||
set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple have fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64")
|
||||
else()
|
||||
set(ARCHS arm64 x86_64)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64")
|
||||
endif()
|
||||
set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-ios${DEPLOYMENT_TARGET}-simulator)
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the SIMULATOR64COMBINED setting work")
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "SIMULATOR")
|
||||
set(SDK_NAME iphonesimulator)
|
||||
if(NOT ARCHS)
|
||||
@ -452,6 +481,30 @@ elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS")
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator)
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "SIMULATOR64_VISIONOS")
|
||||
set(SDK_NAME xrsimulator)
|
||||
if(NOT ARCHS)
|
||||
set(ARCHS x86_64)
|
||||
set(APPLE_TARGET_TRIPLE_INT x86_64-apple-xros${DEPLOYMENT_TARGET}-simulator)
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator)
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "SIMULATOR_VISIONOS")
|
||||
set(SDK_NAME xrsimulator)
|
||||
if(NOT ARCHS)
|
||||
set(ARCHS arm64)
|
||||
set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}-simulator)
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator)
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "VISIONOS")
|
||||
set(SDK_NAME xros)
|
||||
if(NOT ARCHS)
|
||||
set(ARCHS arm64)
|
||||
set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET})
|
||||
else()
|
||||
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET})
|
||||
endif()
|
||||
elseif(PLATFORM_INT STREQUAL "MAC" OR PLATFORM_INT STREQUAL "MAC_CATALYST")
|
||||
set(SDK_NAME macosx)
|
||||
if(NOT ARCHS)
|
||||
@ -494,7 +547,7 @@ endif()
|
||||
if(CMAKE_GENERATOR MATCHES "Xcode" AND PLATFORM_INT MATCHES "^MAC_CATALYST")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "macosx")
|
||||
set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-maccatalyst")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "YES")
|
||||
if(NOT DEFINED MACOSX_DEPLOYMENT_TARGET)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "10.15")
|
||||
else()
|
||||
@ -653,6 +706,10 @@ endforeach()
|
||||
if(MODERN_CMAKE)
|
||||
if(SDK_NAME MATCHES "iphone")
|
||||
set(CMAKE_SYSTEM_NAME iOS)
|
||||
elseif(SDK_NAME MATCHES "xros")
|
||||
set(CMAKE_SYSTEM_NAME visionOS)
|
||||
elseif(SDK_NAME MATCHES "xrsimulator")
|
||||
set(CMAKE_SYSTEM_NAME visionOS)
|
||||
elseif(SDK_NAME MATCHES "macosx")
|
||||
set(CMAKE_SYSTEM_NAME Darwin)
|
||||
elseif(SDK_NAME MATCHES "appletv")
|
||||
@ -662,8 +719,14 @@ if(MODERN_CMAKE)
|
||||
endif()
|
||||
# Provide flags for a combined FAT library build on newer CMake versions
|
||||
if(PLATFORM_INT MATCHES ".*COMBINED")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
|
||||
set(CMAKE_IOS_INSTALL_COMBINED YES)
|
||||
if(CMAKE_GENERATOR MATCHES "Xcode")
|
||||
# Set the SDKROOT Xcode properties to a Xcode-friendly value (the SDK_NAME, E.g, iphoneos)
|
||||
# This way, Xcode will automatically switch between the simulator and device SDK when building.
|
||||
set(CMAKE_XCODE_ATTRIBUTE_SDKROOT "${SDK_NAME}")
|
||||
# Force to not build just one ARCH, but all!
|
||||
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
|
||||
endif()
|
||||
endif()
|
||||
elseif(NOT DEFINED CMAKE_SYSTEM_NAME AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.10")
|
||||
# Legacy code path prior to CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified
|
||||
@ -940,7 +1003,7 @@ set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
|
||||
)
|
||||
|
||||
if(NAMED_LANGUAGE_SUPPORT_INT)
|
||||
list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
|
||||
list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
|
||||
CMAKE_OBJC_FLAGS
|
||||
CMAKE_OBJC_DEBUG
|
||||
CMAKE_OBJC_MINSIZEREL
|
||||
@ -969,7 +1032,7 @@ set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name")
|
||||
# Note: CMAKE_FIND_ROOT_PATH is only useful when cross-compiling. Thus, do not set on macOS builds.
|
||||
if(NOT PLATFORM_INT MATCHES "^MAC.*$")
|
||||
list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
|
||||
set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib" CACHE INTERNAL "")
|
||||
set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib;/opt/homebrew" CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
# Default to searching for frameworks first.
|
||||
@ -978,7 +1041,7 @@ IF(NOT DEFINED CMAKE_FIND_FRAMEWORK)
|
||||
ENDIF(NOT DEFINED CMAKE_FIND_FRAMEWORK)
|
||||
|
||||
# Set up the default search directories for frameworks.
|
||||
if(PLATFORM_INT MATCHES "^MAC_CATALYST")
|
||||
if(PLATFORM_INT MATCHES "^MAC_CATALYST")
|
||||
set(CMAKE_FRAMEWORK_PATH
|
||||
${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks
|
||||
${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks
|
||||
@ -1033,4 +1096,4 @@ macro(find_host_package)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
|
||||
endmacro(find_host_package)
|
||||
endmacro(find_host_package)
|
Loading…
Reference in New Issue
Block a user