diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2020-12-26 11:25:44 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-12-29 21:43:54 +0000 |
commit | 5cbc8f866c78b6d408e8a23c531d3c03ca38f1c7 (patch) | |
tree | 4898207c34881327840fc4554c6950a7274cb507 /mesonbuild/cmake/interpreter.py | |
parent | 80390dd98795306a94c9e999c3ff37f6f9f8816a (diff) | |
download | meson-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.py | 14 |
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) |