aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Partin <tristan@partin.io>2021-04-26 11:13:13 -0500
committerGitHub <noreply@github.com>2021-04-26 17:13:13 +0100
commitcc5428488542429f0ffb6e4698bed2c02a4b1ea8 (patch)
tree5c42792bdc7d6b8b412276489465f5a31741cf8f
parent39c751b94c5e12bb7a48a64941ccf225d93359ff (diff)
downloadmeson-cc5428488542429f0ffb6e4698bed2c02a4b1ea8.zip
meson-cc5428488542429f0ffb6e4698bed2c02a4b1ea8.tar.gz
meson-cc5428488542429f0ffb6e4698bed2c02a4b1ea8.tar.bz2
Fix issue where multiple dist files were not being produced for comma separated formats value
-rw-r--r--mesonbuild/mdist.py5
-rwxr-xr-xrun_unittests.py22
2 files changed, 25 insertions, 2 deletions
diff --git a/mesonbuild/mdist.py b/mesonbuild/mdist.py
index 36bad71..22c5b44 100644
--- a/mesonbuild/mdist.py
+++ b/mesonbuild/mdist.py
@@ -29,6 +29,7 @@ from mesonbuild import mlog, build
from .scripts.meson_exe import run_exe
archive_choices = ['gztar', 'xztar', 'zip']
+
archive_extension = {'gztar': '.tar.gz',
'xztar': '.tar.xz',
'zip': '.zip'}
@@ -36,8 +37,8 @@ archive_extension = {'gztar': '.tar.gz',
def add_arguments(parser):
parser.add_argument('-C', default='.', dest='wd',
help='directory to cd into before running')
- parser.add_argument('--formats', default='xztar', choices=archive_choices,
- help='Comma separated list of archive types to create.')
+ parser.add_argument('--formats', default='xztar',
+ help='Comma separated list of archive types to create. Supports xztar (default), gztar, and zip.')
parser.add_argument('--include-subprojects', action='store_true',
help='Include source code of subprojects that have been used for the build.')
parser.add_argument('--no-tests', action='store_true',
diff --git a/run_unittests.py b/run_unittests.py
index a0eb670..3faa20c 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -3230,6 +3230,8 @@ class AllPlatformTests(BasePlatformTests):
'''))
xz_distfile = os.path.join(self.distdir, 'disttest-1.4.3.tar.xz')
xz_checksumfile = xz_distfile + '.sha256sum'
+ gz_distfile = os.path.join(self.distdir, 'disttest-1.4.3.tar.gz')
+ gz_checksumfile = gz_distfile + '.sha256sum'
zip_distfile = os.path.join(self.distdir, 'disttest-1.4.3.zip')
zip_checksumfile = zip_distfile + '.sha256sum'
vcs_init(project_dir)
@@ -3243,12 +3245,32 @@ class AllPlatformTests(BasePlatformTests):
self.build('dist')
self.assertPathExists(xz_distfile)
self.assertPathExists(xz_checksumfile)
+ self.assertPathDoesNotExist(gz_distfile)
+ self.assertPathDoesNotExist(gz_checksumfile)
self.assertPathDoesNotExist(zip_distfile)
self.assertPathDoesNotExist(zip_checksumfile)
+ self._run(self.meson_command + ['dist', '--formats', 'gztar'],
+ workdir=self.builddir)
+ self.assertPathExists(gz_distfile)
+ self.assertPathExists(gz_checksumfile)
self._run(self.meson_command + ['dist', '--formats', 'zip'],
workdir=self.builddir)
self.assertPathExists(zip_distfile)
self.assertPathExists(zip_checksumfile)
+ os.remove(xz_distfile)
+ os.remove(xz_checksumfile)
+ os.remove(gz_distfile)
+ os.remove(gz_checksumfile)
+ os.remove(zip_distfile)
+ os.remove(zip_checksumfile)
+ self._run(self.meson_command + ['dist', '--formats', 'xztar,gztar,zip'],
+ workdir=self.builddir)
+ self.assertPathExists(xz_distfile)
+ self.assertPathExists(xz_checksumfile)
+ self.assertPathExists(gz_distfile)
+ self.assertPathExists(gz_checksumfile)
+ self.assertPathExists(zip_distfile)
+ self.assertPathExists(zip_checksumfile)
if include_subprojects:
# Verify that without --include-subprojects we have files from