aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-02-23 17:42:45 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-06-06 18:27:03 +0200
commit3d7c50d1092bb6f00842f73248650e0af1266050 (patch)
tree91f5f0bbfb16a7915974f53adf205085ebf88ed0 /mesonbuild/cmake
parentd114d8446eac10ad27f4b09c02e0049890a4b2a0 (diff)
downloadmeson-3d7c50d1092bb6f00842f73248650e0af1266050.zip
meson-3d7c50d1092bb6f00842f73248650e0af1266050.tar.gz
meson-3d7c50d1092bb6f00842f73248650e0af1266050.tar.bz2
cmake: Added option for additional CMake args
Diffstat (limited to 'mesonbuild/cmake')
-rw-r--r--mesonbuild/cmake/interpreter.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index 1962e06..c0c0a44 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -226,7 +226,7 @@ class CMakeInterpreter:
self.languages = []
self.targets = []
- def configure(self) -> None:
+ def configure(self, extra_cmake_options: List[str]) -> None:
# Find CMake
cmake_exe, cmake_vers, _ = CMakeDependency.find_cmake_binary(self.env)
if cmake_exe is None or cmake_exe is False:
@@ -249,7 +249,9 @@ class CMakeInterpreter:
elif len(exelist) == 2:
cmake_args += ['-DCMAKE_{}_COMPILER_LAUNCHER={}'.format(cmake_lang, exelist[0]),
'-DCMAKE_{}_COMPILER={}'.format(cmake_lang, exelist[1])]
- cmake_args += ['-G', generator, '-DCMAKE_INSTALL_PREFIX={}'.format(self.install_prefix)]
+ cmake_args += ['-G', generator]
+ cmake_args += ['-DCMAKE_INSTALL_PREFIX={}'.format(self.install_prefix)]
+ cmake_args += extra_cmake_options
# Run CMake
mlog.log()
@@ -276,10 +278,10 @@ class CMakeInterpreter:
if proc.returncode != 0:
raise CMakeException('Failed to configure the CMake subproject')
- def initialise(self) -> None:
+ def initialise(self, extra_cmake_options: List[str]) -> None:
# Run configure the old way becuse doing it
# with the server doesn't work for some reason
- self.configure()
+ self.configure(extra_cmake_options)
with self.client.connect():
generator = CMAKE_BACKEND_GENERATOR_MAP[self.backend_name]
@@ -300,6 +302,7 @@ class CMakeInterpreter:
src_dir = bs_reply.src_dir
self.bs_files = [x.file for x in bs_reply.build_files if not x.is_cmake and not x.is_temp]
self.bs_files = [os.path.relpath(os.path.join(src_dir, x), self.env.get_source_dir()) for x in self.bs_files]
+ self.bs_files = list(set(self.bs_files))
self.codemodel = cm_reply
def analyse(self) -> None: