diff options
author | Andrei Alexeyev <0x416b617269@gmail.com> | 2018-09-15 07:09:14 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-09-16 14:57:56 +0300 |
commit | 67cc636e5375dae03fb43807d2c5222b8c78910c (patch) | |
tree | e481599472912dd367208703c3c0b7ebe7b7320a | |
parent | 46bf51543b5366700ed8d38b0ae3dbfc2725524c (diff) | |
download | meson-67cc636e5375dae03fb43807d2c5222b8c78910c.zip meson-67cc636e5375dae03fb43807d2c5222b8c78910c.tar.gz meson-67cc636e5375dae03fb43807d2c5222b8c78910c.tar.bz2 |
Add 'clone-recursive' option for git wraps
This causes Meson to clone the repo with the --recursive flag, pulling
all of the submodules automatically.
-rw-r--r-- | docs/markdown/Wrap-dependency-system-manual.md | 7 | ||||
-rw-r--r-- | docs/markdown/snippets/wrap_clone_recursive.md | 7 | ||||
-rw-r--r-- | mesonbuild/wrap/wrap.py | 8 |
3 files changed, 20 insertions, 2 deletions
diff --git a/docs/markdown/Wrap-dependency-system-manual.md b/docs/markdown/Wrap-dependency-system-manual.md index 38e1ab2..0977921 100644 --- a/docs/markdown/Wrap-dependency-system-manual.md +++ b/docs/markdown/Wrap-dependency-system-manual.md @@ -109,6 +109,13 @@ the end of your wrap file: push-url=git@git.example.com:projects/someproject.git # Supported since version 0.37.0 ``` +If the git repo contains submodules, you can tell Meson to clone them +automatically by adding the following *(since 0.48.0)*: + +```ini +clone-recursive=true +``` + ## Using wrapped projects To use a subproject simply do this in your top level `meson.build`. diff --git a/docs/markdown/snippets/wrap_clone_recursive.md b/docs/markdown/snippets/wrap_clone_recursive.md new file mode 100644 index 0000000..7c1c0da --- /dev/null +++ b/docs/markdown/snippets/wrap_clone_recursive.md @@ -0,0 +1,7 @@ +## Git wraps can now clone submodules automatically + +To enable this, the following needs to be added to the `.wrap` file: + +```ini +clone-recursive=true +```
\ No newline at end of file diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py index 42808e3..5cc2225 100644 --- a/mesonbuild/wrap/wrap.py +++ b/mesonbuild/wrap/wrap.py @@ -208,8 +208,12 @@ class Resolver: subprocess.check_call(['git', 'checkout', revno], cwd=checkoutdir) else: - subprocess.check_call(['git', 'clone', p.get('url'), - p.get('directory')], cwd=self.subdir_root) + if p.values.get('clone-recursive', '').lower() == 'true': + subprocess.check_call(['git', 'clone', '--recursive', p.get('url'), + p.get('directory')], cwd=self.subdir_root) + else: + subprocess.check_call(['git', 'clone', p.get('url'), + p.get('directory')], cwd=self.subdir_root) if revno.lower() != 'head': if subprocess.call(['git', 'checkout', revno], cwd=checkoutdir) != 0: subprocess.check_call(['git', 'fetch', p.get('url'), revno], cwd=checkoutdir) |