diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2017-10-05 11:29:13 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2017-10-25 10:03:34 -0700 |
commit | cadf5f3c044b823be9cd1de81cbf90c9fc61be2f (patch) | |
tree | 7d85366c1586fa5f8ae2a0a5b366973a3973953d | |
parent | 7841210b4f42c6bada74bc1bc48a355d6631b679 (diff) | |
download | meson-cadf5f3c044b823be9cd1de81cbf90c9fc61be2f.zip meson-cadf5f3c044b823be9cd1de81cbf90c9fc61be2f.tar.gz meson-cadf5f3c044b823be9cd1de81cbf90c9fc61be2f.tar.bz2 |
llvm: Add optional modules
These will become more relevant later in the series.
-rw-r--r-- | mesonbuild/dependencies/dev.py | 23 | ||||
-rw-r--r-- | test cases/frameworks/15 llvm/meson.build | 3 |
2 files changed, 19 insertions, 7 deletions
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index b087740..87a032f 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -188,15 +188,24 @@ class LLVMDependency(ExternalDependency): modules = stringlistify(extract_as_list(kwargs, 'modules')) self.check_components(modules) - def check_components(self, modules): - """Check for llvm components (modules in meson terms). """ + opt_modules = stringlistify(extract_as_list(kwargs, 'optional_modules')) + self.check_components(opt_modules, required=False) + + def check_components(self, modules, required=True): + """Check for llvm components (modules in meson terms). + + The required option is whether the module is required, not whether LLVM + is required. + """ for mod in sorted(set(modules)): if mod not in self.modules: - mlog.log('LLVM module', mod, 'found:', mlog.red('NO')) - self.is_found = False - if self.required: - raise DependencyException( - 'Could not find required LLVM Component: {}'.format(mod)) + mlog.log('LLVM module', mod, 'found:', mlog.red('NO'), + '(optional)' if not required else '') + if required: + self.is_found = False + if self.required: + raise DependencyException( + 'Could not find required LLVM Component: {}'.format(mod)) else: mlog.log('LLVM module', mod, 'found:', mlog.green('YES')) diff --git a/test cases/frameworks/15 llvm/meson.build b/test cases/frameworks/15 llvm/meson.build index 9b2395f..ee6f556 100644 --- a/test cases/frameworks/15 llvm/meson.build +++ b/test cases/frameworks/15 llvm/meson.build @@ -13,6 +13,9 @@ assert(d.found() == false, 'not-found llvm module found') d = dependency('llvm', version : '<0.1', required : false) assert(d.found() == false, 'ancient llvm module found') +d = dependency('llvm', optional_modules : 'not-found', required : false) +assert(d.found() == true, 'optional module stopped llvm from being found.') + executable('sum', 'sum.c', dependencies : [ llvm_dep, dependency('zlib'), |