summaryrefslogtreecommitdiff
path: root/xmake/modules/private/action/require/impl
diff options
context:
space:
mode:
authorruki <[email protected]>2021-03-10 00:34:52 +0800
committerruki <[email protected]>2021-03-10 00:34:52 +0800
commitaeda97353dd23f22b7d7cda78eb3d10470177d55 (patch)
tree7b788fc63caa00c0ee62a0c435b4cfadc27c4e78 /xmake/modules/private/action/require/impl
parent8b1b39ce7a9f342699c73aaede4b627ae151c31a (diff)
fix git checkout for requires
Diffstat (limited to 'xmake/modules/private/action/require/impl')
-rw-r--r--xmake/modules/private/action/require/impl/actions/download.lua8
1 files changed, 6 insertions, 2 deletions
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