aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake/interpreter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-05-28 16:56:45 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-06-06 18:27:05 +0200
commite02c1015750fb9a5a15a9d0930281cd78e012133 (patch)
treed67c8b2923e7b1eba19ea0d871496a355ee2a915 /mesonbuild/cmake/interpreter.py
parentaf6448ced5955f8fb43aa667ce8065d50c104fba (diff)
downloadmeson-e02c1015750fb9a5a15a9d0930281cd78e012133.zip
meson-e02c1015750fb9a5a15a9d0930281cd78e012133.tar.gz
meson-e02c1015750fb9a5a15a9d0930281cd78e012133.tar.bz2
cmake: moved subprojects into the CMake module
Diffstat (limited to 'mesonbuild/cmake/interpreter.py')
-rw-r--r--mesonbuild/cmake/interpreter.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index 7782555..406723f 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -25,7 +25,7 @@ from ..backend.backends import Backend
from ..compilers.compilers import obj_suffixes
from ..dependencies.base import CMakeDependency, ExternalProgram
from subprocess import Popen, PIPE, STDOUT
-from typing import List
+from typing import List, Dict, Optional
import os, re
backend_generator_map = {
@@ -284,6 +284,9 @@ class CMakeInterpreter:
self.languages = []
self.targets = []
+ # Generated meson data
+ self.generated_targets = {}
+
def configure(self, extra_cmake_options: List[str]) -> None:
# Find CMake
cmake_exe, cmake_vers, _ = CMakeDependency.find_cmake_binary(self.env)
@@ -297,7 +300,7 @@ class CMakeInterpreter:
cmake_args = cmake_exe.get_command()
# Map meson compiler to CMake variables
- for lang, comp in self.build.compilers.items():
+ for lang, comp in self.env.coredata.compilers.items():
if lang not in language_map:
continue
cmake_lang = language_map[lang]
@@ -530,11 +533,20 @@ class CMakeInterpreter:
# Add the nodes to the ast
root_cb.lines += [inc_node, src_node, tgt_node, dep_node]
- processed[tgt.name] = {'inc': inc_var, 'src': src_var, 'dep': dep_var, 'tgt': tgt_var}
+ processed[tgt.name] = {'inc': inc_var, 'src': src_var, 'dep': dep_var, 'tgt': tgt_var, 'func': tgt_func}
# Now generate the target function calls
for i in self.targets:
if i.name not in processed:
process_target(i)
+ self.generated_targets = processed
return root_cb
+
+ def target_info(self, target: str) -> Optional[Dict[str, str]]:
+ if target in self.generated_targets:
+ return self.generated_targets[target]
+ return None
+
+ def target_list(self) -> List[str]:
+ return list(self.generated_targets.keys())