summaryrefslogtreecommitdiff
path: root/xmake/toolchains/xcode
diff options
context:
space:
mode:
authorruki <[email protected]>2022-08-20 10:18:43 +0800
committerruki <[email protected]>2022-08-20 10:18:43 +0800
commit432e9cc7745628d3b8bffa6c927ad4f23443249b (patch)
tree6cead82b5a341a11afef0ad1ac7dbc90b7e4f3da /xmake/toolchains/xcode
parent9accd1da89561c8695fec341a0c61768112953e5 (diff)
add catalyst for iphoneos
Diffstat (limited to 'xmake/toolchains/xcode')
-rw-r--r--xmake/toolchains/xcode/check.lua33
-rw-r--r--xmake/toolchains/xcode/load_iphoneos.lua14
2 files changed, 24 insertions, 23 deletions
diff --git a/xmake/toolchains/xcode/check.lua b/xmake/toolchains/xcode/check.lua
index 927eadceb..31949eaec 100644
--- a/xmake/toolchains/xcode/check.lua
+++ b/xmake/toolchains/xcode/check.lua
@@ -26,11 +26,23 @@ import("detect.sdks.find_xcode")
-- main entry
function main(toolchain)
+ -- get apple device
+ local simulator
+ local appledev = toolchain:config("appledev") or config.get("appledev")
+ if appledev and appledev == "simulator" then
+ simulator = true
+ appledev = "simulator"
+ elseif not toolchain:is_plat("macosx") and toolchain:is_arch("i386", "x86_64") then
+ simulator = true
+ appledev = "simulator"
+ end
+
-- find xcode
local xcode_sdkver = toolchain:config("xcode_sdkver") or config.get("xcode_sdkver")
local xcode = find_xcode(config.get("xcode"), {force = true, verbose = true,
find_codesign = toolchain:is_global(),
sdkver = xcode_sdkver,
+ appledev = appledev,
plat = toolchain:plat(),
arch = toolchain:arch()})
if not xcode then
@@ -59,21 +71,10 @@ function main(toolchain)
end
end
- -- get apple device
- local simulator
- local appledev = toolchain:config("appledev") or config.get("appledev")
- if appledev and appledev == "simulator" then
- simulator = true
- appledev = "simulator"
- elseif not toolchain:is_plat("macosx") and toolchain:is_arch("i386", "x86_64") then
- simulator = true
- appledev = "simulator"
- end
-
-- save xcode sysroot directory
local xcode_sysroot
if xcode.sdkdir and xcode_sdkver then
- if toolchain:is_plat("macosx") then
+ if toolchain:is_plat("macosx") or appledev == "catalyst" then
xcode_sysroot = xcode.sdkdir .. "/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX" .. xcode_sdkver .. ".sdk"
elseif toolchain:is_plat("iphoneos") then
local platname = simulator and "iPhoneSimulator" or "iPhoneOS"
@@ -102,13 +103,7 @@ function main(toolchain)
--
local target_minver = toolchain:config("target_minver") or config.get("target_minver")
if xcode_sdkver and not target_minver then
- target_minver = xcode_sdkver
- if toolchain:is_plat("macosx") then
- local macos_ver = macos.version()
- if macos_ver then
- target_minver = macos_ver:major() .. "." .. macos_ver:minor()
- end
- end
+ target_minver = xcode.target_minver
end
toolchain:config_set("xcode", xcode.sdkdir)
toolchain:config_set("xcode_sdkver", xcode_sdkver)
diff --git a/xmake/toolchains/xcode/load_iphoneos.lua b/xmake/toolchains/xcode/load_iphoneos.lua
index 77a581b0c..d64172ed2 100644
--- a/xmake/toolchains/xcode/load_iphoneos.lua
+++ b/xmake/toolchains/xcode/load_iphoneos.lua
@@ -29,15 +29,21 @@ function main(toolchain)
local xcode_sdkver = toolchain:config("xcode_sdkver")
local xcode_sysroot = toolchain:config("xcode_sysroot")
- -- is simulator?
- local simulator = toolchain:config("appledev") == "simulator"
-
-- init target minimal version
+ local appledev = toolchain:config("appledev")
local target_minver = toolchain:config("target_minver")
if target_minver and tonumber(target_minver) > 10 and (arch == "armv7" or arch == "armv7s" or arch == "i386") then
target_minver = "10" -- iOS 10 is the maximum deployment target for 32-bit targets
end
- local target_minver_flags = (simulator and "-mios-simulator-version-min=" or "-miphoneos-version-min=") .. target_minver
+ if target_minver and tonumber(target_minver) < 13 and appledev == "catalyst" then
+ target_minver = "13.1"
+ end
+ local target_minver_flags
+ if appledev == "simulator" then
+ target_minver_flags = "-mios-simulator-version-min=" .. target_minver
+ else
+ target_minver_flags = "-miphoneos-version-min=" .. target_minver
+ end
-- init flags for c/c++
toolchain:add("cxflags", "-arch", arch, target_minver_flags, "-isysroot", xcode_sysroot)