1 diff --git a/CMakeLists.txt b/CMakeLists.txt
2 index 11767a6..b8eed96 100644
5 @@ -317,12 +317,21 @@ if(WIN32)
6 list(APPEND PULSEVIEW_LINK_LIBS "-lqsvg")
10 +add_library(${PROJECT_NAME} SHARED
11 + ${pulseview_SOURCES}
12 + ${pulseview_HEADERS_MOC}
13 + ${pulseview_FORMS_HEADERS}
14 + ${pulseview_RESOURCES_RCC}
17 add_executable(${PROJECT_NAME}
19 ${pulseview_HEADERS_MOC}
20 ${pulseview_FORMS_HEADERS}
21 ${pulseview_RESOURCES_RCC}
25 target_link_libraries(${PROJECT_NAME} ${PULSEVIEW_LINK_LIBS})
27 diff --git a/main.cpp b/main.cpp
28 index 2c6a59e..79627db 100644
29 --- a/main.cpp 2014-04-26 23:40:24.253187700 +0200
30 +++ b/main.cpp 2014-04-27 00:38:55.378353311 +0200
34 #include <libsigrokdecode/libsigrokdecode.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */
45 +#if defined(ENABLE_DECODE) && defined(ANDROID)
46 +jint JNI_OnLoad(JavaVM *vm, void *reserved)
52 + if (vm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) {
56 + jclass envc = env->FindClass("org/sigrok/androidutils/Environment");
57 + jmethodID getEnv = env->GetStaticMethodID(envc, "getEnvironment",
58 + "()[Ljava/lang/String;");
60 + (jobjectArray)env->CallStaticObjectMethod(envc, getEnv);
61 + jsize i, envn = env->GetArrayLength(envs);
62 + for (i=0; i<envn; i+=2) {
63 + jstring key = (jstring)env->GetObjectArrayElement(envs, i);
64 + jstring value = (jstring)env->GetObjectArrayElement(envs, i+1);
65 + const char *utfkey = env->GetStringUTFChars(key, 0);
66 + const char *utfvalue = env->GetStringUTFChars(value, 0);
67 + setenv(utfkey, utfvalue, 1);
68 + env->ReleaseStringUTFChars(value, utfvalue);
69 + env->ReleaseStringUTFChars(key, utfkey);
70 + env->DeleteLocalRef(value);
71 + env->DeleteLocalRef(key);
73 + env->DeleteLocalRef(envs);
74 + env->DeleteLocalRef(envc);
76 + return JNI_VERSION_1_6;
79 +void JNI_OnUnload(JavaVM *vm, void *reserved)