summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-06-07 22:43:54 +0800
committerruki <[email protected]>2021-06-07 22:43:54 +0800
commitac05ff1b22addf25aaf846e342239674fe5c05fe (patch)
treee4771c32f7a4786394380ef80d31f53ae6b6a7bd
parent8240d2513e641ceec83b957cae42fac90ad0e306 (diff)
improve arc for xcode/objc
-rw-r--r--xmake/rules/objc++/xmake.lua14
-rw-r--r--xmake/toolchains/llvm/xmake.lua3
-rw-r--r--xmake/toolchains/xcode/load_iphoneos.lua2
-rw-r--r--xmake/toolchains/xcode/load_macosx.lua2
-rw-r--r--xmake/toolchains/xcode/load_watchos.lua2
5 files changed, 15 insertions, 8 deletions
diff --git a/xmake/rules/objc++/xmake.lua b/xmake/rules/objc++/xmake.lua
index 72f7c3609..0107690e7 100644
--- a/xmake/rules/objc++/xmake.lua
+++ b/xmake/rules/objc++/xmake.lua
@@ -23,12 +23,11 @@ rule("objc.build")
set_sourcekinds("mm")
add_deps("c.build.pcheader")
after_load(function (target)
- if target:values("objc.build.arc") ~= false then
- target:add("mflags", "-fobjc-arc")
- else
+ -- deprecated, we need only use `add_mflags("-fno-objc-arc")` to override it
+ if target:values("objc.build.arc") == false then
target:add("mflags", "-fno-objc-arc")
end
- if is_plat("macosx", "iphoneos", "watchos") then
+ if target:is_plat("macosx", "iphoneos", "watchos") then
target:add("frameworks", "Foundation", "CoreFoundation")
end
end)
@@ -39,12 +38,11 @@ rule("objc++.build")
set_sourcekinds("mxx")
add_deps("c++.build.pcheader")
after_load(function (target)
- if target:values("objc++.build.arc") ~= false then
- target:add("mxxflags", "-fobjc-arc")
- else
+ -- deprecated, we need only use `add_mxxflags("-fno-objc-arc")` to override it
+ if target:values("objc++.build.arc") == false then
target:add("mxxflags", "-fno-objc-arc")
end
- if is_plat("macosx", "iphoneos", "watchos") then
+ if target:is_plat("macosx", "iphoneos", "watchos") then
target:add("frameworks", "Foundation", "CoreFoundation")
end
end)
diff --git a/xmake/toolchains/llvm/xmake.lua b/xmake/toolchains/llvm/xmake.lua
index 5ec5e9a43..e08cb0e5d 100644
--- a/xmake/toolchains/llvm/xmake.lua
+++ b/xmake/toolchains/llvm/xmake.lua
@@ -78,6 +78,7 @@ toolchain("llvm")
if xcode_dir and xcode_sdkver then
xcode_sdkdir = xcode_dir .. "/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX" .. xcode_sdkver .. ".sdk"
toolchain:add("cxflags", "-isysroot " .. xcode_sdkdir)
+ toolchain:add("mxflags", "-isysroot " .. xcode_sdkdir)
toolchain:add("ldflags", "-isysroot " .. xcode_sdkdir)
toolchain:add("shflags", "-isysroot " .. xcode_sdkdir)
else
@@ -85,10 +86,12 @@ toolchain("llvm")
local macsdk = "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"
if os.exists(macsdk) then
toolchain:add("cxflags", "-isysroot " .. macsdk)
+ toolchain:add("mxflags", "-isysroot " .. macsdk)
toolchain:add("ldflags", "-isysroot " .. macsdk)
toolchain:add("shflags", "-isysroot " .. macsdk)
end
end
+ toolchain:add("mxflags", "-fobjc-arc")
end
-- add bin search library for loading some dependent .dll files windows
diff --git a/xmake/toolchains/xcode/load_iphoneos.lua b/xmake/toolchains/xcode/load_iphoneos.lua
index fc52d5f3c..0fda9704c 100644
--- a/xmake/toolchains/xcode/load_iphoneos.lua
+++ b/xmake/toolchains/xcode/load_iphoneos.lua
@@ -43,6 +43,8 @@ function main(toolchain)
-- init flags for objc/c++
toolchain:add("mxflags", "-arch", arch, target_minver_flags, "-isysroot", xcode_sysroot)
+ -- 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, target_minver_flags, "-isysroot", xcode_sysroot)
diff --git a/xmake/toolchains/xcode/load_macosx.lua b/xmake/toolchains/xcode/load_macosx.lua
index 4c46a1fc3..d5e3d3b9a 100644
--- a/xmake/toolchains/xcode/load_macosx.lua
+++ b/xmake/toolchains/xcode/load_macosx.lua
@@ -53,6 +53,8 @@ function main(toolchain)
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)
diff --git a/xmake/toolchains/xcode/load_watchos.lua b/xmake/toolchains/xcode/load_watchos.lua
index 98ec4200e..b5a47b259 100644
--- a/xmake/toolchains/xcode/load_watchos.lua
+++ b/xmake/toolchains/xcode/load_watchos.lua
@@ -40,6 +40,8 @@ function main(toolchain)
-- init flags for objc/c++
toolchain:add("mxflags", "-arch", arch, target_minver_flags, "-isysroot", xcode_sysroot)
+ -- 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, target_minver_flags, "-isysroot", xcode_sysroot)