From 4e24c7d15917f5040c70d5d35f38eb23c682a2c6 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Wed, 19 Aug 2020 01:01:36 +0200 Subject: [PATCH] Removed resources --- src/main/jni/build.sh | 62 ----------- src/main/jni/jtdlib/CMakeLists.txt | 110 ------------------- src/main/jni/jtdlib/sources.txt | 3 - src/main/jni/jtdlib/td_jni.cpp | 166 ----------------------------- src/main/jni/td | 1 - src/main/jni/tdlib-serializer | 1 - 6 files changed, 343 deletions(-) delete mode 100755 src/main/jni/build.sh delete mode 100644 src/main/jni/jtdlib/CMakeLists.txt delete mode 100644 src/main/jni/jtdlib/sources.txt delete mode 100644 src/main/jni/jtdlib/td_jni.cpp delete mode 160000 src/main/jni/td delete mode 160000 src/main/jni/tdlib-serializer diff --git a/src/main/jni/build.sh b/src/main/jni/build.sh deleted file mode 100755 index ebea1e3..0000000 --- a/src/main/jni/build.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -e -#rm -r jtdlib/jnibuild -#rm -r jtdlib/build - -rm ../java/it/tdlight/tdlight/natives/TdApi.java || true -rm ../java/it/tdlight/tdlight/natives/new_TdApi.java || true - -export TD_SRC_DIR=${PWD}/td -export TD_BIN_DIR=${PWD}/jtdlib/td -export JAVA_SRC_DIR=$(dirname `pwd`)/java -cd jtdlib -mkdir jnibuild || true -mkdir build || true -echo "TD_SRC_DIR=${TD_SRC_DIR}" -echo "TD_BIN_DIR=${TD_BIN_DIR}" -echo "JAVA_SRC_DIR=${JAVA_SRC_DIR}" -cd jnibuild -#export OPENSSL_ROOT_DIR=/snap/gitkraken/143/lib/x86_64-linux-gnu -#export JAVA_HOME=/usr/lib/jvm/java-1.13.0-openjdk-amd64 -#export JAVA_INCLUDE_PATH=/usr/lib/jvm/java-1.13.0-openjdk-amd64/include/ -cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=${TD_BIN_DIR} ${TD_SRC_DIR} -cmake --build . --target install -- -j1 - -cd ../../../../../ -#mvn install -X - -cd src/main/jni/jtdlib/build -cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=${TD_BIN_DIR}/lib/cmake/Td -DJAVA_SRC_DIR=${JAVA_SRC_DIR} -DCMAKE_INSTALL_PREFIX:PATH=.. .. -cmake --build . --target install -- -j1 -cd .. -#rm -r jnibuild -#rm -r build -rm -r td -[ -e ../bin ] && rm -r ../bin -mkdir ../bin -mv docs ../bin -mv bin/libtdjni.so ../bin/tdjni.so -[ -e bin ] && rm -r bin - -cd ../ -cp bin/tdjni.so ../resources/libs/linux/amd64/tdjni.so - -echo "Compilation done. Patching TdApi.java" - -python3 tdlib-serializer ../java/it/ernytech/tdlib/TdApi.java ../java/it/ernytech/tdlib/new_TdApi.java tdlib-serializer/headers.txt -rm ../java/it/ernytech/tdlib/TdApi.java -unexpand --tabs=2 ../java/it/ernytech/tdlib/new_TdApi.java > ../java/it/ernytech/tdlib/TdApi.java -rm ../java/it/ernytech/tdlib/new_TdApi.java -cd ../../../ - -echo "Installing jar utils" - -cd common-utils/ - -mvn clean install -X - -cd ../ - -echo "Installing jar" - -mvn clean install -X - diff --git a/src/main/jni/jtdlib/CMakeLists.txt b/src/main/jni/jtdlib/CMakeLists.txt deleted file mode 100644 index 0c82867..0000000 --- a/src/main/jni/jtdlib/CMakeLists.txt +++ /dev/null @@ -1,110 +0,0 @@ -cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR) - -project(JTDLib VERSION 1.0 LANGUAGES CXX) -set(CMAKE_BUILD_TYPE Release) -set(TD_ENABLE_JNI ON) - -if (POLICY CMP0054) - # do not expand quoted arguments - cmake_policy(SET CMP0054 NEW) -endif() - -find_package(Td REQUIRED) - -if (NOT JNI_FOUND) - set(JAVA_AWT_LIBRARY NotNeeded) - set(JAVA_AWT_INCLUDE_PATH NotNeeded) - find_package(JNI REQUIRED) -endif() -message(STATUS "Found JNI: ${JNI_INCLUDE_DIRS} ${JNI_LIBRARIES}") - -if (NOT Java_FOUND) - find_package(Java 1.6 REQUIRED) -endif() -message(STATUS "Found Java: ${Java_JAVAC_EXECUTABLE} ${Java_JAVADOC_EXECUTABLE}") - -message(STATUS "Java Source Directory: ${JAVA_SRC_DIR}") - -# Generating TdApi.java -find_program(PHP_EXECUTABLE php) - -set(TD_API_JAVA_PACKAGE "it/tdlight/tdnatives") -set(TD_API_JAVA_PATH ${JAVA_SRC_DIR}) -set(TD_API_TLO_PATH ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td/generate/scheme/td_api.tlo) -set(TD_API_TL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td/generate/scheme/td_api.tl) -set(JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td/generate/JavadocTlDocumentationGenerator.php) -set(GENERATE_JAVA_API_CMD ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td_generate_java_api TdApi ${TD_API_TLO_PATH} ${TD_API_JAVA_PATH} ${TD_API_JAVA_PACKAGE}) -if (PHP_EXECUTABLE) - set(GENERATE_JAVA_API_CMD ${GENERATE_JAVA_API_CMD} && ${PHP_EXECUTABLE} ${JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH} ${TD_API_TL_PATH} ${TD_API_JAVA_PATH}/${TD_API_JAVA_PACKAGE}/TdApi.java) -endif() - -add_custom_target(td_generate_java_api - COMMAND ${GENERATE_JAVA_API_CMD} - COMMENT "Generating Java TDLib API source files" - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td_generate_java_api ${TD_API_TLO_PATH} ${TD_API_TL_PATH} ${JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH} -) - -get_filename_component(JAVA_OUTPUT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin REALPATH BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}") -file(MAKE_DIRECTORY ${JAVA_OUTPUT_DIRECTORY}) -add_custom_target(build_java - COMMAND ${Java_JAVAC_EXECUTABLE} -d ${JAVA_OUTPUT_DIRECTORY} @../sources.txt - COMMENT "Building Java code" - DEPENDS td_generate_java_api -) - -add_custom_target(generate_javadoc - COMMAND ${Java_JAVADOC_EXECUTABLE} -d ${JAVA_OUTPUT_DIRECTORY}/../docs it.tdlight.tdnatives - WORKING_DIRECTORY ${TD_API_JAVA_PATH} - COMMENT "Generating Javadoc documentation" - DEPENDS td_generate_java_api -) - -# Building shared library -add_library(tdjni SHARED - td_jni.cpp -) -target_include_directories(tdjni PRIVATE ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) -target_link_libraries(tdjni PRIVATE Td::TdStatic ${JAVA_JVM_LIBRARY}) -target_compile_definitions(tdjni PRIVATE PACKAGE_NAME="${TD_API_JAVA_PACKAGE}") -set_property(TARGET tdjni PROPERTY CXX_STANDARD 14) - -if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(GCC 1) -elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CLANG 1) -elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - set(INTEL 1) -elseif (NOT MSVC) - message(FATAL_ERROR "Compiler isn't supported") -endif() - -include(CheckCXXCompilerFlag) - -if (GCC OR CLANG OR INTEL) - if (WIN32 AND INTEL) - set(STD14_FLAG /Qstd=c++14) - else() - set(STD14_FLAG -std=c++14) - endif() - check_cxx_compiler_flag(${STD14_FLAG} HAVE_STD14) - if (NOT HAVE_STD14) - string(REPLACE "c++14" "c++1y" STD14_FLAG "${STD14_FLAG}") - check_cxx_compiler_flag(${STD14_FLAG} HAVE_STD1Y) - set(HAVE_STD14 ${HAVE_STD1Y}) - endif() - - target_compile_options(tdjni PRIVATE "${STD14_FLAG}") -elseif (MSVC) - set(HAVE_STD14 MSVC_VERSION>=1900) -endif() - -if (NOT HAVE_STD14) - message(FATAL_ERROR "No C++14 support in the compiler. Please upgrade the compiler.") -endif() - -add_dependencies(tdjni td_generate_java_api build_java generate_javadoc) - -install(TARGETS tdjni - LIBRARY DESTINATION bin - RUNTIME DESTINATION bin -) diff --git a/src/main/jni/jtdlib/sources.txt b/src/main/jni/jtdlib/sources.txt deleted file mode 100644 index b0e6431..0000000 --- a/src/main/jni/jtdlib/sources.txt +++ /dev/null @@ -1,3 +0,0 @@ -../../../java/it/tdlight/tdnatives/NativeClient.java -../../../java/it/tdlight/tdnatives/NativeLog.java -../../../java/it/tdlight/tdnatives/TdApi.java \ No newline at end of file diff --git a/src/main/jni/jtdlib/td_jni.cpp b/src/main/jni/jtdlib/td_jni.cpp deleted file mode 100644 index c2b7233..0000000 --- a/src/main/jni/jtdlib/td_jni.cpp +++ /dev/null @@ -1,166 +0,0 @@ - -// -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -#include -#include -#include - -#include - -#include -#include -#include -#include - -namespace td_jni { - -static td::td_api::object_ptr fetch_function(JNIEnv *env, jobject function) { - td::jni::reset_parse_error(); - auto result = td::td_api::Function::fetch(env, function); - if (td::jni::have_parse_error()) { - std::abort(); - } - return result; -} - -static td::Client *get_client(jlong client_id) { - return reinterpret_cast(static_cast(client_id)); -} - -static jlong Client_createNativeClient(JNIEnv *env, jclass clazz) { - return static_cast(reinterpret_cast(new td::Client())); -} - -static void Client_nativeClientSend(JNIEnv *env, jclass clazz, jlong client_id, jlong id, jobject function) { - get_client(client_id)->send({static_cast(id), fetch_function(env, function)}); -} - -static jint Client_nativeClientReceive(JNIEnv *env, jclass clazz, jlong client_id, jlongArray ids, jobjectArray events, - jdouble timeout) { - auto client = get_client(client_id); - jsize events_size = env->GetArrayLength(ids); // ids and events size must be of equal size - if (events_size == 0) { - return 0; - } - jsize result_size = 0; - - auto response = client->receive(timeout); - while (response.object) { - jlong result_id = static_cast(response.id); - env->SetLongArrayRegion(ids, result_size, 1, &result_id); - - jobject object; - response.object->store(env, object); - env->SetObjectArrayElement(events, result_size, object); - env->DeleteLocalRef(object); - - result_size++; - if (result_size == events_size) { - break; - } - - response = client->receive(0); - } - return result_size; -} - -static jobject Client_nativeClientExecute(JNIEnv *env, jclass clazz, jobject function) { - jobject result; - td::Client::execute({0, fetch_function(env, function)}).object->store(env, result); - return result; -} - -static void Client_destroyNativeClient(JNIEnv *env, jclass clazz, jlong client_id) { - delete get_client(client_id); -} - -static void Log_setVerbosityLevel(JNIEnv *env, jclass clazz, jint new_log_verbosity_level) { - td::Log::set_verbosity_level(static_cast(new_log_verbosity_level)); -} - -static jboolean Log_setFilePath(JNIEnv *env, jclass clazz, jstring file_path) { - return td::Log::set_file_path(td::jni::from_jstring(env, file_path)) ? JNI_TRUE : JNI_FALSE; -} - -static void Log_setMaxFileSize(JNIEnv *env, jclass clazz, jlong max_file_size) { - td::Log::set_max_file_size(max_file_size); -} - -static jstring Object_toString(JNIEnv *env, jobject object) { - return td::jni::to_jstring(env, to_string(td::td_api::Object::fetch(env, object))); -} - -static jstring Function_toString(JNIEnv *env, jobject object) { - return td::jni::to_jstring(env, to_string(td::td_api::Function::fetch(env, object))); -} - -static constexpr jint JAVA_VERSION = JNI_VERSION_1_6; -static JavaVM *java_vm; -static jclass log_class; - -static void on_fatal_error(const char *error_message) { - auto env = td::jni::get_jni_env(java_vm, JAVA_VERSION); - jmethodID on_fatal_error_method = env->GetStaticMethodID(log_class, "onFatalError", "(Ljava/lang/String;)V"); - if (env && on_fatal_error_method) { - jstring error_str = td::jni::to_jstring(env.get(), error_message); - env->CallStaticVoidMethod(log_class, on_fatal_error_method, error_str); - if (error_str) { - env->DeleteLocalRef(error_str); - } - } -} - -static jint register_native(JavaVM *vm) { - JNIEnv *env; - if (vm->GetEnv(reinterpret_cast(&env), JAVA_VERSION) != JNI_OK) { - return -1; - } - - java_vm = vm; - - auto register_method = [env](jclass clazz, std::string name, std::string signature, auto function_ptr) { - td::jni::register_native_method(env, clazz, std::move(name), std::move(signature), - reinterpret_cast(function_ptr)); - }; - - auto client_class = td::jni::get_jclass(env, PACKAGE_NAME "/Client"); - log_class = td::jni::get_jclass(env, PACKAGE_NAME "/Log"); - auto object_class = td::jni::get_jclass(env, PACKAGE_NAME "/TdApi$Object"); - auto function_class = td::jni::get_jclass(env, PACKAGE_NAME "/TdApi$Function"); - -#define TD_OBJECT "L" PACKAGE_NAME "/TdApi$Object;" -#define TD_FUNCTION "L" PACKAGE_NAME "/TdApi$Function;" - register_method(client_class, "createNativeClient", "()J", Client_createNativeClient); - register_method(client_class, "nativeClientSend", "(JJ" TD_FUNCTION ")V", Client_nativeClientSend); - register_method(client_class, "nativeClientReceive", "(J[J[" TD_OBJECT "D)I", Client_nativeClientReceive); - register_method(client_class, "nativeClientExecute", "(" TD_FUNCTION ")" TD_OBJECT, Client_nativeClientExecute); - register_method(client_class, "destroyNativeClient", "(J)V", Client_destroyNativeClient); - - register_method(log_class, "setVerbosityLevel", "(I)V", Log_setVerbosityLevel); - register_method(log_class, "setFilePath", "(Ljava/lang/String;)Z", Log_setFilePath); - register_method(log_class, "setMaxFileSize", "(J)V", Log_setMaxFileSize); - - register_method(object_class, "toString", "()Ljava/lang/String;", Object_toString); - - register_method(function_class, "toString", "()Ljava/lang/String;", Function_toString); -#undef TD_FUNCTION -#undef TD_OBJECT - - td::jni::init_vars(env, PACKAGE_NAME); - td::td_api::Object::init_jni_vars(env, PACKAGE_NAME); - td::td_api::Function::init_jni_vars(env, PACKAGE_NAME); - td::Log::set_fatal_error_callback(on_fatal_error); - - return JAVA_VERSION; -} - -} // namespace td_jni - -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { - static jint jni_version = td_jni::register_native(vm); // call_once - return jni_version; -} diff --git a/src/main/jni/td b/src/main/jni/td deleted file mode 160000 index b93239f..0000000 --- a/src/main/jni/td +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b93239f6d4315e9823076390d5e16db1379e9058 diff --git a/src/main/jni/tdlib-serializer b/src/main/jni/tdlib-serializer deleted file mode 160000 index 57bf307..0000000 --- a/src/main/jni/tdlib-serializer +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 57bf30757952daafcd28352e38fda21e260ce664