aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake/interpreter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2020-12-26 11:25:44 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2020-12-29 21:43:54 +0000
commit5cbc8f866c78b6d408e8a23c531d3c03ca38f1c7 (patch)
tree4898207c34881327840fc4554c6950a7274cb507 /mesonbuild/cmake/interpreter.py
parent80390dd98795306a94c9e999c3ff37f6f9f8816a (diff)
downloadmeson-5cbc8f866c78b6d408e8a23c531d3c03ca38f1c7.zip
meson-5cbc8f866c78b6d408e8a23c531d3c03ca38f1c7.tar.gz
meson-5cbc8f866c78b6d408e8a23c531d3c03ca38f1c7.tar.bz2
cmake: fix -framework dependencies (fixes #8045)
Diffstat (limited to 'mesonbuild/cmake/interpreter.py')
-rw-r--r--mesonbuild/cmake/interpreter.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index 4fac7b1..d4f7fba 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -502,6 +502,20 @@ class ConverterTarget:
self.link_libraries = [x for x in self.link_libraries if x.lower() not in blacklist_link_libs]
self.link_flags = [x for x in self.link_flags if check_flag(x)]
+ # Handle OSX frameworks
+ def handle_frameworks(flags: T.List[str]) -> T.List[str]:
+ res: T.List[str] = []
+ for i in flags:
+ p = Path(i)
+ if not p.exists() or not p.name.endswith('.framework'):
+ res += [i]
+ continue
+ res += ['-framework', p.stem]
+ return res
+
+ self.link_libraries = handle_frameworks(self.link_libraries)
+ self.link_flags = handle_frameworks(self.link_flags)
+
# Handle explicit CMake add_dependency() calls
for i in self.depends_raw:
dep_tgt = output_target_map.target(i)