Preserve standalone -D arguments always.

pull/1951/head
Jussi Pakkanen 8 years ago
parent 85a263a670
commit 1c34707aee
  1. 11
      mesonbuild/compilers.py
  2. 7
      run_unittests.py

@ -430,6 +430,17 @@ class CompilerArgs(list):
to recursively search for symbols in the libraries. This is not needed
with other linkers.
'''
# A standalone argument must never be deduplicated because it is
# defined by what comes _after_ it. Thus dedupping this:
# -D FOO -D BAR
# would yield either
# -D FOO BAR
# or
# FOO -D BAR
# both of which are invalid.
if arg in cls.dedup2_prefixes:
return 0
if arg in cls.dedup2_args or \
arg.startswith(cls.dedup2_prefixes) or \
arg.endswith(cls.dedup2_suffixes):

@ -1225,9 +1225,10 @@ int main(int argc, char **argv) {
testdir = os.path.join(self.unit_test_dir, '10 d dedup')
self.init(testdir)
cmd = self.get_compdb()[0]['command']
self.assertTrue('-D FOO -D BAR' in cmd or \
'/D FOO /D BAR' in cmd)
self.assertTrue('-D FOO -D BAR' in cmd or
'"-D" "FOO" "-D" "BAR"' in cmd or
'/D FOO /D BAR' in cmd or
'"/D" "FOO" "/D" "BAR"' in cmd)
class FailureTests(BasePlatformTests):

Loading…
Cancel
Save