From c80db14499f334851a4674386a4ac764ae18720e Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Wed, 19 Aug 2020 00:10:22 +0200 Subject: [PATCH] Update build.sh, CMakeLists.txt, and sources.txt --- build.sh | 83 ++++++++++++-------------------- src/tdnatives-cpp/CMakeLists.txt | 20 ++++---- src/tdnatives-cpp/sources.txt | 6 +-- 3 files changed, 45 insertions(+), 64 deletions(-) diff --git a/build.sh b/build.sh index ebea1e3..9ee3eb8 100755 --- a/build.sh +++ b/build.sh @@ -1,62 +1,43 @@ #!/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 +# ====== Variables +export TD_SRC_DIR=${PWD}/dependencies/tdlight +export TD_BIN_DIR=${PWD}/bin-td +export TDNATIVES_BIN_DIR=${PWD}/bin-tdnatives +export TDNATIVES_CPP_SRC_DIR=${PWD}/src/tdnatives-cpp +export TDNATIVES_DOCS_BIN_DIR=${PWD}/bin-docs +export TD_BUILD_DIR=${PWD}/build-td +export TDNATIVES_CPP_BUILD_DIR=${PWD}/build-tdnatives +export JAVA_SRC_DIR=${PWD}/src/tdnatives-java +export TDLIB_SERIALIZER_DIR=${PWD}/dependencies/tdlib-serializer -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 +# ====== Print variables 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/ + +# ====== Cleanup +rm $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java || true +rm $JAVA_SRC_DIR/it/tdlight/tdnatives/new_TdApi.java || true + +# ====== Environment setup +mkdir $TD_BUILD_DIR || true +mkdir $TDNATIVES_CPP_BUILD_DIR || true + +# ====== Build Td +cd $TD_BUILD_DIR cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=${TD_BIN_DIR} ${TD_SRC_DIR} -cmake --build . --target install -- -j1 +cmake --build $TD_BUILD_DIR --target install -- -j4 -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 +# ====== Build TdNatives +cd $TDNATIVES_CPP_BUILD_DIR +cmake -DCMAKE_BUILD_TYPE=Release -DTD_BIN_DIR=${TD_BIN_DIR} -DTDNATIVES_BIN_DIR=${TDNATIVES_BIN_DIR} -DTDNATIVES_DOCS_BIN_DIR=${TDNATIVES_DOCS_BIN_DIR} -DTd_DIR=${TD_BIN_DIR}/lib/cmake/Td -DJAVA_SRC_DIR=${JAVA_SRC_DIR} -DTDNATIVES_CPP_SRC_DIR:PATH=$TDNATIVES_CPP_SRC_DIR $TDNATIVES_CPP_SRC_DIR +cmake --build $TDNATIVES_CPP_BUILD_DIR --target install -- -j4 +# ====== Patch generated java code 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 +python3 $TDLIB_SERIALIZER_DIR $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java $JAVA_SRC_DIR/it/tdlight/tdnatives/new_TdApi.java $TDLIB_SERIALIZER_DIR/headers.txt +rm $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java +unexpand --tabs=2 $JAVA_SRC_DIR/it/tdlight/tdnatives/new_TdApi.java > $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java +rm $JAVA_SRC_DIR/it/tdlight/tdnatives/new_TdApi.java diff --git a/src/tdnatives-cpp/CMakeLists.txt b/src/tdnatives-cpp/CMakeLists.txt index 0c82867..dd9066f 100644 --- a/src/tdnatives-cpp/CMakeLists.txt +++ b/src/tdnatives-cpp/CMakeLists.txt @@ -30,10 +30,10 @@ 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}) +set(TD_API_TLO_PATH ${TD_BIN_DIR}/bin/td/generate/scheme/td_api.tlo) +set(TD_API_TL_PATH ${TD_BIN_DIR}/bin/td/generate/scheme/td_api.tl) +set(JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH ${TD_BIN_DIR}/bin/td/generate/JavadocTlDocumentationGenerator.php) +set(GENERATE_JAVA_API_CMD ${TD_BIN_DIR}/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() @@ -41,19 +41,19 @@ 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} + DEPENDS ${TD_BIN_DIR}/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}") +get_filename_component(JAVA_OUTPUT_DIRECTORY ${TDNATIVES_BIN_DIR}/java-classes 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 + COMMAND ${Java_JAVAC_EXECUTABLE} -d ${JAVA_OUTPUT_DIRECTORY} @${TDNATIVES_CPP_SRC_DIR}/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 + COMMAND ${Java_JAVADOC_EXECUTABLE} -d ${TDNATIVES_DOCS_BIN_DIR} it.tdlight.tdnatives WORKING_DIRECTORY ${TD_API_JAVA_PATH} COMMENT "Generating Javadoc documentation" DEPENDS td_generate_java_api @@ -105,6 +105,6 @@ endif() add_dependencies(tdjni td_generate_java_api build_java generate_javadoc) install(TARGETS tdjni - LIBRARY DESTINATION bin - RUNTIME DESTINATION bin + LIBRARY DESTINATION ${TDNATIVES_BIN_DIR} + RUNTIME DESTINATION ${TDNATIVES_BIN_DIR} ) diff --git a/src/tdnatives-cpp/sources.txt b/src/tdnatives-cpp/sources.txt index b0e6431..bc8948c 100644 --- a/src/tdnatives-cpp/sources.txt +++ b/src/tdnatives-cpp/sources.txt @@ -1,3 +1,3 @@ -../../../java/it/tdlight/tdnatives/NativeClient.java -../../../java/it/tdlight/tdnatives/NativeLog.java -../../../java/it/tdlight/tdnatives/TdApi.java \ No newline at end of file +../src/tdnatives-java/it/tdlight/tdnatives/NativeClient.java +../src/tdnatives-java/it/tdlight/tdnatives/NativeLog.java +../src/tdnatives-java/it/tdlight/tdnatives/TdApi.java