From dd5829a4fed25fbad766361b87c65076ef596ded Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sat, 1 Jul 2023 02:50:18 +0200 Subject: GlueGen Intro: Add section about its comprehensive runtime library, shorten the JNI_OnLoad section --- README.md | 13 +++++++++++-- doc/GlueGen_Mapping.html | 43 +++++++++++++++++++++++++++++-------------- doc/GlueGen_Mapping.md | 13 +++++++++++-- www/index.html | 17 +++++++++++++++-- 4 files changed, 66 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 25484fb..089ca01 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,16 @@ This project's canonical repositories is hosted on [JogAmp](https://jogamp.org/c generating Java™ and JNI C code offline at compile time and allows using native libraries within your Java™ application. -It reads ANSI C header files +GlueGen also provides a comprehensive [runtime library](https://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/) offering +- Support for multi-arch and java code fat-jar deployment + - Native library including JNI bundle handling and Jar file cache + - Platform architecture information retrieval, ELF parser, alignment etc +- Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc +- Network Uri RFC 2396, connection and resource handler to simplify asset loading +- Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils +- Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more + +GlueGen's compiler reads ANSI C header files and separate configuration files which provide control over many aspects of the glue code generation. GlueGen uses a complete ANSI C parser and an internal representation (IR) capable of representing all @@ -31,7 +40,7 @@ GlueGen also supports [producing an OO-Style API mapping](doc/GlueGen_Mapping.md GlueGen is capable to bind low-level APIs such as the Java™ Native Interface (JNI) and the AWT Native Interface (JAWT) back up to the Java programming language. -Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_(..)` for static libraries via [`LibraryOnLoad LibraryBasename`](doc/GlueGen_Mapping.md#libraryonload-librarybasename-for-jni_onload-), which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by [Java™ callback methods](doc/GlueGen_Mapping.md#java-callback-from-native-c-api-support). +Further, GlueGen supports [generating `JNI_OnLoad*(..)` for dynamic and static libraries](doc/GlueGen_Mapping.md#libraryonload-librarybasename-for-jni_onload-), also resolving off-thread `JNIEnv*` lookup. GlueGen utilizes [JCPP](https://jogamp.org/cgit/jcpp.git/about/), migrated C preprocessor written in Java™. diff --git a/doc/GlueGen_Mapping.html b/doc/GlueGen_Mapping.html index 2bbc07a..e173c01 100644 --- a/doc/GlueGen_Mapping.html +++ b/doc/GlueGen_Mapping.html @@ -501,12 +501,31 @@ Build for function and data-structure declarations, generating Java and JNI C code offline at compile time and allows using native libraries within your Java application.

-

It reads ANSI C header files and separate configuration files which -provide control over many aspects of the glue code generation. GlueGen -uses a complete ANSI C parser and an internal representation (IR) -capable of representing all C types to represent the APIs for which it -generates interfaces. It has the ability to perform significant -transformations on the IR before glue code emission.

+

GlueGen also provides a comprehensive runtime +library offering

+ +

GlueGen's compiler reads ANSI C header files and separate +configuration files which provide control over many aspects of the glue +code generation. GlueGen uses a complete ANSI C parser and an internal +representation (IR) capable of representing all C types to represent the +APIs for which it generates interfaces. It has the ability to perform +significant transformations on the IR before glue code emission.

GlueGen can produce native foreign function bindings to Java™ as well as map native data structures to be fully accessible from Java™ including potential calls to .

GlueGen is capable to bind low-level APIs such as the Java™ Native Interface (JNI) and the AWT Native Interface (JAWT) back up to the Java programming language.

-

Further, GlueGen supports generating JNI_OnLoad(..) for -dynamic and JNI_OnLoad_<LibraryBasename>(..) for -static libraries via LibraryOnLoad LibraryBasename, -which also provides JVMUtil_GetJNIEnv(..) to resolve the -JNIEnv* as used by Java™ callback -methods.

+

Further, GlueGen supports generating +JNI_OnLoad*(..) for dynamic and static libraries, also +resolving off-thread JNIEnv* lookup.

GlueGen utilizes JCPP, migrated C preprocessor written in Java™.

diff --git a/doc/GlueGen_Mapping.md b/doc/GlueGen_Mapping.md index dbc66aa..9a169d7 100644 --- a/doc/GlueGen_Mapping.md +++ b/doc/GlueGen_Mapping.md @@ -19,7 +19,16 @@ table, th, td { generating Java and JNI C code offline at compile time and allows using native libraries within your Java application. -It reads ANSI C header files +GlueGen also provides a comprehensive [runtime library](https://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/) offering +- Support for multi-arch and java code fat-jar deployment + - Native library including JNI bundle handling and Jar file cache + - Platform architecture information retrieval, ELF parser, alignment etc +- Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc +- Network Uri RFC 2396, connection and resource handler to simplify asset loading +- Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils +- Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more + +GlueGen's compiler reads ANSI C header files and separate configuration files which provide control over many aspects of the glue code generation. GlueGen uses a complete ANSI C parser and an internal representation (IR) capable of representing all @@ -40,7 +49,7 @@ GlueGen also supports [producing an OO-Style API mapping](#oo-style-api-interfac GlueGen is capable to bind low-level APIs such as the Java™ Native Interface (JNI) and the AWT Native Interface (JAWT) back up to the Java programming language. -Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_(..)` for static libraries via [`LibraryOnLoad LibraryBasename`](#libraryonload-librarybasename-for-jni_onload-), which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by [Java™ callback methods](#java-callback-from-native-c-api-support). +Further, GlueGen supports [generating `JNI_OnLoad*(..)` for dynamic and static libraries](#libraryonload-librarybasename-for-jni_onload-), also resolving off-thread `JNIEnv*` lookup. GlueGen utilizes [JCPP](https://jogamp.org/cgit/jcpp.git/about/), migrated C preprocessor written in Java™. diff --git a/www/index.html b/www/index.html index 7fcca09..812d3b3 100644 --- a/www/index.html +++ b/www/index.html @@ -46,7 +46,20 @@ and allows using native libraries within your Java™ application.

- It reads ANSI C header files + GlueGen also provides a comprehensive runtime library offering +

    +
  • Support for multi-arch and java code fat-jar deployment
  • +
      +
    • Native library including JNI bundle handling and Jar file cache
    • +
    • Platform architecture information retrieval, ELF parser, alignment etc
    • +
    +
  • Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc
  • +
  • Network Uri RFC 2396, connection and resource handler to simplify asset loading
  • +
  • Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils
  • +
  • Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more
  • +

    +

    + GlueGen's compiler reads ANSI C header files and separate configuration files which provide control over many aspects of the glue code generation. GlueGen uses a complete ANSI C parser and an internal representation (IR) capable of representing all @@ -72,7 +85,7 @@ the AWT Native Interface (JAWT) back up to the Java programming language.

    - Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_{LibraryBasename}(..)` for static libraries via `LibraryOnLoad LibraryBasename`, which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by Java™ callback methods. + Further, GlueGen supports generating `JNI_OnLoad*(..)` for dynamic and static libraries, also resolving off-thread `JNIEnv*` lookup.

    GlueGen utilizes JCPP, migrated C preprocessor written in Java™. -- cgit v1.2.3