summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-03-29 23:34:50 +0800
committerruki <[email protected]>2019-03-29 15:29:04 +0800
commit2fc168ab1c37d86111412c2c9969a87ee611d40a (patch)
treece0a0988c53e4093bfea115f185b7ba2f300c92f
parent9bad2db4e533e04c7086cc9f314237955a42b3ff (diff)
speedup to download xmake generator
-rw-r--r--xmake/actions/update/main.lua4
-rw-r--r--xmake/modules/package/manager/conan/install_package.lua22
2 files changed, 23 insertions, 3 deletions
diff --git a/xmake/actions/update/main.lua b/xmake/actions/update/main.lua
index 8efe139f9..47064ffad 100644
--- a/xmake/actions/update/main.lua
+++ b/xmake/actions/update/main.lua
@@ -228,7 +228,9 @@ function main()
environment.enter()
-- sort main urls
- local mainurls = {"https://github.com/xmake-io/xmake.git", "https://gitlab.com/tboox/xmake.git", "https://gitee.com/tboox/xmake.git"}
+ local mainurls = {"https://github.com/xmake-io/xmake.git",
+ "https://gitlab.com/tboox/xmake.git",
+ "https://gitee.com/tboox/xmake.git"}
fasturl.add(mainurls)
mainurls = fasturl.sort(mainurls)
diff --git a/xmake/modules/package/manager/conan/install_package.lua b/xmake/modules/package/manager/conan/install_package.lua
index 98464505b..1a2907c7b 100644
--- a/xmake/modules/package/manager/conan/install_package.lua
+++ b/xmake/modules/package/manager/conan/install_package.lua
@@ -27,6 +27,7 @@ import("core.base.option")
import("core.project.config")
import("lib.detect.find_tool")
import("devel.git")
+import("net.fasturl")
-- get build directory
function _conan_get_build_directory(name)
@@ -63,8 +64,25 @@ end
function _conan_install_xmake_generator(conan)
local xmake_generator_localdir = path.join(config.directory(), "conan", "xmake_generator")
if not os.isdir(xmake_generator_localdir) then
- git.clone("https://github.com/xmake-io/conan-xmake_generator.git", {depth = 1, branch = "0.1.0/testing", outputdir = xmake_generator_localdir})
- os.vrunv(conan.program, {"export", xmake_generator_localdir, "bincrafters/testing"})
+
+ -- sort main urls
+ local mainurls = {"https://github.com/xmake-io/conan-xmake_generator.git",
+ "https://gitlab.com/tboox/conan-xmake_generator.git",
+ "https://gitee.com/tboox/conan-xmake_generator.git"}
+ fasturl.add(mainurls)
+ mainurls = fasturl.sort(mainurls)
+
+ -- clone xmake generator repository
+ local ok = false
+ for _, url in ipairs(mainurls) do
+ ok = try { function () git.clone(url, {depth = 1, branch = "0.1.0/testing", outputdir = xmake_generator_localdir}); return true end }
+ if ok then
+ break
+ end
+ end
+ if ok then
+ os.vrunv(conan.program, {"export", xmake_generator_localdir, "bincrafters/testing"})
+ end
end
end