Which languages are supported?

Right now, you can access your C++ code from Java, Objective-C, Swift, Python and JavaScript. Support for more languages coming soon.

Which platforms are supported for development?

macOS, Windows x64, Linux x64 (Ubuntu 18.04 x64 or compatible).

Which IDEs are supported?

Any IDE with CMake support: Xcode, Android Studio, Visual Studio, etc.

How does it work?

In your CMakeLists.txt you register your C++ header file using scapix_bridge_headers(). This uses add_custom_command() to associate Scapix executable (supplied in bin/ folder for macOS, Windows x64, and Linux x64) with generated bridge source file and registers this file as dependent on your C++ header file. This way, every time your C++ header file changes, the build system automatically invokes Scapix executable to rebuild corresponding generated source file. Scapix executable parses C++ header and generates bridge code for other languages.

Python ImportError: generic_type: type “SomeDerivedClassName” referenced unknown base type “SomeBaseClassName”

For Python bridge, the order of headers passed to scapix_bridge_headers() matters: headers with base classes should come before headers with derived classes.

macOS: fatal error: ‘stdlib.h’ file not found (or some other system header)

On macOS, Scapix requires system headers in /usr/include folder. On macOS 10.14 (Mojave): install package which comes with the OS: /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg. On older versions of macOS, run command xcode-select --install.