diff options
| author | ruki <[email protected]> | 2026-02-10 21:39:01 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-10 21:39:01 +0800 |
| commit | de97caa61ab95c3a422dc9c494370f513e4ef535 (patch) | |
| tree | 2879517e5177ad377147a112163ab87083a9deae /xmake/toolchains/xcode | |
| parent | d5eb58a3964d9665cecb50aa9894469e9dfe7b66 (diff) | |
| parent | d3c844249ca910b21305998886df78bd275d2f1c (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.lua | 67 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_macosx.lua | 31 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_platform.lua | 33 |
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 |
