Ver Fonte

improve python

ruki há 4 anos atrás
pai
commit
e4fe10069d
2 ficheiros alterados com 56 adições e 18 exclusões
  1. 28 9
      packages/p/python/xmake.lua
  2. 28 9
      packages/p/python2/xmake.lua

+ 28 - 9
packages/p/python/xmake.lua

@@ -121,8 +121,24 @@ package("python")
         local cflags = {}
         local ldflags = {}
         if package:is_plat("macosx") then
-            local xcode_dir = get_config("xcode")
-            local xcode_sdkver  = get_config("xcode_sdkver") or get_config("xcode_sdkver_macosx")
+
+            -- get xcode information
+            import("core.tool.toolchain")
+            local xcode_dir
+            local xcode_sdkver
+            local target_minver
+            local xcode = toolchain.load("xcode", {plat = package:plat(), arch = package:arch()})
+            if xcode and xcode.config and xcode:check() then
+                xcode_dir = xcode:config("xcode")
+                xcode_sdkver = xcode:config("xcode_sdkver")
+                target_minver = xcode:config("target_minver")
+            end
+            xcode_dir = xcode_dir or get_config("xcode")
+            xcode_sdkver = xcode_sdkver or get_config("xcode_sdkver")
+            target_minver = target_minver or get_config("target_minver")
+
+            -- TODO will be deprecated after xmake v2.5.1
+            xcode_sdkver = xcode_sdkver or get_config("xcode_sdkver_macosx")
             if not xcode_dir or not xcode_sdkver then
                 -- maybe on cross platform, we need find xcode envs manually
                 local xcode = import("detect.sdks.find_xcode")(nil, {force = true, plat = package:plat(), arch = package:arch()})
@@ -131,6 +147,16 @@ package("python")
                     xcode_sdkver = xcode.sdkver
                 end
             end
+
+            -- TODO will be deprecated after xmake v2.5.1
+            target_minver = target_minver or get_config("target_minver_macosx")
+            if not target_minver then
+                local macos_ver = macos.version()
+                if macos_ver then
+                    target_minver = macos_ver:major() .. "." .. macos_ver:minor()
+                end
+            end
+
             if xcode_dir and xcode_sdkver then
                 -- help Python's build system (setuptools/pip) to build things on SDK-based systems
                 -- the setup.py looks at "-isysroot" to get the sysroot (and not at --sysroot)
@@ -145,13 +171,6 @@ package("python")
             end
 
             -- avoid linking to libgcc https://mail.python.org/pipermail/python-dev/2012-February/116205.html
-            local target_minver = get_config("target_minver") or get_config("target_minver_macosx")
-            if not target_minver then
-                local macos_ver = macos.version()
-                if macos_ver then
-                    target_minver = macos_ver:major() .. "." .. macos_ver:minor()
-                end
-            end
             if target_minver then
                 table.insert(configs, "MACOSX_DEPLOYMENT_TARGET=" .. target_minver)
             end

+ 28 - 9
packages/p/python2/xmake.lua

@@ -91,8 +91,24 @@ package("python2")
         local cflags = {}
         local ldflags = {}
         if package:is_plat("macosx") then
-            local xcode_dir = get_config("xcode")
-            local xcode_sdkver  = get_config("xcode_sdkver") or get_config("xcode_sdkver_macosx")
+
+            -- get xcode information
+            import("core.tool.toolchain")
+            local xcode_dir
+            local xcode_sdkver
+            local target_minver
+            local xcode = toolchain.load("xcode", {plat = package:plat(), arch = package:arch()})
+            if xcode and xcode.config and xcode:check() then
+                xcode_dir = xcode:config("xcode")
+                xcode_sdkver = xcode:config("xcode_sdkver")
+                target_minver = xcode:config("target_minver")
+            end
+            xcode_dir = xcode_dir or get_config("xcode")
+            xcode_sdkver = xcode_sdkver or get_config("xcode_sdkver")
+            target_minver = target_minver or get_config("target_minver")
+
+            -- TODO will be deprecated after xmake v2.5.1
+            xcode_sdkver = xcode_sdkver or get_config("xcode_sdkver_macosx")
             if not xcode_dir or not xcode_sdkver then
                 -- maybe on cross platform, we need find xcode envs manually
                 local xcode = import("detect.sdks.find_xcode")(nil, {force = true, plat = package:plat(), arch = package:arch()})
@@ -101,6 +117,16 @@ package("python2")
                     xcode_sdkver = xcode.sdkver
                 end
             end
+
+            -- TODO will be deprecated after xmake v2.5.1
+            target_minver = target_minver or get_config("target_minver_macosx")
+            if not target_minver then
+                local macos_ver = macos.version()
+                if macos_ver then
+                    target_minver = macos_ver:major() .. "." .. macos_ver:minor()
+                end
+            end
+
             if xcode_dir and xcode_sdkver then
                 -- help Python's build system (setuptools/pip) to build things on SDK-based systems
                 -- the setup.py looks at "-isysroot" to get the sysroot (and not at --sysroot)
@@ -115,13 +141,6 @@ package("python2")
             end
 
             -- avoid linking to libgcc https://mail.python.org/pipermail/python-dev/2012-February/116205.html
-            local target_minver = get_config("target_minver") or get_config("target_minver_macosx")
-            if not target_minver then
-                local macos_ver = macos.version()
-                if macos_ver then
-                    target_minver = macos_ver:major() .. "." .. macos_ver:minor()
-                end
-            end
             if target_minver then
                 table.insert(configs, "MACOSX_DEPLOYMENT_TARGET=" .. target_minver)
             end