Merge pull request #3203 from jukkalaurila/bug3185

Fix bug 3185, "Setting -Dc_args=... option and some others during initial run fails silently'
pull/3214/head
Jussi Pakkanen 7 years ago committed by GitHub
commit 407b6dfc29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      mesonbuild/interpreter.py
  2. 7
      test cases/common/181 initial c_args/meson.build
  3. 4
      test cases/common/181 initial c_args/test_args.txt

@ -2104,6 +2104,19 @@ to directly access options of other subprojects.''')
else:
version_string = ' (%s %s)' % (comp.id, comp.version)
mlog.log('Native %s compiler: ' % comp.get_display_language(), mlog.bold(' '.join(comp.get_exelist())), version_string, sep='')
# If <language>_args/_link_args settings are given on the
# command line, use them.
for optspec in self.build.environment.cmd_line_options.projectoptions:
(optname, optvalue) = optspec.split('=', maxsplit=1)
if optname.endswith('_link_args'):
lang = optname[:-10]
self.coredata.external_link_args.setdefault(lang, []).append(optvalue)
elif optname.endswith('_args'):
lang = optname[:-5]
self.coredata.external_args.setdefault(lang, []).append(optvalue)
# Otherwise, look for definitions from environment
# variables such as CFLAGS.
if not comp.get_language() in self.coredata.external_args:
(preproc_args, compile_args, link_args) = environment.get_args_from_envvars(comp)
self.coredata.external_preprocess_args[comp.get_language()] = preproc_args

@ -0,0 +1,7 @@
project('options', 'c')
# Test passing c_args and c_link_args options from the command line.
assert(get_option('c_args') == ['-march=native', '-funroll-loops'],
'Incorrect value for c_args option.')
assert(get_option('c_link_args') == ['-random_linker_option'],
'Incorrect value for c_link_args option.')

@ -0,0 +1,4 @@
# This file is not read by meson itself, but by the test framework.
# It is not possible to pass arguments to meson from a file.
['-Dc_args=-march=native', '-Dc_args=-funroll-loops',
'-Dc_link_args=-random_linker_option']
Loading…
Cancel
Save