aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2020-10-13 16:47:23 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2020-10-13 23:51:25 +0300
commite36f713a7f5cc10d3f8adc7ae1c73ef6cce51082 (patch)
tree8b0c072a8ba46fa629bb99dfd460282953076f56 /mesonbuild
parente00df9046defea68ca449635d9ce3e849bc70807 (diff)
downloadmeson-e36f713a7f5cc10d3f8adc7ae1c73ef6cce51082.zip
meson-e36f713a7f5cc10d3f8adc7ae1c73ef6cce51082.tar.gz
meson-e36f713a7f5cc10d3f8adc7ae1c73ef6cce51082.tar.bz2
include_type: Add CMake subporject dependency method (fixes #6879)
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/modules/cmake.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py
index 2383753..35c85a7 100644
--- a/mesonbuild/modules/cmake.py
+++ b/mesonbuild/modules/cmake.py
@@ -20,7 +20,7 @@ from . import ExtensionModule, ModuleReturnValue
from .. import build, dependencies, mesonlib, mlog
from ..cmake import SingleTargetOptions, TargetOptions, cmake_defines_to_args
-from ..interpreter import ConfigurationDataHolder, InterpreterException, SubprojectHolder
+from ..interpreter import ConfigurationDataHolder, InterpreterException, SubprojectHolder, DependencyHolder
from ..interpreterbase import (
InterpreterObject,
ObjectHolder,
@@ -105,11 +105,18 @@ class CMakeSubprojectHolder(InterpreterObject, ObjectHolder):
def get_variable(self, args, kwargs):
return self.held_object.get_variable_method(args, kwargs)
- @noKwargs
+ @FeatureNewKwargs('dependency', '0.56.0', ['include_type'])
+ @permittedKwargs({'include_type'})
@stringArgs
def dependency(self, args, kwargs):
info = self._args_to_info(args)
- return self.get_variable([info['dep']], kwargs)
+ orig = self.get_variable([info['dep']], {})
+ assert isinstance(orig, DependencyHolder)
+ actual = orig.include_type_method([], {})
+ if 'include_type' in kwargs and kwargs['include_type'] != actual:
+ mlog.debug('Current include type is {}. Converting to requested {}'.format(actual, kwargs['include_type']))
+ return orig.as_system_method([kwargs['include_type']], {})
+ return orig
@noKwargs
@stringArgs