aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/cmake.py5
-rw-r--r--test cases/cmake/9 disabled subproject/meson.build5
2 files changed, 9 insertions, 1 deletions
diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py
index a36d748..3a01636 100644
--- a/mesonbuild/modules/cmake.py
+++ b/mesonbuild/modules/cmake.py
@@ -274,7 +274,10 @@ class CmakeModule(ExtensionModule):
if len(args) != 1:
raise InterpreterException('Subproject takes exactly one argument')
dirname = args[0]
- return CMakeSubprojectHolder(interpreter.do_subproject(dirname, 'cmake', kwargs), dirname)
+ subp = interpreter.do_subproject(dirname, 'cmake', kwargs)
+ if not subp.held_object:
+ return subp
+ return CMakeSubprojectHolder(subp, dirname)
def initialize(*args, **kwargs):
return CmakeModule(*args, **kwargs)
diff --git a/test cases/cmake/9 disabled subproject/meson.build b/test cases/cmake/9 disabled subproject/meson.build
new file mode 100644
index 0000000..ba38410
--- /dev/null
+++ b/test cases/cmake/9 disabled subproject/meson.build
@@ -0,0 +1,5 @@
+project('cmakeSubTest', ['c', 'cpp'])
+
+cm = import('cmake')
+
+sub_pro = cm.subproject('nothinig', required: false) \ No newline at end of file