summaryrefslogtreecommitdiff
path: root/xmake/toolchains/xcode/check.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/toolchains/xcode/check.lua')
-rw-r--r--xmake/toolchains/xcode/check.lua49
1 files changed, 36 insertions, 13 deletions
diff --git a/xmake/toolchains/xcode/check.lua b/xmake/toolchains/xcode/check.lua
index 579def16c..7bd6eca84 100644
--- a/xmake/toolchains/xcode/check.lua
+++ b/xmake/toolchains/xcode/check.lua
@@ -27,13 +27,38 @@ import("detect.sdks.find_xcode")
function main(toolchain)
-- find xcode
- local xcode = find_xcode(config.get("xcode"), {force = not optional, verbose = true, plat = toolchain:plat(), arch = toolchain:arch()})
- if xcode then
- config.set("xcode", xcode.sdkdir, {force = true, readonly = true})
- else
+ 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:global(),
+ sdkver = xcode_sdkver,
+ plat = toolchain:plat(),
+ arch = toolchain:arch()})
+ if not xcode then
+ cprint("checking for Xcode directory ... ${color.nothing}${text.nothing}")
return false
end
+ -- xcode found
+ xcode_sdkver = xcode.sdkver
+ if toolchain:global() then
+ config.set("xcode", xcode.sdkdir, {force = true, readonly = true})
+ config.set("xcode_mobile_provision", xcode.mobile_provision, {force = true, readonly = true})
+ config.set("xcode_codesign_identity", xcode.codesign_identity, {force = true, readonly = true})
+ cprint("checking for Xcode directory ... ${color.success}%s", xcode.sdkdir)
+ if xcode.codesign_identity then
+ cprint("checking for Codesign Identity of Xcode ... ${color.success}%s", xcode.codesign_identity)
+ else
+ cprint("checking for Codesign Identity of Xcode ... ${color.nothing}${text.nothing}")
+ end
+ if toolchain:is_plat("iphoneos") then
+ if xcode.mobile_provision then
+ cprint("checking for Mobile Provision of Xcode ... ${color.success}%s", xcode.mobile_provision)
+ else
+ cprint("checking for Mobile Provision of Xcode ... ${color.nothing}${text.nothing}")
+ end
+ end
+ end
+
-- save target minver
--
-- @note we need to differentiate the version for the system,
@@ -44,14 +69,7 @@ function main(toolchain)
-- 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
+ local target_minver = toolchain:config("target_minver") and config.get("target_minver")
if xcode_sdkver and not target_minver then
target_minver = xcode_sdkver
if toolchain:is_plat("macosx") then
@@ -61,6 +79,11 @@ function main(toolchain)
end
end
end
- config.set("target_minver_" .. toolchain:plat(), target_minver)
+ toolchain:config_set("xcode", xcode.sdkdir)
+ toolchain:config_set("xcode_sdkver", xcode_sdkver)
+ toolchain:config_set("target_minver", target_minver)
+ toolchain:configs_save()
+ cprint("checking for SDK version of Xcode for %s (%s) ... ${color.success}%s", toolchain:plat(), toolchain:arch(), xcode_sdkver)
+ cprint("checking for Minimal target version of Xcode for %s (%s) ... ${color.success}%s", toolchain:plat(), toolchain:arch(), target_minver)
return true
end