summaryrefslogtreecommitdiff
path: root/xmake/toolchains/xcode
diff options
context:
space:
mode:
authorruki <[email protected]>2020-06-20 00:38:29 +0800
committerruki <[email protected]>2020-06-19 21:50:59 +0800
commitf5392149886b2083ec0d6db2adef3da405297fe8 (patch)
tree12a41f554b7e4bce55a8fb6f8e46aee2c4eba3f9 /xmake/toolchains/xcode
parentca1bd50cc1e0b5939311ac73c61180957763cbbc (diff)
improve xcode and msvc toolchains
Diffstat (limited to 'xmake/toolchains/xcode')
-rw-r--r--xmake/toolchains/xcode/check.lua21
-rw-r--r--xmake/toolchains/xcode/load_iphoneos.lua4
-rw-r--r--xmake/toolchains/xcode/load_macosx.lua4
-rw-r--r--xmake/toolchains/xcode/load_watchos.lua4
4 files changed, 24 insertions, 9 deletions
diff --git a/xmake/toolchains/xcode/check.lua b/xmake/toolchains/xcode/check.lua
index d5f79ab27f..e49957b17 100644
--- a/xmake/toolchains/xcode/check.lua
+++ b/xmake/toolchains/xcode/check.lua
@@ -35,8 +35,23 @@ function main(toolchain)
end
-- save target minver
- local xcode_sdkver = config.get("xcode_sdkver")
- local target_minver = config.get("target_minver")
+ --
+ -- @note we need to differentiate the version for the system,
+ -- because the xcode toolchain of iphoneos/macosx may need to be used at the same time.
+ --
+ -- e.g.
+ --
+ -- target("test")
+ -- set_toolchains("xcode", {plat = os.host(), arch = os.arch()})
+ --
+ local xcode_sdkver = toolchain:is_plat(config.plat()) and config.get("xcode_sdkver")
+ if not xcode_sdkver then
+ xcode_sdkver = config.get("xcode_sdkver_" .. toolchain:plat())
+ end
+ local target_minver = toolchain:is_plat(config.plat()) and config.get("target_minver")
+ if not target_minver then
+ target_minver = config.get("target_minver_" .. toolchain:plat())
+ end
if xcode_sdkver and not target_minver then
target_minver = xcode_sdkver
if toolchain:is_plat("macosx") then
@@ -45,7 +60,7 @@ function main(toolchain)
target_minver = macos_ver:major() .. "." .. macos_ver:minor()
end
end
- config.set("target_minver", target_minver)
+ config.set("target_minver_" .. toolchain:plat(), target_minver)
end
return true
end
diff --git a/xmake/toolchains/xcode/load_iphoneos.lua b/xmake/toolchains/xcode/load_iphoneos.lua
index 842064cb7..1d495a5cb 100644
--- a/xmake/toolchains/xcode/load_iphoneos.lua
+++ b/xmake/toolchains/xcode/load_iphoneos.lua
@@ -32,7 +32,7 @@ function main(toolchain)
local platname = simulator and "iPhoneSimulator" or "iPhoneOS"
-- init target minimal version
- local target_minver = config.get("target_minver")
+ local target_minver = config.get("target_minver_iphoneos")
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
@@ -40,7 +40,7 @@ function main(toolchain)
-- init the xcode sdk directory
local xcode_dir = config.get("xcode")
- local xcode_sdkver = config.get("xcode_sdkver")
+ local xcode_sdkver = config.get("xcode_sdkver_iphoneos")
local xcode_sdkdir = format("%s/Contents/Developer/Platforms/%s.platform/Developer/SDKs/%s%s.sdk", xcode_dir, platname, platname, xcode_sdkver)
-- init flags for c/c++
diff --git a/xmake/toolchains/xcode/load_macosx.lua b/xmake/toolchains/xcode/load_macosx.lua
index f2060ad68..c16fd6665 100644
--- a/xmake/toolchains/xcode/load_macosx.lua
+++ b/xmake/toolchains/xcode/load_macosx.lua
@@ -26,11 +26,11 @@ function main(toolchain)
-- init flags for architecture
local arch = toolchain:arch()
- local target_minver = config.get("target_minver")
+ local target_minver = config.get("target_minver_macosx")
-- init flags for the xcode sdk directory
local xcode_dir = config.get("xcode")
- local xcode_sdkver = config.get("xcode_sdkver")
+ local xcode_sdkver = config.get("xcode_sdkver_macosx")
local xcode_sdkdir = nil
if xcode_dir and xcode_sdkver then
xcode_sdkdir = xcode_dir .. "/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX" .. xcode_sdkver .. ".sdk"
diff --git a/xmake/toolchains/xcode/load_watchos.lua b/xmake/toolchains/xcode/load_watchos.lua
index 6730784b1..cae0b40d4 100644
--- a/xmake/toolchains/xcode/load_watchos.lua
+++ b/xmake/toolchains/xcode/load_watchos.lua
@@ -32,12 +32,12 @@ function main(toolchain)
local platname = simulator and "WatchSimulator" or "WatchOS"
-- init target minimal version
- local target_minver = config.get("target_minver")
+ local target_minver = config.get("target_minver_watchos")
local target_minver_flags = (simulator and "-mwatchos-simulator-version-min=" or "-mwatchos-version-min=") .. target_minver
-- init the xcode sdk directory
local xcode_dir = config.get("xcode")
- local xcode_sdkver = config.get("xcode_sdkver")
+ local xcode_sdkver = config.get("xcode_sdkver_watchos")
local xcode_sdkdir = format("%s/Contents/Developer/Platforms/%s.platform/Developer/SDKs/%s%s.sdk", xcode_dir, platname, platname, xcode_sdkver)
-- init flags for c/c++