Commit Graph

67 Commits

Author SHA1 Message Date
Xavier Claessens 98d445a070 msubprojects: Support git subprojects with no wrap file
User could have cloned manually a subproject.
2020-09-10 11:39:30 -04:00
Xavier Claessens 3d443d84bd msubprojects: Use less cryptic "git branch --show-current" command
It describes well what it does, compared to obscure "rev-parse".
2020-09-10 11:39:30 -04:00
Xavier Claessens 400a35e9ea msubprojects: Add --type argument
It is often desired to only update git repositories and not pull
files from wrapdb.
2020-09-10 11:39:30 -04:00
Xavier Claessens 7ba0035db7 msubprojects: Use wrap.Resolver() to load all PackageDefinition
Besides being simpler, it has the advantage of picking directories that
don't have a .wrap file assotiated.
2020-09-10 11:39:30 -04:00
Michael Brockus 98ddd52ced
Cherry-picking - (rm python2 % add python3 .format) (#6725) 2020-03-03 21:45:43 +02:00
Nirbheek Chauhan 4597235f92 msubprojects: We return a string from git() now
Fixes https://github.com/mesonbuild/meson/issues/6651
2020-02-20 12:20:29 -05:00
Nirbheek Chauhan 712b2f08c7 Move git helper out into mesonlib for reuse
Reuse the git helper for `meson wrap` and `meson subprojects` so we
don't need to maintain the same git-colors-on-windows workarounds in
multiple places.
2020-01-22 17:29:38 -05:00
Nirbheek Chauhan da486bfddc msubprojects: Rename 'git' to 'git_output'
No functional changes. Split out from the next commit for ease of
reading.
2020-01-22 17:29:38 -05:00
Antonio Ospite c616686d5d Fix 'meson subprojects foreach' when command returns non-zero exit code
The 'output' field of the subprocess.CalledProcessError exception is
valid only when subprocess.check_output() is called, trying to access it
after calling subprocess.check_call() results in an unwanted exception
when commands return non-zero exit code, e.g.:

-----------------------------------------------------------------------
$ meson subprojects foreach false
Executing command in ./subprojects/sqlite-amalgamation-3250100
  -> Not downloaded yet
Executing command in ./subprojects/gstreamer
Traceback (most recent call last):
  File "/home/ao2/meson/meson/mesonbuild/msubprojects.py", line 177, in foreach
    subprocess.check_call([options.command] + options.args, cwd=repo_dir)
  File "/usr/lib/python3.7/subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['false']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ao2/meson/meson/mesonbuild/mesonmain.py", line 129, in run
    return options.run_func(options)
  File "/home/ao2/meson/meson/mesonbuild/msubprojects.py", line 248, in run
    options.subprojects_func(wrap, repo_dir, options)
  File "/home/ao2/meson/meson/mesonbuild/msubprojects.py", line 180, in foreach
    out = e.output.decode().strip()
AttributeError: 'NoneType' object has no attribute 'decode'
-----------------------------------------------------------------------

Use subprocess.check_output() instead and behave more like git commands
in handling stderr.

This makes it possible to actually run commands on all subprojects
allowing them to fail on some subprojects and succeed on others.

Also catch the case of missing commands and print an error message in
this case as well.
2019-12-05 21:18:36 +02:00
Nirbheek Chauhan 1cb680388d wrap: Redirect stdin to DEVNULL (again)
Same fix as e7b25018c4, was accidentally
missed when this code was rewritten.
2019-11-28 19:00:53 +05:30
Daniel Mensinger e02c101575
cmake: moved subprojects into the CMake module 2019-06-06 18:27:05 +02:00
Markus Theil 93f04033c1 subproject: fix update_svn
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
2019-06-03 20:32:55 +03:00
Antonio Ospite e680dbe065 Add 'meson subprojects foreach' command
Sometimes it is convenient to run an arbitrary command (e.g. 'git diff')
on all subprojects.

Add a 'meson subprojects foreach' command to take care of that.

For this command the common argument 'subprojects' does not make sense,
so only add '--sourcedir' and cover the case of a missing
options.subprojects in run().
2019-04-01 11:51:02 +02:00
Andrei Alexeyev faf3581df6 Fix git wraps with submodules
* If clone-recursive is specified, populate submodules only after
    the specified revision/branch has been checked out. Fixes #4996

    * Update submodules recursively on `meson subprojects update`
2019-03-11 20:31:52 +02:00
Xavier Claessens d655515a6b Add 'meson subprojects download' command 2018-12-02 08:37:32 -05:00
Xavier Claessens b5eac54c9e Add 'meson subprojects checkout' command 2018-12-02 08:37:32 -05:00
Xavier Claessens 60b58e056f Add 'meson subprojects update' command
This is inspired by gst-build's git-update script.
2018-12-02 08:37:32 -05:00