Releases: cross-language-cpp/djinni-support-lib
Releases · cross-language-cpp/djinni-support-lib
v1.2.1
v1.2.0
Changed
- The source file
djinni/jni/djinni_jni_main.cpp
is no longer included if building as static library, because it is only really required when building as shared library. This doesn't change anything for the end user. (#50) - The C wrapper code does not refer to "Python" in it's names any more. The long term goal is to make the C wrapper a general purpose interface that can be used for bridging to other languages as well.
Removed
- the paths
djinni/<lang>/
are no longer include directories in the CMake target. They were provided to maintain compatibility with the original dropbox Djinni generator and are not needed any more with the cross-language-cpp generator. (#53)
Fixed
- The JNI build on Android did not work with the (no so experimental anymore)
EXPERIMENTAL_AUTO_CPP_THREAD_ATTACH
flag enabled (cmake optionJNI_CPP_THREAD_ATTACH=ON
) . This is now resolved and JNI compiles for both Android NDK and OpenJDK if you really want multithread support enabled. (#46) - With newer NDKs and Android release, an assert on a JNI pointer stared causing problems under some circumstances. The assert has been adopted to make less assumptions on the internals of the Android target platform. (#47,#30)
v1.1.0
Added
- New CMake option
JNI_CPP_THREAD_ATTACH
that enables the existingEXPERIMENTAL_AUTO_CPP_THREAD_ATTACH
feature. Allows to call back into Java from a thread created in C++. It is recommended to avoid this if possible! (#14) - Additional check in
CMakeLists.txt
that will not allow buildingDJINNI_WITH_CPPCLI
together withDJINNI_WITH_OBJC
,DJINNI_WITH_JNI
orDJINNI_WITH_PYTHON
at the same time. (#35)
Removed
- Polyfill for thread-local storage in the cwrapper that was intended for use until all supported compilers support
thread_local
natively. It was causing a build error on Windows (#32) and is not needed anymore. (#41)
Fixed
- Assertion failure on Android AVD on Apple M1. (#30)
- Missing header
wrapper_marshal.hpp
in the installed cwrapper header files. (#36) - Error messages in Java build if AWT is not found. (#12)
- Compiler warning in the cwrapper because of a missing
return
outside of a catch-block. (#34)
Known issues
This version doesn't compile for JNI on Android with the flag EXPERIMENTAL_AUTO_CPP_THREAD_ATTACH
enabled. The problem was solved in #46 and will be fixed in the next release.
v1.0.0
Added
- New install instructions for embedding the library in CMake without a package manager (#27)
- For
DJINNI_WITH_JNI
: The library provides a new header file that includes a default implementation ofJNI_OnLoad
&JNI_OnUnload
. This header is then automatically included by the gluecode generated by djinni-generator v1.0.0 (#26)
Changed
- Requires at least C++17
- Cleaned up CMakeLists.txt for it to be more standardized & have a reduced complexity, while adding support for it to be embedded into another CMake project easily:
- Library now builds as static by default. Building a shared library can be enabled with
BUILD_SHARED_LIBS=ON
orDJINNI_LIBRARY_TYPE=SHARED
- For
DJINNI_WITH_JNI
: Code is always built with-fPIC
. - Configuring tests can be disabled with
BUILD_TESTING=OFF
orDJINNI_BUILD_TESTING=OFF
- Library now builds as static by default. Building a shared library can be enabled with
Why is this a major release?
- The changes in CMakeLists.txt may break your existing setup if you embedded the library into another CMake project. Please refer to the updated install instructions to learn how to embed the library now.
- The source file
djinni/jni/djinni_main.cpp
has been removed. With djinni-generator v1.0.0 you are not required to provide your ownJNI_OnLoad
implementation any more. For more details please consult the updated documentation on our JNI approach.
v0.1.0
This release requires djinni-generator v0.5.0 or newer.
Added
- C# support from the iit-reacts/djinni
iit
branch (#25):- C# support in Djinni is experimental, but ready to try out.
- The C# bridge uses C++/CLI and is only supported on Windows.
- Python support from the dropbox/djinni
python
branch (#24):- Python support in Djinni is experimental, but ready to try out. It can generate code for bridging C++ with Python 3.
- Known limitations of the generator:
- External types defined in YAML are not yet supported.
- Use of non-nullable pointers is not yet supported.
- Improved QA:
Changed
- Wether or not
djinni_main.cpp
is added for JNI builds was determined by the value ofDJINNI_STATIC_LIB
. This was not flexible enough. Now the new optionDJINNI_JNI_WITH_MAIN
controls wether the file is included. (#21)
Fixed
Initial release
This is the initial release.
It contains the original djinni code from the original repo but the cmake was updated so that a install target step exists
Initial alpha release
This is an alpha release, for being able to build packages from a tag and staring building on the current state as a base