aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-03-12 22:13:26 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-04-02 00:07:23 +0300
commit319398f0749890a57a661ddb4524e93f86a0d41e (patch)
tree526d876fe6bc78f6411ea31dcb188bbe925202ce /mesonbuild/backend/ninjabackend.py
parentcf97c7af813ef39a7edf0693a4b127d30ad9cc55 (diff)
downloadmeson-319398f0749890a57a661ddb4524e93f86a0d41e.zip
meson-319398f0749890a57a661ddb4524e93f86a0d41e.tar.gz
meson-319398f0749890a57a661ddb4524e93f86a0d41e.tar.bz2
Proxy object for overriding options transparently.
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r--mesonbuild/backend/ninjabackend.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index e1e239f..d54cacf 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1810,13 +1810,15 @@ rule FORTRAN_DEP_HACK
return incs
def _generate_single_compile(self, target, compiler, is_generated=False):
+ base_proxy = backends.OptionOverrideProxy(target.option_overrides,
+ self.environment.coredata.base_options)
# Create an empty commands list, and start adding arguments from
# various sources in the order in which they must override each other
commands = CompilerArgs(compiler)
# Add compiler args for compiling this target derived from 'base' build
# options passed on the command-line, in default_options, etc.
# These have the lowest priority.
- commands += compilers.get_base_compile_args(self.environment.coredata.base_options,
+ commands += compilers.get_base_compile_args(base_proxy,
compiler)
# The code generated by valac is usually crap and has tons of unused
# variables and such, so disable warnings for Vala C sources.
@@ -1888,6 +1890,13 @@ rule FORTRAN_DEP_HACK
raise AssertionError('BUG: sources should not contain headers {!r}'.format(src))
if isinstance(src, RawFilename) and src.fname.endswith('.h'):
raise AssertionError('BUG: sources should not contain headers {!r}'.format(src.fname))
+ extra_orderdeps = []
+ compiler = get_compiler_for_source(target.compilers.values(), src)
+
+ if isinstance(src, str) and src.endswith('.h'):
+ raise AssertionError('BUG: sources should not contain headers {!r}'.format(src))
+ if isinstance(src, RawFilename) and src.fname.endswith('.h'):
+ raise AssertionError('BUG: sources should not contain headers {!r}'.format(src.fname))
compiler = get_compiler_for_source(target.compilers.values(), src)
key = (target, compiler, is_generated)
if key in self.target_arg_cache: