aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/c.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-04-28 14:30:52 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-04-28 14:33:22 +0200
commitc61ae46461bf9f4c7afef2381032ac0cb2d26043 (patch)
tree27d2dc7eb3dd4c7ade9a46b83a41541ea7936eab /mesonbuild/compilers/c.py
parent8a32fc8dbeb6d0fb5666f2af694d70fa6b575e03 (diff)
downloadmeson-c61ae46461bf9f4c7afef2381032ac0cb2d26043.zip
meson-c61ae46461bf9f4c7afef2381032ac0cb2d26043.tar.gz
meson-c61ae46461bf9f4c7afef2381032ac0cb2d26043.tar.bz2
Moved caching into a seperate function
Diffstat (limited to 'mesonbuild/compilers/c.py')
-rw-r--r--mesonbuild/compilers/c.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index e1001e7..da51ce2 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -450,7 +450,9 @@ class CCompiler(Compiler):
def _build_wrapper(self, code, env, extra_args, dependencies=None, mode='compile', want_output=False, disable_cache=False):
args = self._get_compiler_check_args(env, extra_args, dependencies, mode)
- return self.compile(code, args, mode, want_output=want_output, cdata=env.coredata if not disable_cache else None)
+ if disable_cache or want_output:
+ return self.compile(code, extra_args=args, mode=mode, want_output=want_output)
+ return self.cached_compile(code, env.coredata, extra_args=args, mode=mode)
def links(self, code, env, *, extra_args=None, dependencies=None, disable_cache=False):
return self.compiles(code, env, extra_args=extra_args,
@@ -652,7 +654,10 @@ class CCompiler(Compiler):
{delim}\n{define}'''
args = self._get_compiler_check_args(env, extra_args, dependencies,
mode='preprocess').to_native()
- with self.compile(code.format(**fargs), args, 'preprocess', cdata=env.coredata if not disable_cache else None) as p:
+ func = lambda: self.cached_compile(code.format(**fargs), env.coredata, extra_args=args, mode='preprocess')
+ if disable_cache:
+ func = lambda: self.compile(code.format(**fargs), extra_args=args, mode='preprocess')
+ with func() as p:
cached = p.cached
if p.returncode != 0:
raise EnvironmentException('Could not get define {!r}'.format(dname))