moving android client build to be part of aFreeRDP.apk gradle build
This commit is contained in:
parent
037084abd5
commit
be07eb6f35
@ -1,54 +0,0 @@
|
||||
# FreeRDP: A Remote Desktop Protocol Implementation
|
||||
# Android Client
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
# Copyright 2013 Bernhard Miklautz <bernhard.miklautz@thincast.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(MODULE_NAME "freerdp-android")
|
||||
set(MODULE_PREFIX "FREERDP_CLIENT_ANDROID")
|
||||
|
||||
include_directories(.)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-pointer-sign")
|
||||
endif()
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
android_event.c
|
||||
android_event.h
|
||||
android_freerdp.c
|
||||
android_freerdp.h
|
||||
android_jni_utils.c
|
||||
android_jni_utils.h
|
||||
android_jni_callback.c
|
||||
android_jni_callback.h)
|
||||
|
||||
if(WITH_CLIENT_CHANNELS)
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS}
|
||||
android_cliprdr.c
|
||||
android_cliprdr.h)
|
||||
endif()
|
||||
|
||||
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr freerdp freerdp-client)
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} dl)
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} jnigraphics)
|
||||
|
||||
#set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
|
||||
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries EXPORT AndroidTargets)
|
@ -53,7 +53,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.0.4'
|
||||
classpath 'com.android.tools.build:gradle:7.1.2'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,10 +4,32 @@ android {
|
||||
compileSdkVersion = rootProject.ext.compileApi
|
||||
buildToolsVersion = rootProject.ext.toolsVersion
|
||||
|
||||
packagingOptions {
|
||||
pickFirst 'lib/arm64-v8a/libfreerdp3.so'
|
||||
pickFirst 'lib/armeabi-v7a/libfreerdp3.so'
|
||||
pickFirst 'lib/x86/libfreerdp3.so'
|
||||
pickFirst 'lib/x86_64/libfreerdp3.so'
|
||||
|
||||
pickFirst 'lib/arm64-v8a/libfreerdp-client3.so'
|
||||
pickFirst 'lib/armeabi-v7a/libfreerdp-client3.so'
|
||||
pickFirst 'lib/x86/libfreerdp-client3.so'
|
||||
pickFirst 'lib/x86_64/libfreerdp-client3.so'
|
||||
|
||||
pickFirst 'lib/arm64-v8a/libwinpr3.so'
|
||||
pickFirst 'lib/armeabi-v7a/libwinpr3.so'
|
||||
pickFirst 'lib/x86/libwinpr3.so'
|
||||
pickFirst 'lib/x86_64/libwinpr3.so'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.minApi
|
||||
targetSdkVersion rootProject.ext.targetApi
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
arguments "-DWITH_CLIENT_CHANNELS=ON"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@ -25,6 +47,12 @@ android {
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
ndkVersion '23.1.7779620'
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
path file('src/main/cpp/CMakeLists.txt')
|
||||
version '3.18.1'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -0,0 +1,80 @@
|
||||
# FreeRDP: A Remote Desktop Protocol Implementation
|
||||
# Android Client
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
# Copyright 2013 Bernhard Miklautz <bernhard.miklautz@thincast.com>
|
||||
# Copyright 2022 Ely Ronnen <elyronnen@gmail.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
cmake_minimum_required(VERSION 3.4)
|
||||
|
||||
project("freerdp-android")
|
||||
|
||||
set(MODULE_NAME "freerdp-android")
|
||||
set(MODULE_PREFIX "FREERDP_CLIENT_ANDROID")
|
||||
|
||||
set(FREERDP_IMPORT_DIR_RELATIVE ../jniLibs/${CMAKE_ANDROID_ARCH_ABI})
|
||||
get_filename_component(FREERDP_IMPORT_DIR ${FREERDP_IMPORT_DIR_RELATIVE} ABSOLUTE)
|
||||
|
||||
include_directories(
|
||||
${FREERDP_IMPORT_DIR}/include/freerdp3
|
||||
${FREERDP_IMPORT_DIR}/include/winpr3
|
||||
${FREERDP_IMPORT_DIR}/include/openssl
|
||||
)
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
android_event.c
|
||||
android_event.h
|
||||
android_freerdp.c
|
||||
android_freerdp.h
|
||||
android_jni_utils.c
|
||||
android_jni_utils.h
|
||||
android_jni_callback.c
|
||||
android_jni_callback.h)
|
||||
|
||||
if(WITH_CLIENT_CHANNELS)
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS}
|
||||
android_cliprdr.c
|
||||
android_cliprdr.h)
|
||||
endif()
|
||||
|
||||
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
|
||||
|
||||
add_library(freerdp3-lib SHARED IMPORTED)
|
||||
set_property(TARGET freerdp3-lib PROPERTY IMPORTED_LOCATION ${FREERDP_IMPORT_DIR}/libfreerdp3.so)
|
||||
|
||||
add_library(freerdp-client3-lib SHARED IMPORTED)
|
||||
set_property(TARGET freerdp-client3-lib PROPERTY IMPORTED_LOCATION ${FREERDP_IMPORT_DIR}/libfreerdp-client3.so)
|
||||
|
||||
add_library(winpr3-lib SHARED IMPORTED)
|
||||
set_property(TARGET winpr3-lib PROPERTY IMPORTED_LOCATION ${FREERDP_IMPORT_DIR}/libwinpr3.so)
|
||||
|
||||
find_library(log-lib log)
|
||||
find_library(dl-lib dl)
|
||||
find_library(jnigraphics-lib jnigraphics)
|
||||
|
||||
# Specifies libraries CMake should link to your target library. You
|
||||
# can link multiple libraries, such as libraries you define in this
|
||||
# build script, prebuilt third-party libraries, or system libraries.
|
||||
|
||||
target_link_libraries(
|
||||
${MODULE_NAME}
|
||||
|
||||
freerdp3-lib
|
||||
freerdp-client3-lib
|
||||
winpr3-lib
|
||||
|
||||
${log-lib}
|
||||
${dl-lib}
|
||||
${jnigraphics-lib} )
|
@ -571,7 +571,8 @@ static int RdpClientEntry(RDP_CLIENT_ENTRY_POINTS* pEntryPoints)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static jlong JNICALL jni_freerdp_new(JNIEnv* env, jclass cls, jobject context)
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1new(JNIEnv* env, jclass cls, jobject context)
|
||||
{
|
||||
jclass contextClass;
|
||||
jclass fileClass;
|
||||
@ -663,7 +664,8 @@ static jlong JNICALL jni_freerdp_new(JNIEnv* env, jclass cls, jobject context)
|
||||
return (jlong)ctx->instance;
|
||||
}
|
||||
|
||||
static void JNICALL jni_freerdp_free(JNIEnv* env, jclass cls, jlong instance)
|
||||
JNIEXPORT void JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1free(JNIEnv* env, jclass cls, jlong instance)
|
||||
{
|
||||
freerdp* inst = (freerdp*)instance;
|
||||
|
||||
@ -675,7 +677,8 @@ static void JNICALL jni_freerdp_free(JNIEnv* env, jclass cls, jlong instance)
|
||||
#endif
|
||||
}
|
||||
|
||||
static jstring JNICALL jni_freerdp_get_last_error_string(JNIEnv* env, jclass cls, jlong instance)
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1get_1last_1error_1string(JNIEnv* env, jclass cls, jlong instance)
|
||||
{
|
||||
freerdp* inst = (freerdp*)instance;
|
||||
|
||||
@ -686,7 +689,8 @@ static jstring JNICALL jni_freerdp_get_last_error_string(JNIEnv* env, jclass cls
|
||||
env, freerdp_get_last_error_string(freerdp_get_last_error(inst->context)));
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_parse_arguments(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1parse_1arguments(JNIEnv* env, jclass cls, jlong instance,
|
||||
jobjectArray arguments)
|
||||
{
|
||||
freerdp* inst = (freerdp*)instance;
|
||||
@ -721,7 +725,8 @@ static jboolean JNICALL jni_freerdp_parse_arguments(JNIEnv* env, jclass cls, jlo
|
||||
return (status == 0) ? JNI_TRUE : JNI_FALSE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_connect(JNIEnv* env, jclass cls, jlong instance)
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1connect(JNIEnv* env, jclass cls, jlong instance)
|
||||
{
|
||||
freerdp* inst = (freerdp*)instance;
|
||||
androidContext* ctx;
|
||||
@ -743,7 +748,8 @@ static jboolean JNICALL jni_freerdp_connect(JNIEnv* env, jclass cls, jlong insta
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_disconnect(JNIEnv* env, jclass cls, jlong instance)
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1disconnect(JNIEnv* env, jclass cls, jlong instance)
|
||||
{
|
||||
freerdp* inst = (freerdp*)instance;
|
||||
androidContext* ctx;
|
||||
@ -774,7 +780,8 @@ static jboolean JNICALL jni_freerdp_disconnect(JNIEnv* env, jclass cls, jlong in
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_update_graphics(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1update_1graphics(JNIEnv* env, jclass cls, jlong instance,
|
||||
jobject bitmap, jint x, jint y, jint width,
|
||||
jint height)
|
||||
{
|
||||
@ -843,7 +850,8 @@ static jboolean JNICALL jni_freerdp_update_graphics(JNIEnv* env, jclass cls, jlo
|
||||
return rc;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_send_key_event(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1send_1key_1event(JNIEnv* env, jclass cls, jlong instance,
|
||||
jint keycode, jboolean down)
|
||||
{
|
||||
DWORD scancode;
|
||||
@ -867,7 +875,8 @@ static jboolean JNICALL jni_freerdp_send_key_event(JNIEnv* env, jclass cls, jlon
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_send_unicodekey_event(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1send_1unicodekey_1event(JNIEnv* env, jclass cls, jlong instance,
|
||||
jint keycode, jboolean down)
|
||||
{
|
||||
ANDROID_EVENT* event;
|
||||
@ -888,7 +897,8 @@ static jboolean JNICALL jni_freerdp_send_unicodekey_event(JNIEnv* env, jclass cl
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_send_cursor_event(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1send_1cursor_1event(JNIEnv* env, jclass cls, jlong instance,
|
||||
jint x, jint y, jint flags)
|
||||
{
|
||||
ANDROID_EVENT* event;
|
||||
@ -908,7 +918,8 @@ static jboolean JNICALL jni_freerdp_send_cursor_event(JNIEnv* env, jclass cls, j
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_send_clipboard_data(JNIEnv* env, jclass cls, jlong instance,
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1send_1clipboard_1data(JNIEnv* env, jclass cls, jlong instance,
|
||||
jstring jdata)
|
||||
{
|
||||
ANDROID_EVENT* event;
|
||||
@ -937,12 +948,14 @@ out_fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static jstring JNICALL jni_freerdp_get_jni_version(JNIEnv* env, jclass cls)
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1get_1jni_1version(JNIEnv* env, jclass cls)
|
||||
{
|
||||
return (*env)->NewStringUTF(env, FREERDP_JNI_VERSION);
|
||||
}
|
||||
|
||||
static jboolean JNICALL jni_freerdp_has_h264(JNIEnv* env, jclass cls)
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1has_1h264(JNIEnv* env, jclass cls)
|
||||
{
|
||||
H264_CONTEXT* ctx = h264_context_new(FALSE);
|
||||
if (!ctx)
|
||||
@ -951,42 +964,25 @@ static jboolean JNICALL jni_freerdp_has_h264(JNIEnv* env, jclass cls)
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
static jstring JNICALL jni_freerdp_get_version(JNIEnv* env, jclass cls)
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1get_1version(JNIEnv* env, jclass cls)
|
||||
{
|
||||
return (*env)->NewStringUTF(env, freerdp_get_version_string());
|
||||
}
|
||||
|
||||
static jstring JNICALL jni_freerdp_get_build_revision(JNIEnv* env, jclass cls)
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1get_1build_1revision(JNIEnv* env, jclass cls)
|
||||
{
|
||||
return (*env)->NewStringUTF(env, freerdp_get_build_revision());
|
||||
}
|
||||
|
||||
static jstring JNICALL jni_freerdp_get_build_config(JNIEnv* env, jclass cls)
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1get_1build_1config(JNIEnv *env,
|
||||
jclass cls)
|
||||
{
|
||||
return (*env)->NewStringUTF(env, freerdp_get_build_config());
|
||||
}
|
||||
|
||||
static JNINativeMethod methods[] = {
|
||||
{ "freerdp_get_jni_version", "()Ljava/lang/String;", &jni_freerdp_get_jni_version },
|
||||
{ "freerdp_get_version", "()Ljava/lang/String;", &jni_freerdp_get_version },
|
||||
{ "freerdp_get_build_revision", "()Ljava/lang/String;", &jni_freerdp_get_build_revision },
|
||||
{ "freerdp_get_build_config", "()Ljava/lang/String;", &jni_freerdp_get_build_config },
|
||||
{ "freerdp_get_last_error_string", "(J)Ljava/lang/String;",
|
||||
&jni_freerdp_get_last_error_string },
|
||||
{ "freerdp_new", "(Landroid/content/Context;)J", &jni_freerdp_new },
|
||||
{ "freerdp_free", "(J)V", &jni_freerdp_free },
|
||||
{ "freerdp_parse_arguments", "(J[Ljava/lang/String;)Z", &jni_freerdp_parse_arguments },
|
||||
{ "freerdp_connect", "(J)Z", &jni_freerdp_connect },
|
||||
{ "freerdp_disconnect", "(J)Z", &jni_freerdp_disconnect },
|
||||
{ "freerdp_update_graphics", "(JLandroid/graphics/Bitmap;IIII)Z",
|
||||
&jni_freerdp_update_graphics },
|
||||
{ "freerdp_send_cursor_event", "(JIII)Z", &jni_freerdp_send_cursor_event },
|
||||
{ "freerdp_send_key_event", "(JIZ)Z", &jni_freerdp_send_key_event },
|
||||
{ "freerdp_send_unicodekey_event", "(JIZ)Z", &jni_freerdp_send_unicodekey_event },
|
||||
{ "freerdp_send_clipboard_data", "(JLjava/lang/String;)Z", &jni_freerdp_send_clipboard_data },
|
||||
{ "freerdp_has_h264", "()Z", &jni_freerdp_has_h264 }
|
||||
};
|
||||
|
||||
static jclass gJavaActivityClass = NULL;
|
||||
|
||||
jint JNI_OnLoad(JavaVM* vm, void* reserved)
|
||||
@ -1017,8 +1013,6 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Register methods with env->RegisterNatives.
|
||||
(*env)->RegisterNatives(env, activityClass, methods, sizeof(methods) / sizeof(methods[0]));
|
||||
/* create global reference for class */
|
||||
gJavaActivityClass = (*env)->NewGlobalRef(env, activityClass);
|
||||
g_JavaVm = vm;
|
||||
@ -1036,8 +1030,6 @@ void JNICALL JNI_OnUnload(JavaVM* vm, void* reserved)
|
||||
return;
|
||||
}
|
||||
|
||||
(*env)->UnregisterNatives(env, gJavaActivityClass);
|
||||
|
||||
if (gJavaActivityClass)
|
||||
(*env)->DeleteGlobalRef(env, gJavaActivityClass);
|
||||
}
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
||||
|
@ -51,8 +51,7 @@ if(FREERDP_VENDOR AND WITH_CLIENT)
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
message(STATUS "Adding Android client")
|
||||
add_subdirectory(Android)
|
||||
message(STATUS "Android client module is built with Android Studio project")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user