diff options
| author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-08-20 16:16:02 -0400 |
|---|---|---|
| committer | Xavier Claessens <xavier.claessens@collabora.com> | 2018-08-20 16:16:38 -0400 |
| commit | 576f3bb1bfc7f244e279976edc92b3ccc25b8a0f (patch) | |
| tree | 753edc4022167c171b889bddb4b426efdd4aa711 | |
| parent | 6e00ab6236e9d65376ac8c603e1321a6a0af6b57 (diff) | |
| download | meson-576f3bb1bfc7f244e279976edc92b3ccc25b8a0f.tar.gz | |
UserArrayOption: Allow duplicates when used as <lang>_args option
Closes: #4021.
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 4 | ||||
| -rw-r--r-- | mesonbuild/coredata.py | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index b8ae399ae..b40047844 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 7520e06a3..afd39c83e 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) |
