diff options
| author | ruki <[email protected]> | 2022-08-20 20:58:52 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-08-20 21:00:58 +0800 |
| commit | 82c2ee867dc33097800caa4d25ab44aa1696517b (patch) | |
| tree | bbffd0f62ebe60f9fc711b583e470b9b34aeec67 /xmake/toolchains/xcode | |
| parent | 432e9cc7745628d3b8bffa6c927ad4f23443249b (diff) | |
use catalyst for macosx
Diffstat (limited to 'xmake/toolchains/xcode')
| -rw-r--r-- | xmake/toolchains/xcode/check.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_iphoneos.lua | 14 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_macosx.lua | 48 |
3 files changed, 28 insertions, 36 deletions
diff --git a/xmake/toolchains/xcode/check.lua b/xmake/toolchains/xcode/check.lua index 31949eaec..30886e584 100644 --- a/xmake/toolchains/xcode/check.lua +++ b/xmake/toolchains/xcode/check.lua @@ -74,7 +74,7 @@ function main(toolchain) -- save xcode sysroot directory local xcode_sysroot if xcode.sdkdir and xcode_sdkver then - if toolchain:is_plat("macosx") or appledev == "catalyst" then + if toolchain:is_plat("macosx") 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" diff --git a/xmake/toolchains/xcode/load_iphoneos.lua b/xmake/toolchains/xcode/load_iphoneos.lua index d64172ed2..77a581b0c 100644 --- a/xmake/toolchains/xcode/load_iphoneos.lua +++ b/xmake/toolchains/xcode/load_iphoneos.lua @@ -29,21 +29,15 @@ 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 - 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 + local target_minver_flags = (simulator and "-mios-simulator-version-min=" or "-miphoneos-version-min=") .. target_minver -- init flags for c/c++ toolchain:add("cxflags", "-arch", arch, target_minver_flags, "-isysroot", xcode_sysroot) diff --git a/xmake/toolchains/xcode/load_macosx.lua b/xmake/toolchains/xcode/load_macosx.lua index d5e3d3b9a..107e5a9da 100644 --- a/xmake/toolchains/xcode/load_macosx.lua +++ b/xmake/toolchains/xcode/load_macosx.lua @@ -29,43 +29,41 @@ function main(toolchain) local target_minver = toolchain:config("target_minver") local xcode_sysroot = toolchain:config("xcode_sysroot") - -- init flags for c/c++ - toolchain:add("cxflags", "-arch", arch) - toolchain:add("ldflags", "-arch", arch) - toolchain:add("shflags", "-arch", arch) + -- init target flags + local appledev = toolchain:config("appledev") if target_minver then - toolchain:add("cxflags", "-mmacosx-version-min=" .. target_minver) - toolchain:add("mxflags", "-mmacosx-version-min=" .. target_minver) - toolchain:add("ldflags", "-mmacosx-version-min=" .. target_minver) - toolchain:add("shflags", "-mmacosx-version-min=" .. target_minver) + local target = ("%s-apple-macos%s"):format(arch, target_minver) + if appledev == "catalyst" then + target = ("%s-apple-ios%s-macabi"):format(arch, target_minver) + end + toolchain:add("cxflags", "-target", target) + toolchain:add("mxflags", "-target", target) + toolchain:add("asflags", "-target", target) + toolchain:add("ldflags", "-target", target) + toolchain:add("shflags", "-target", target) + toolchain:add("scflags", "-target", target) + toolchain:add("scldflags", "-target", target) + toolchain:add("scshflags", "-target", target) end + + -- add sysroot flags if xcode_sysroot then toolchain:add("cxflags", "-isysroot", xcode_sysroot) + toolchain:add("asflags", "-isysroot", xcode_sysroot) toolchain:add("ldflags", "-isysroot", xcode_sysroot) toolchain:add("shflags", "-isysroot", xcode_sysroot) + toolchain:add("mxflags", "-isysroot", xcode_sysroot) + toolchain:add("scflags", "-sdk " .. xcode_sysroot) + toolchain:add("scshflags", "-sdk " .. xcode_sysroot) + toolchain:add("scldflags", "-sdk " .. xcode_sysroot) end + + -- init flags for c/c++ toolchain:add("ldflags", "-stdlib=libc++") toolchain:add("shflags", "-stdlib=libc++") toolchain:add("syslinks", "z") -- init flags for objc/c++ (with ldflags and shflags) - toolchain:add("mxflags", "-arch", arch) - if xcode_sysroot then - toolchain:add("mxflags", "-isysroot", xcode_sysroot) - end -- we can use `add_mxflags("-fno-objc-arc")` to override it in xmake.lua toolchain:add("mxflags", "-fobjc-arc") - - -- init flags for asm - toolchain:add("asflags", "-arch", arch) - if xcode_sysroot then - toolchain:add("asflags", "-isysroot", xcode_sysroot) - end - - -- init flags for swift - if target_minver and xcode_sysroot then - toolchain:add("scflags", format("-target %s-apple-macosx%s", arch, target_minver) , "-sdk " .. xcode_sysroot) - toolchain:add("scshflags", format("-target %s-apple-macosx%s", arch, target_minver) , "-sdk " .. xcode_sysroot) - toolchain:add("scldflags", format("-target %s-apple-macosx%s", arch, target_minver) , "-sdk " .. xcode_sysroot) - end end |
