From a44b955d90dcb1fab7e5cc81b4d54fd6cd8ccf9d Mon Sep 17 00:00:00 2001 From: heck Date: Mon, 25 May 2020 16:37:48 +0200 Subject: [PATCH] Merge in rev 712:57e23cbed5e3 --- Makefile.conf | 19 +++----- src/basic_api.cc | 47 +++++++++++++------ src/foundation_pEp_jniadapter__Blob.cc | 2 + src/gen_cpp_Message.ysl2 | 1 + src/gen_java_Engine.ysl2 | 10 ++-- src/jniutils.cc | 1 + src/jniutils.hh | 1 + src/pEp.yml2 | 5 ++ .../foundation/pEp/jniadapter/test/Makefile | 3 ++ 9 files changed, 57 insertions(+), 32 deletions(-) diff --git a/Makefile.conf b/Makefile.conf index 2624aea..77601f1 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -16,23 +16,16 @@ BUILD_FOR:=$(shell uname) ######### C and C++ ######### -CXXFLAGS+=-g -O0 +CXXFLAGS+=-g -O0 -std=c++11 LDFLAGS+=-shared $(ENGINE_LIB) $(AD_LIB) LDLIBS=-lstdc++ -lpEpEngine -lpEpAdapter - -######### C++ ######### -ifeq ($(BUILD_FOR),Linux) - CXX=g++ -std=c++11 -else ifeq ($(BUILD_FOR),Darwin) - CXX=clang -std=c++11 -endif - -ifeq ($(BUILD_FOR),Linux) - CXXFLAGS+=-fdiagnostics-color=always -fpermissive -fPIC -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(AD_INC) $(ENGINE_INC) -else ifeq ($(BUILD_FOR),Darwin) - CXXFLAGS+=-fcolor-diagnostics -fpermissive -fPIC -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin $(AD_INC) $(ENGINE_INC) +CXXFLAGS+=-fpermissive -fPIC -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(shell uname | tr A-Z a-z) $(AD_INC) $(ENGINE_INC) +ifneq (,$(findstring g++,$(CXX))) + CXXFLAGS+=-fdiagnostics-color=always +else ifneq (,$(findstring clang,$(CXX))) + CXXFLAGS+=-fcolor-diagnostics endif # DEV ENV PATHS & CFG diff --git a/src/basic_api.cc b/src/basic_api.cc index a6f4e41..43273f9 100644 --- a/src/basic_api.cc +++ b/src/basic_api.cc @@ -14,7 +14,7 @@ extern "C" { using namespace pEp::JNIAdapter; using pEp::Adapter::session; -JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_trustwords( +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1trustwords( JNIEnv *env, jobject obj, jobject ident @@ -59,7 +59,7 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_trustwords( return from_string(env, words); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_myself( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1myself( JNIEnv *env, jobject obj, jobject ident @@ -85,7 +85,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_myself( return from_identity(env, _ident); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_updateIdentity( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1updateIdentity( JNIEnv *env, jobject obj, jobject ident @@ -106,7 +106,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_updateIdentity( return from_identity(env, _ident); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_setOwnKey( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1setOwnKey( JNIEnv *env, jobject obj, jobject ident, @@ -135,7 +135,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_setOwnKey( return from_identity(env, _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyMistrusted( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1keyMistrusted( JNIEnv *env, jobject obj, jobject ident @@ -166,7 +166,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyMistrusted( ::key_mistrusted(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyResetTrust( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1keyResetTrust( JNIEnv *env, jobject obj, jobject ident @@ -197,7 +197,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyResetTrust( ::key_reset_trust(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustPersonalKey( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1trustPersonalKey( JNIEnv *env, jobject obj, jobject ident @@ -228,7 +228,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustPersonalKey( ::trust_personal_key(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustOwnKey( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1trustOwnKey( JNIEnv *env, jobject obj, jobject ident @@ -283,7 +283,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_importKey( env->ReleaseByteArrayElements(key, (jbyte *) _key, JNI_ABORT); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1passive_1mode( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1config_1passive_1mode( JNIEnv *env, jobject obj, jboolean enable @@ -301,7 +301,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1passive_1mo } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1unencrypted_1subject( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1config_1unencrypted_1subject( JNIEnv *env, jobject obj, jboolean enable @@ -318,7 +318,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1unencrypted ::config_unencrypted_subject(session(), (bool)enable); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1add( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1add( JNIEnv *env, jobject obj, jbyteArray fpr @@ -347,7 +347,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1add( } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1delete( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1delete( JNIEnv *env, jobject obj, jbyteArray fpr @@ -376,7 +376,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1delete( } -JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1is_1listed( +JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1is_1listed( JNIEnv *env, jobject obj, jbyteArray fpr @@ -407,7 +407,7 @@ JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1is_1 return (jboolean)_listed; } -JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_getCrashdumpLog( +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getCrashdumpLog( JNIEnv *env, jobject obj, jint dummy, @@ -436,5 +436,24 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_getCrashdumpL return from_string(env, _logdata); } +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getUserDirectory( + JNIEnv *env, + jobject obj + ) +{ + pEpLog("called"); + return from_string(env, ::per_user_directory()); +} + +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getMachineDirectory( + JNIEnv *env, + jobject obj + ) +{ + pEpLog("called"); + return from_string(env, ::per_machine_directory()); +} + + } // extern "C" diff --git a/src/foundation_pEp_jniadapter__Blob.cc b/src/foundation_pEp_jniadapter__Blob.cc index e677997..8dfbf43 100644 --- a/src/foundation_pEp_jniadapter__Blob.cc +++ b/src/foundation_pEp_jniadapter__Blob.cc @@ -1,3 +1,5 @@ +#include +#include #include #include #include diff --git a/src/gen_cpp_Message.ysl2 b/src/gen_cpp_Message.ysl2 index ecefa1e..2e587de 100644 --- a/src/gen_cpp_Message.ysl2 +++ b/src/gen_cpp_Message.ysl2 @@ -12,6 +12,7 @@ tstylesheet { document("foundation_pEp_jniadapter_{$jname}.cc", "text") { || + #include #include #include #include "jniutils.hh" diff --git a/src/gen_java_Engine.ysl2 b/src/gen_java_Engine.ysl2 index 51ed0ed..c1faee1 100644 --- a/src/gen_java_Engine.ysl2 +++ b/src/gen_java_Engine.ysl2 @@ -37,20 +37,20 @@ tstylesheet { || otherwise { || - private native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`); + private native «$itype» _«@name»(`apply "parm/*", mode=basic_iparm`); public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) { || apply "parm/*", mode=basic_parm_set; choose { when "@type = 'void'" - |> «@name»(`apply "parm/*", mode=basic_parm_name`); + |> _«@name»(`apply "parm/*", mode=basic_parm_name`); when "@type = 'identity'" - |> return new Identity(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return new Identity(_«@name»(`apply "parm/*", mode=basic_parm_name`)); when "@type = 'bool'" - |> return new Boolean(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return new Boolean(_«@name»(`apply "parm/*", mode=basic_parm_name`)); otherwise - |> return AbstractEngine.toUTF16(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return AbstractEngine.toUTF16(_«@name»(`apply "parm/*", mode=basic_parm_name`)); } || } diff --git a/src/jniutils.cc b/src/jniutils.cc index b3eb89a..da8c6d4 100644 --- a/src/jniutils.cc +++ b/src/jniutils.cc @@ -1,3 +1,4 @@ +#include #include "jniutils.hh" #include #ifndef __LP64__ diff --git a/src/jniutils.hh b/src/jniutils.hh index a9cf9a0..e8ee16b 100644 --- a/src/jniutils.hh +++ b/src/jniutils.hh @@ -1,6 +1,7 @@ #pragma once #include #include +#include #include #include #include diff --git a/src/pEp.yml2 b/src/pEp.yml2 index d1caa14..0a96c3f 100644 --- a/src/pEp.yml2 +++ b/src/pEp.yml2 @@ -250,6 +250,9 @@ namespace pEp { in CipherSuite suite ); + // "basic" methods are generated on the java side, but + // on the C++ side, manually implemented in basic_api.cc + basic string trustwords(identity ident); basic identity myself(identity ident); basic identity updateIdentity(identity ident); @@ -265,6 +268,8 @@ namespace pEp { basic void config_passive_mode(bool enable); basic void config_unencrypted_subject(bool enable); basic string getCrashdumpLog(int maxlines); + basic string getUserDirectory(); + basic string getMachineDirectory(); }; struct message { diff --git a/test/java/foundation/pEp/jniadapter/test/Makefile b/test/java/foundation/pEp/jniadapter/test/Makefile index e9735d9..7066698 100644 --- a/test/java/foundation/pEp/jniadapter/test/Makefile +++ b/test/java/foundation/pEp/jniadapter/test/Makefile @@ -8,6 +8,7 @@ run: compile $(MAKE) -C jni88 run $(MAKE) -C jni91 run $(MAKE) -C jni92 run + $(MAKE) -C jni94 run compile: $(MAKE) -C basic compile @@ -15,6 +16,7 @@ compile: $(MAKE) -C jni88 compile $(MAKE) -C jni91 compile $(MAKE) -C jni92 compile + $(MAKE) -C jni94 compile clean: $(MAKE) -C basic clean @@ -22,6 +24,7 @@ clean: $(MAKE) -C jni88 clean $(MAKE) -C jni91 clean $(MAKE) -C jni92 clean + $(MAKE) -C jni94 clean clean-pep-home: $(MAKE) -C basic clean-pep-home