Update build.sh, CMakeLists.txt, and sources.txt
This commit is contained in:
parent
4d75e95364
commit
c80db14499
83
build.sh
83
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
|
||||
|
||||
|
@ -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}
|
||||
)
|
||||
|
@ -1,3 +1,3 @@
|
||||
../../../java/it/tdlight/tdnatives/NativeClient.java
|
||||
../../../java/it/tdlight/tdnatives/NativeLog.java
|
||||
../../../java/it/tdlight/tdnatives/TdApi.java
|
||||
../src/tdnatives-java/it/tdlight/tdnatives/NativeClient.java
|
||||
../src/tdnatives-java/it/tdlight/tdnatives/NativeLog.java
|
||||
../src/tdnatives-java/it/tdlight/tdnatives/TdApi.java
|
||||
|
Loading…
Reference in New Issue
Block a user