diff options
| author | ruki <[email protected]> | 2018-08-28 22:36:39 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-08-28 09:39:57 +0800 |
| commit | b8d96694e9fae19c96a9579ccea4333522cc7f7f (patch) | |
| tree | d87ce11fbabf583472ce600812781e7e149b284e | |
| parent | 38af3ecd45ca1c806a584a9b49eb442e3ac21dcb (diff) | |
remote fetch git refs for require action
| -rw-r--r-- | tests/projects/c/package/xmake.lua | 27 | ||||
| -rwxr-xr-x | tests/projects/package/basic/src/main.c (renamed from tests/projects/c/package/src/main.c) | 0 | ||||
| -rw-r--r-- | tests/projects/package/basic/test.lua (renamed from tests/projects/c/package/test.lua) | 0 | ||||
| -rw-r--r-- | tests/projects/package/basic/xmake.lua | 19 | ||||
| -rw-r--r-- | xmake/actions/require/package.lua | 68 |
5 files changed, 20 insertions, 94 deletions
diff --git a/tests/projects/c/package/xmake.lua b/tests/projects/c/package/xmake.lua deleted file mode 100644 index 3a787f313..000000000 --- a/tests/projects/c/package/xmake.lua +++ /dev/null @@ -1,27 +0,0 @@ - --- define package -package("zlib-pcre2") - add_deps("zlib >=1.2.11", {system = false}) - add_deps("pcre2", {optional = true}) -package_end() - --- requires -add_requires("zlib-pcre2") -add_requires("[email protected] ~1.6.0", {alias = "tbox"}) -add_requires("unknown", {optional = true}) - --- add modes -add_rules("mode.debug", "mode.release") - --- add target -target("console") - - -- set kind - set_kind("binary") - - -- add files - add_files("src/*.c") - - -- add packages - add_packages("tbox", "zlib-mbedtls") - diff --git a/tests/projects/c/package/src/main.c b/tests/projects/package/basic/src/main.c index 9ae580511..9ae580511 100755 --- a/tests/projects/c/package/src/main.c +++ b/tests/projects/package/basic/src/main.c diff --git a/tests/projects/c/package/test.lua b/tests/projects/package/basic/test.lua index 2db93991f..2db93991f 100644 --- a/tests/projects/c/package/test.lua +++ b/tests/projects/package/basic/test.lua diff --git a/tests/projects/package/basic/xmake.lua b/tests/projects/package/basic/xmake.lua new file mode 100644 index 000000000..098a04575 --- /dev/null +++ b/tests/projects/package/basic/xmake.lua @@ -0,0 +1,19 @@ + +-- requires +add_requires("zlib >=1.2.11", "tbox ~1.6.0", "pcre2") + +-- add modes +add_rules("mode.debug", "mode.release") + +-- add target +target("console") + + -- set kind + set_kind("binary") + + -- add files + add_files("src/*.c") + + -- add packages + add_packages("tbox", "zlib", "pcre2") + diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua index c9c385298..3faf9bf41 100644 --- a/xmake/actions/require/package.lua +++ b/xmake/actions/require/package.lua @@ -307,63 +307,6 @@ function _load_packages(requires, requires_extra, parentinfo) return packages end --- load all git refs from packages -function _load_packages_gitrefs(packages) - - -- enter cache scope - cache.enter("local.require") - - -- load cache - local gitrefs = nil - if option.get("force") then - gitrefs = {} - else - gitrefs = cache.get("gitrefs") or {} - end - - -- run tasks - local results = {} - process.runjobs(function (index) - local package = packages[index] - if package then - - -- attempt to get refs from cache first - local refs = gitrefs[package:name()] - if refs then - results[package:name()] = {tags = refs.tags, branches = refs.branches} - else - -- attempt to get refs from the git url - local tags = {} - local branches = {} - for _, url in ipairs(package:urls()) do - if git.checkurl(url) then - - -- trace - vprint("fetching refs for the git url ... %s", url) - - -- fetch refs - tags, branches = git.refs(url) - - -- save result - results[package:name()] = {tags = tags, branches = branches} - - -- cache result - gitrefs[package:name()] = {tags = tags, branches = branches} - break - end - end - end - end - end, #packages) - - -- save cache - cache.set("gitrefs", gitrefs) - cache.flush() - - -- ok? - return results -end - -- sort packages urls function _sort_packages_urls(packages) @@ -381,23 +324,14 @@ end -- select packages version function _select_packages_version(packages) - -- load git refs from packages - local gitrefs = _load_packages_gitrefs(packages) - -- sort and update urls for _, package in ipairs(packages) do -- exists urls? otherwise be phony package (only as package group) if #package:urls() > 0 then - -- attempt to get tags and branches from the git url - local refs = {} - if gitrefs then - refs = gitrefs[package:name()] or {} - end - -- select package version - local version, source = semver.select(package:requireinfo().version, package:versions(), refs.tags, refs.branches) + local version, source = semver.select(package:requireinfo().version, package:versions(), {}, {"master"}) -- save version to package package:version_set(version, source) |
