ruapu/java/ruapu_binding.c
Justin Fung 5baa49677c
Ruapu Java binding (#82)
* Fix rua on macOS

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>

* Release allocate resource

* Formatting

* feat: package native lib into jar;

Signed-off-by: LinHeLurking <LinHe.Lurking@gmail.com>

* fix: multiple platform gradle build;

Signed-off-by: LinHeLurking <LinHe.Lurking@gmail.com>

* fix: linux build;

Signed-off-by: LinHe <LinHe.Lurking@gmail.com>

* Update command to use windows cmd


---------

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
Signed-off-by: LinHeLurking <LinHe.Lurking@gmail.com>
Signed-off-by: LinHe <LinHe.Lurking@gmail.com>
Co-authored-by: cenkang <cenkang@apical.com.cn>
Co-authored-by: Molly Sophia <mollysophia379@gmail.com>
Co-authored-by: LinHeLurking <LinHe.Lurking@gmail.com>
2024-03-11 22:54:06 +08:00

51 lines
1.3 KiB
C

#include "ruapu_binding.h"
#include <stdio.h>
#define RUAPU_IMPLEMENTATION
#include "ruapu.h"
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_ruapu_Ruapu_init(JNIEnv *env, jclass jcls)
{
ruapu_init();
}
JNIEXPORT jint JNICALL Java_ruapu_Ruapu_supports(JNIEnv *env, jclass jcls, jstring j_isa)
{
const char *isa = (*env)->GetStringUTFChars(env, j_isa, NULL);
int supported = ruapu_supports(isa);
(*env)->ReleaseStringUTFChars(env, j_isa, isa);
return supported;
}
JNIEXPORT jobjectArray JNICALL Java_ruapu_Ruapu_rua(JNIEnv *env, jclass jcls)
{
const char *const *supported = ruapu_rua();
int size = 0U;
jclass jStringcls = (*env)->FindClass(env, "java/lang/String");
while (*supported)
{
supported++;
size++;
}
jobjectArray isa_array = (*env)->NewObjectArray(env, size, jStringcls, NULL);
int total_idx = 0;
supported = ruapu_rua();
while (*supported)
{
jstring str_isa = (*env)->NewStringUTF(env, *supported++);
(*env)->SetObjectArrayElement(env, isa_array, total_idx++, str_isa);
}
return isa_array;
}
#ifdef __cplusplus
}
#endif