diff options
| author | ruki <[email protected]> | 2021-03-10 00:34:52 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-03-10 00:34:52 +0800 |
| commit | aeda97353dd23f22b7d7cda78eb3d10470177d55 (patch) | |
| tree | 7b788fc63caa00c0ee62a0c435b4cfadc27c4e78 | |
| parent | 8b1b39ce7a9f342699c73aaede4b627ae151c31a (diff) | |
fix git checkout for requires
| -rw-r--r-- | xmake/modules/devel/git/submodule/update.lua | 4 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/actions/download.lua | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/xmake/modules/devel/git/submodule/update.lua b/xmake/modules/devel/git/submodule/update.lua index 6256c673f..b75e391ca 100644 --- a/xmake/modules/devel/git/submodule/update.lua +++ b/xmake/modules/devel/git/submodule/update.lua @@ -30,8 +30,8 @@ import("lib.detect.find_tool") -- -- import("devel.git.submodule") -- --- submodule.update("master", {repodir = "/tmp/xmake", init = true, remote = true}) --- submodule.update("v1.0.1", {repodir = "/tmp/xmake", recursive = true, reference = "xxx", paths = "xxx"}) +-- submodule.update({repodir = "/tmp/xmake", init = true, remote = true}) +-- submodule.update({repodir = "/tmp/xmake", recursive = true, reference = "xxx", paths = "xxx"}) -- -- @endcode -- diff --git a/xmake/modules/private/action/require/impl/actions/download.lua b/xmake/modules/private/action/require/impl/actions/download.lua index 3d27f6736..93f8d3ddf 100644 --- a/xmake/modules/private/action/require/impl/actions/download.lua +++ b/xmake/modules/private/action/require/impl/actions/download.lua @@ -70,10 +70,14 @@ function _checkout(package, url, sourcedir, url_alias) else -- clone whole history and tags - git.clone(url, {outputdir = packagedir, recursive = true}) + git.clone(url, {outputdir = packagedir}) -- attempt to checkout the given version - git.checkout(package:revision(url_alias) or package:tag() or package:version_str(), {repodir = packagedir}) + local revision = package:revision(url_alias) or package:tag() or package:version_str() + git.checkout(revision, {repodir = packagedir}) + + -- update all submodules + git.submodule.update({init = true, recursive = true, repodir = packagedir}) end -- move to source directory |
