aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2018-08-21 08:59:55 -0400
committerGitHub <noreply@github.com>2018-08-21 08:59:55 -0400
commit79f8c763268477fdef3f6346d0333b1a3549ab34 (patch)
tree92a2167d4ecee2c8db51f7704f6cd9e9b84f73bf
parent19617f8661fbe012d8f01bb76b2b9f5e23cffe37 (diff)
parent576f3bb1bfc7f244e279976edc92b3ccc25b8a0f (diff)
downloadmeson-79f8c763268477fdef3f6346d0333b1a3549ab34.zip
meson-79f8c763268477fdef3f6346d0333b1a3549ab34.tar.gz
meson-79f8c763268477fdef3f6346d0333b1a3549ab34.tar.bz2
Merge pull request #4064 from xclaesse/allow-dups
UserArrayOption: Allow duplicates when used as <lang>_args option
-rw-r--r--mesonbuild/compilers/compilers.py4
-rw-r--r--mesonbuild/coredata.py5
2 files changed, 5 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index b8ae399..b400478 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -858,11 +858,11 @@ class Compiler:
self.language + '_args': coredata.UserArrayOption(
self.language + '_args',
description + ' compiler',
- compile_args, shlex_split=True, user_input=True),
+ compile_args, shlex_split=True, user_input=True, allow_dups=True),
self.language + '_link_args': coredata.UserArrayOption(
self.language + '_link_args',
description + ' linker',
- link_args, shlex_split=True, user_input=True),
+ link_args, shlex_split=True, user_input=True, allow_dups=True),
})
return opts
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index 7520e06..afd39c8 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -138,9 +138,10 @@ class UserComboOption(UserOption):
return value
class UserArrayOption(UserOption):
- def __init__(self, name, description, value, shlex_split=False, user_input=False, **kwargs):
+ def __init__(self, name, description, value, shlex_split=False, user_input=False, allow_dups=False, **kwargs):
super().__init__(name, description, kwargs.get('choices', []), yielding=kwargs.get('yielding', None))
self.shlex_split = shlex_split
+ self.allow_dups = allow_dups
self.value = self.validate_value(value, user_input=user_input)
def validate_value(self, value, user_input=True):
@@ -166,7 +167,7 @@ class UserArrayOption(UserOption):
else:
raise MesonException('"{0}" should be a string array, but it is not'.format(str(newvalue)))
- if len(set(newvalue)) != len(newvalue):
+ if not self.allow_dups and len(set(newvalue)) != len(newvalue):
msg = 'Duplicated values in array option "%s" is deprecated. ' \
'This will become a hard error in the future.' % (self.name)
mlog.deprecation(msg)