blob: 9e324f9bd52bf0d4070439e310134f89f5482a8a [file] [log] [blame] [view]
## Swift/C++ interoperability is now supported
It is now possible to create Swift executables that can link to C++ or
Objective-C++ libraries. To enable this feature, set the target kwarg
_swift\_interoperability\_mode_ to 'cpp'.
To import C++ code, specify a bridging header in the Swift target's
sources, or use another way such as adding a directory containing a
Clang module map to its include path.
Note: Enabling C++ interoperability in a library target is a breaking
change. Swift libraries that enable it need their consumers to enable
it as well, as per [the Swift documentation][1].
Swift 5.9 is required to use this feature. Xcode 15 is required if the
Xcode backend is used.
```meson
lib = static_library('mylib', 'mylib.cpp')
exe = executable('prog', 'main.swift', 'mylib.h', link_with: lib, swift_interoperability_mode: 'cpp')
```
[1]: https://www.swift.org/documentation/cxx-interop/project-build-setup/#vending-packages-that-enable-c-interoperability