Skip to content

Releases: cross-language-cpp/djinni-support-lib

v1.2.1

04 May 15:43
92ae012
Compare
Choose a tag to compare

Maintenance Release

Thanks to @a4z, @dyp and @FanglinIfolor for contributing fixes to this release!

Fixed

  • Using optional<binary> does now work for C++/CLI. (180d9e7)
  • Fixed compilation under GCC 11.2. (ac0e9f4)
  • Test execution has been fixed for newer XCode versions. (a109de5)

v1.2.0

26 Sep 06:10
0a201f2
Compare
Choose a tag to compare

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 option JNI_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

07 Jul 08:20
@a4z a4z
16d09e7
Compare
Choose a tag to compare

Added

  • New CMake option JNI_CPP_THREAD_ATTACH that enables the existing EXPERIMENTAL_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 building DJINNI_WITH_CPPCLI together with DJINNI_WITH_OBJC, DJINNI_WITH_JNI or DJINNI_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

08 May 13:30
707d11e
Compare
Choose a tag to compare

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 of JNI_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 or DJINNI_LIBRARY_TYPE=SHARED
    • For DJINNI_WITH_JNI: Code is always built with -fPIC.
    • Configuring tests can be disabled with BUILD_TESTING=OFF or DJINNI_BUILD_TESTING=OFF

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 own JNI_OnLoad implementation any more. For more details please consult the updated documentation on our JNI approach.

v0.1.0

25 Apr 19:31
35fdcac
Compare
Choose a tag to compare

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:
    • The test-suite from the dropbox repository has been migrated. It is now automatically executed on each commit. (#17)
    • The correct installation of the library is ensured with automated tests. (#11)

Changed

  • Wether or not djinni_main.cpp is added for JNI builds was determined by the value of DJINNI_STATIC_LIB. This was not flexible enough. Now the new option DJINNI_JNI_WITH_MAIN controls wether the file is included. (#21)

Fixed

  • The library is now correcty installed if built as shared library on Windows (#18)
  • A sign-compare warning from clang in jni/Marshal.hpp has been resolved (#13)

Initial release

17 Dec 12:26
@a4z a4z
e9868bd
Compare
Choose a tag to compare

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

04 Nov 09:10
@a4z a4z
e7557d0
Compare
Choose a tag to compare
Initial alpha release Pre-release
Pre-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