|
|
|
project('cmakeSubTest', ['c', 'cpp'])
|
|
|
|
|
|
|
|
# Fallback to a CMake subproject
|
|
|
|
sub_dep = dependency('cmModLib++', version: '>=1.2.3')
|
|
|
|
exe1 = executable('main', ['main.cpp'], dependencies: [sub_dep])
|
|
|
|
test('test1', exe1)
|
|
|
|
|
|
|
|
# Subproject contains both meson.build and CMakeLists.txt. It should default
|
|
|
|
# to meson but wrap force cmake.
|
|
|
|
subproject('force_cmake')
|
|
|
|
|
|
|
|
testcase expect_error('Wrap method \'notfound\' is not supported, must be one of: meson, cmake, cargo')
|
|
|
|
subproject('broken_method')
|
|
|
|
endtestcase
|
|
|
|
|
|
|
|
# With method=meson we can't use cmake.subproject()
|
|
|
|
cmake = import('cmake')
|
|
|
|
testcase expect_error('Wrap method is \'meson\' but we are trying to configure it with cmake')
|
|
|
|
cmake.subproject('meson_method')
|
|
|
|
endtestcase
|
|
|
|
|
|
|
|
# cmake.subproject() force cmake method even if meson.build exists.
|
|
|
|
testcase expect_error('Subproject exists but has no CMakeLists.txt file.')
|
|
|
|
cmake.subproject('meson_subp')
|
|
|
|
endtestcase
|
|
|
|
|
|
|
|
# Without specifying the method it defaults to meson even if CMakeLists.txt exists.
|
|
|
|
testcase expect_error('Subproject exists but has no meson.build file.')
|
|
|
|
subproject('cmake_subp')
|
|
|
|
endtestcase
|