summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/swift.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers/swift.py')
-rw-r--r--mesonbuild/compilers/swift.py13
1 files changed, 8 insertions, 5 deletions
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']