summaryrefslogtreecommitdiff
path: root/xmake/toolchains/xcode
diff options
context:
space:
mode:
authorruki <[email protected]>2026-02-10 21:39:01 +0800
committerGitHub <[email protected]>2026-02-10 21:39:01 +0800
commitde97caa61ab95c3a422dc9c494370f513e4ef535 (patch)
tree2879517e5177ad377147a112163ab87083a9deae /xmake/toolchains/xcode
parentd5eb58a3964d9665cecb50aa9894469e9dfe7b66 (diff)
parentd3c844249ca910b21305998886df78bd275d2f1c (diff)
Merge pull request #7310 from xmake-io/check
Improve check tips
Diffstat (limited to 'xmake/toolchains/xcode')
-rw-r--r--xmake/toolchains/xcode/check.lua67
-rw-r--r--xmake/toolchains/xcode/load_macosx.lua31
-rw-r--r--xmake/toolchains/xcode/load_platform.lua33
3 files changed, 71 insertions, 60 deletions
diff --git a/xmake/toolchains/xcode/check.lua b/xmake/toolchains/xcode/check.lua
index 9e172af8d..5797170f5 100644
--- a/xmake/toolchains/xcode/check.lua
+++ b/xmake/toolchains/xcode/check.lua
@@ -25,6 +25,43 @@ import("detect.sdks.find_xcode")
import("private.utils.executable_path")
import("private.tools.codesign")
+-- print Xcode SDK summary (single line) and optional codesign infos
+function _show_checkinfo(toolchain, xcode, xcode_sdkver, target_minver)
+ if xcode and xcode.sdkdir then
+ local extras = {}
+ if xcode_sdkver then
+ table.insert(extras, "sdk: " .. xcode_sdkver)
+ end
+ if target_minver then
+ table.insert(extras, "target: " .. target_minver)
+ end
+ local extra = ""
+ if #extras > 0 then
+ extra = " (" .. table.concat(extras, ", ") .. ")"
+ end
+ cprint("checking for Xcode SDK ... ${color.success}%s%s", xcode.sdkdir, extra)
+ else
+ cprint("checking for Xcode SDK ... ${color.nothing}${text.nothing}")
+ end
+
+ if option.get("verbose") then
+ local codesign_identity = codesign.xcode_codesign_identity()
+ if codesign_identity then
+ cprint("checking for Codesign Identity of Xcode ... ${color.success}%s", codesign_identity)
+ else
+ cprint("checking for Codesign Identity of Xcode ... ${color.nothing}${text.nothing}")
+ end
+ if toolchain:is_plat("iphoneos") then
+ local mobile_provision = codesign.xcode_mobile_provision()
+ if mobile_provision then
+ cprint("checking for Mobile Provision of Xcode ... ${color.success}%s", mobile_provision)
+ else
+ cprint("checking for Mobile Provision of Xcode ... ${color.nothing}${text.nothing}")
+ end
+ end
+ end
+end
+
-- main entry
function main(toolchain)
@@ -47,7 +84,7 @@ function main(toolchain)
plat = toolchain:plat(),
arch = toolchain:arch()})
if not xcode then
- cprint("checking for Xcode directory ... ${color.nothing}${text.nothing}")
+ cprint("checking for Xcode SDK ... ${color.nothing}${text.nothing}")
return false
end
@@ -55,27 +92,6 @@ function main(toolchain)
xcode_sdkver = xcode.sdkver
if toolchain:is_global() then
config.set("xcode", xcode.sdkdir, {force = true, readonly = true})
- if xcode.sdkdir then
- cprint("checking for Xcode directory ... ${color.success}%s", xcode.sdkdir)
- else
- cprint("checking for Xcode directory ... ${color.nothing}${text.nothing}")
- end
- if option.get("verbose") then
- local codesign_identity = codesign.xcode_codesign_identity()
- if codesign_identity then
- cprint("checking for Codesign Identity of Xcode ... ${color.success}%s", codesign_identity)
- else
- cprint("checking for Codesign Identity of Xcode ... ${color.nothing}${text.nothing}")
- end
- if toolchain:is_plat("iphoneos") then
- local mobile_provision = codesign.xcode_mobile_provision()
- if mobile_provision then
- cprint("checking for Mobile Provision of Xcode ... ${color.success}%s", mobile_provision)
- else
- cprint("checking for Mobile Provision of Xcode ... ${color.nothing}${text.nothing}")
- end
- end
- end
end
-- get xcode bin directory
@@ -152,11 +168,8 @@ function main(toolchain)
toolchain:config_set("xcode_sdkver", xcode_sdkver)
toolchain:config_set("target_minver", target_minver)
toolchain:config_set("appledev", appledev)
- if xcode_sdkver then
- cprint("checking for SDK version of Xcode for %s (%s) ... ${color.success}%s", toolchain:plat(), toolchain:arch(), xcode_sdkver)
- end
- if target_minver then
- cprint("checking for Minimal target version of Xcode for %s (%s) ... ${color.success}%s", toolchain:plat(), toolchain:arch(), target_minver)
+ if toolchain:is_global() then
+ _show_checkinfo(toolchain, xcode, xcode_sdkver, target_minver)
end
return true
end
diff --git a/xmake/toolchains/xcode/load_macosx.lua b/xmake/toolchains/xcode/load_macosx.lua
index 24d35c72c..ff484736b 100644
--- a/xmake/toolchains/xcode/load_macosx.lua
+++ b/xmake/toolchains/xcode/load_macosx.lua
@@ -21,17 +21,16 @@
function main(toolchain)
-- init architecture
local arch = toolchain:arch()
- local xcode_sdkver = toolchain:config('xcode_sdkver')
- local xcode_sysroot = toolchain:config('xcode_sysroot')
+ local xcode_sysroot = toolchain:config("xcode_sysroot")
-- is simulator?
- local appledev = toolchain:config('appledev')
- local simulator = appledev == 'simulator'
+ local appledev = toolchain:config("appledev")
+ local simulator = appledev == "simulator"
assert(not simulator)
- local catalyst = appledev == 'catalyst'
+ local catalyst = appledev == "catalyst"
-- init target minimal version
- local target_minver = toolchain:config('target_minver')
+ local target_minver = toolchain:config("target_minver")
local targetflag = format("%s-apple-macos", arch)
if target_minver then
targetflag = targetflag .. target_minver
@@ -42,24 +41,24 @@ function main(toolchain)
targetflag = {"-target", targetflag}
-- init flags for c/c++
- toolchain:add('cxflags', {'-arch', arch}, targetflag, {'-isysroot', xcode_sysroot})
- toolchain:add('ldflags', {'-arch', arch}, targetflag, {'-isysroot', xcode_sysroot}, '-lz')
- toolchain:add('shflags', {'-arch', arch}, targetflag, {'-isysroot', xcode_sysroot}, '-lz')
+ toolchain:add("cxflags", {"-arch", arch}, targetflag, {"-isysroot", xcode_sysroot})
+ toolchain:add("ldflags", {"-arch", arch}, targetflag, {"-isysroot", xcode_sysroot}, "-lz")
+ toolchain:add("shflags", {"-arch", arch}, targetflag, {"-isysroot", xcode_sysroot}, "-lz")
-- init flags for objc/c++
- toolchain:add('mxflags', {'-arch', arch}, targetflag, {'-isysroot', xcode_sysroot})
+ toolchain:add("mxflags", {"-arch", arch}, targetflag, {"-isysroot", xcode_sysroot})
-- we can use `add_mxflags("-fno-objc-arc")` to override it in xmake.lua
- toolchain:add('mxflags', '-fobjc-arc')
+ toolchain:add("mxflags", "-fobjc-arc")
-- init flags for asm
- toolchain:add('asflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot)
+ toolchain:add("asflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot)
-- init flags for swift (with toolchain:add("ldflags and toolchain:add("shflags)
- toolchain:add('scflags', {'-sdk', xcode_sysroot}, targetflag)
- toolchain:add('scshflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-library")
- toolchain:add('scarflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-library", "-static")
- toolchain:add('scldflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-executable")
+ toolchain:add("scflags", {"-sdk", xcode_sysroot}, targetflag)
+ toolchain:add("scshflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-library")
+ toolchain:add("scarflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-library", "-static")
+ toolchain:add("scldflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-executable")
if xcode_sysroot and catalyst then
toolchain:add("cxflags", {"-I", path.join(xcode_sysroot, "System/iOSSupport/usr/include")})
diff --git a/xmake/toolchains/xcode/load_platform.lua b/xmake/toolchains/xcode/load_platform.lua
index 7d8809acf..74c5c616f 100644
--- a/xmake/toolchains/xcode/load_platform.lua
+++ b/xmake/toolchains/xcode/load_platform.lua
@@ -21,40 +21,39 @@
function main(toolchain, plat)
-- init architecture
local arch = toolchain:arch()
- local xcode_sdkver = toolchain:config('xcode_sdkver')
- local xcode_sysroot = toolchain:config('xcode_sysroot')
+ local xcode_sysroot = toolchain:config("xcode_sysroot")
-- is simulator?
- local appledev = toolchain:config('appledev')
- local simulator = appledev == 'simulator'
+ local appledev = toolchain:config("appledev")
+ local simulator = appledev == "simulator"
-- init target minimal version
- local target_minver = toolchain:config('target_minver')
+ local target_minver = toolchain:config("target_minver")
if target_minver then
- if plat == "ios" 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
+ if plat == "ios" 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
end
local targetflag = format("%s-apple-%s%s%s", arch, plat, target_minver or "", simulator and "-simulator" or "")
targetflag = {"-target", targetflag}
-- init flags for c/c++
- toolchain:add('cxflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot)
- toolchain:add('ldflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot, '-ObjC', '-fobjc-link-runtime')
- toolchain:add('shflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot, '-ObjC', '-fobjc-link-runtime')
+ toolchain:add("cxflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot)
+ toolchain:add("ldflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot, "-ObjC", "-fobjc-link-runtime")
+ toolchain:add("shflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot, "-ObjC", "-fobjc-link-runtime")
-- init flags for objc/c++
- toolchain:add('mxflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot)
+ toolchain:add("mxflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot)
-- we can use `add_mxflags("-fno-objc-arc")` to override it in xmake.lua
- toolchain:add('mxflags', '-fobjc-arc')
+ toolchain:add("mxflags", "-fobjc-arc")
-- init flags for asm
- toolchain:add('asflags', {'-arch', arch}, targetflag, '-isysroot', xcode_sysroot)
+ toolchain:add("asflags", {"-arch", arch}, targetflag, "-isysroot", xcode_sysroot)
-- init flags for swift (with toolchain:add("ldflags and toolchain:add("shflags)
- toolchain:add('scflags', {'-sdk', xcode_sysroot}, targetflag)
- toolchain:add('scshflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-library")
- toolchain:add('scarflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-library", "-static")
- toolchain:add('scldflags', {'-sdk', xcode_sysroot}, targetflag, "-emit-executable")
+ toolchain:add("scflags", {"-sdk", xcode_sysroot}, targetflag)
+ toolchain:add("scshflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-library")
+ toolchain:add("scarflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-library", "-static")
+ toolchain:add("scldflags", {"-sdk", xcode_sysroot}, targetflag, "-emit-executable")
end