diff options
| author | Katalin Rebhan <me@dblsaiko.net> | 2025-02-25 21:26:32 +0100 |
|---|---|---|
| committer | Jussi Pakkanen <jussi.pakkanen@mailbox.org> | 2025-08-02 21:45:01 +0300 |
| commit | eefad4a723ce63a0ac02edec7c41d69fa10b14bb (patch) | |
| tree | 8662fbd313bbdb7d71823b6c6c803bbdd3a03e08 /mesonbuild/compilers | |
| parent | 6473a727a6907185871758bb554c0850bd00cf6b (diff) | |
| download | meson-eefad4a723ce63a0ac02edec7c41d69fa10b14bb.tar.gz | |
Add swift_interoperability_mode kwarg
Diffstat (limited to 'mesonbuild/compilers')
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 3 | ||||
| -rw-r--r-- | mesonbuild/compilers/swift.py | 13 |
2 files changed, 8 insertions, 8 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index f32205db9..a823aeb00 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1121,9 +1121,6 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta): def get_compile_only_args(self) -> T.List[str]: return [] - def get_cxx_interoperability_args(self, lang: T.Dict[str, Compiler]) -> T.List[str]: - raise EnvironmentException('This compiler does not support CXX interoperability') - def get_preprocess_only_args(self) -> T.List[str]: raise EnvironmentException('This compiler does not have a preprocessor') diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py index 3fff7a1ff..89da306ab 100644 --- a/mesonbuild/compilers/swift.py +++ b/mesonbuild/compilers/swift.py @@ -153,11 +153,14 @@ class SwiftCompiler(Compiler): return ['-working-directory', path] - def get_cxx_interoperability_args(self, lang: T.Dict[str, Compiler]) -> T.List[str]: - if 'cpp' in lang or 'objcpp' in lang: - return ['-cxx-interoperability-mode=default'] - else: - return ['-cxx-interoperability-mode=off'] + def get_cxx_interoperability_args(self, target: T.Optional[build.BuildTarget] = None) -> T.List[str]: + if target is not None and not target.uses_swift_cpp_interop(): + return [] + + if version_compare(self.version, '<5.9'): + raise MesonException(f'Compiler {self} does not support C++ interoperability') + + return ['-cxx-interoperability-mode=default'] def get_library_args(self) -> T.List[str]: return ['-parse-as-library'] |
