diff options
| author | ruki <[email protected]> | 2021-06-07 22:43:54 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-06-07 22:43:54 +0800 |
| commit | ac05ff1b22addf25aaf846e342239674fe5c05fe (patch) | |
| tree | e4771c32f7a4786394380ef80d31f53ae6b6a7bd | |
| parent | 8240d2513e641ceec83b957cae42fac90ad0e306 (diff) | |
improve arc for xcode/objc
| -rw-r--r-- | xmake/rules/objc++/xmake.lua | 14 | ||||
| -rw-r--r-- | xmake/toolchains/llvm/xmake.lua | 3 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_iphoneos.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_macosx.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/xcode/load_watchos.lua | 2 |
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) |
