diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-07-01 00:04:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-01 00:04:08 +0300 |
commit | 64f36613ef5d54de9d2040da60b225c1ef11140d (patch) | |
tree | 8f490ef78cc1a6b02ca9b950ad51f5ded2218229 /mesonbuild/interpreter.py | |
parent | b6981bd16eb0227173a85d4b26a4b060dab16998 (diff) | |
parent | 0e98a7679a658b2a53a5de578f202a022c69f0c1 (diff) | |
download | meson-64f36613ef5d54de9d2040da60b225c1ef11140d.zip meson-64f36613ef5d54de9d2040da60b225c1ef11140d.tar.gz meson-64f36613ef5d54de9d2040da60b225c1ef11140d.tar.bz2 |
Merge pull request #7231 from mensinda/cmOverride
cmake: Add more advanced subproject configuration options
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 76c8254..487bdd6 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2444,7 +2444,7 @@ class Interpreter(InterpreterBase): if isinstance(item, build.CustomTarget): return CustomTargetHolder(item, self) - elif isinstance(item, (int, str, bool, Disabler)) or item is None: + elif isinstance(item, (int, str, bool, Disabler, InterpreterObject)) or item is None: return item elif isinstance(item, build.Executable): return ExecutableHolder(item, self) @@ -2867,13 +2867,21 @@ external dependencies (including libraries) must go to "dependencies".''') with mlog.nested(): new_build = self.build.copy() prefix = self.coredata.builtins['prefix'].value + + from .modules.cmake import CMakeSubprojectOptions + options = kwargs.get('options', CMakeSubprojectOptions()) + if not isinstance(options, CMakeSubprojectOptions): + raise InterpreterException('"options" kwarg must be CMakeSubprojectOptions' + ' object (created by cmake.subproject_options())') + cmake_options = mesonlib.stringlistify(kwargs.get('cmake_options', [])) + cmake_options += options.cmake_options cm_int = CMakeInterpreter(new_build, subdir, subdir_abs, prefix, new_build.environment, self.backend) cm_int.initialise(cmake_options) cm_int.analyse() # Generate a meson ast and execute it with the normal do_subproject_meson - ast = cm_int.pretend_to_be_meson() + ast = cm_int.pretend_to_be_meson(options.target_options) mlog.log() with mlog.nested(): |