aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/compiler.py
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2023-02-19 12:22:37 -0800
committerEli Schwartz <eschwartz93@gmail.com>2023-02-27 20:09:32 -0500
commit808d5934dd6c6a6c16f66e9dc51dae6e83e02cef (patch)
treee70ac01d9ccac49bad5a7d20b8a79730e388a548 /mesonbuild/interpreter/compiler.py
parent9a41ce58d682faa59fcef5b067adc393a5412d30 (diff)
downloadmeson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.zip
meson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.tar.gz
meson-808d5934dd6c6a6c16f66e9dc51dae6e83e02cef.tar.bz2
Use caching in Compiler.sizeof() and Compiler.alignment()
Diffstat (limited to 'mesonbuild/interpreter/compiler.py')
-rw-r--r--mesonbuild/interpreter/compiler.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py
index c6d0293..70bfd31 100644
--- a/mesonbuild/interpreter/compiler.py
+++ b/mesonbuild/interpreter/compiler.py
@@ -272,10 +272,12 @@ class CompilerHolder(ObjectHolder['Compiler']):
def alignment_method(self, args: T.Tuple[str], kwargs: 'AlignmentKw') -> int:
typename = args[0]
deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=self.compiler.is_cross)
- result = self.compiler.alignment(typename, kwargs['prefix'], self.environment,
- extra_args=kwargs['args'],
- dependencies=deps)
- mlog.log('Checking for alignment of', mlog.bold(typename, True), msg, mlog.bold(str(result)))
+ result, cached = self.compiler.alignment(typename, kwargs['prefix'], self.environment,
+ extra_args=kwargs['args'],
+ dependencies=deps)
+ cached_msg = mlog.blue('(cached)') if cached else ''
+ mlog.log('Checking for alignment of',
+ mlog.bold(typename, True), msg, mlog.bold(str(result)), cached_msg)
return result
@typed_pos_args('compiler.run', (str, mesonlib.File))
@@ -419,9 +421,11 @@ class CompilerHolder(ObjectHolder['Compiler']):
element = args[0]
extra_args = functools.partial(self._determine_args, kwargs['no_builtin_args'], kwargs['include_directories'], kwargs['args'])
deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=self.compiler.is_cross)
- esize = self.compiler.sizeof(element, kwargs['prefix'], self.environment,
- extra_args=extra_args, dependencies=deps)
- mlog.log('Checking for size of', mlog.bold(element, True), msg, mlog.bold(str(esize)))
+ esize, cached = self.compiler.sizeof(element, kwargs['prefix'], self.environment,
+ extra_args=extra_args, dependencies=deps)
+ cached_msg = mlog.blue('(cached)') if cached else ''
+ mlog.log('Checking for size of',
+ mlog.bold(element, True), msg, mlog.bold(str(esize)), cached_msg)
return esize
@FeatureNew('compiler.get_define', '0.40.0')