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
|
#!/bin/bash -e
|
||||||
#rm -r jtdlib/jnibuild
|
|
||||||
#rm -r jtdlib/build
|
|
||||||
|
|
||||||
rm ../java/it/tdlight/tdlight/natives/TdApi.java || true
|
# ====== Variables
|
||||||
rm ../java/it/tdlight/tdlight/natives/new_TdApi.java || true
|
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
|
# ====== Print variables
|
||||||
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_SRC_DIR=${TD_SRC_DIR}"
|
||||||
echo "TD_BIN_DIR=${TD_BIN_DIR}"
|
echo "TD_BIN_DIR=${TD_BIN_DIR}"
|
||||||
echo "JAVA_SRC_DIR=${JAVA_SRC_DIR}"
|
echo "JAVA_SRC_DIR=${JAVA_SRC_DIR}"
|
||||||
cd jnibuild
|
|
||||||
#export OPENSSL_ROOT_DIR=/snap/gitkraken/143/lib/x86_64-linux-gnu
|
# ====== Cleanup
|
||||||
#export JAVA_HOME=/usr/lib/jvm/java-1.13.0-openjdk-amd64
|
rm $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java || true
|
||||||
#export JAVA_INCLUDE_PATH=/usr/lib/jvm/java-1.13.0-openjdk-amd64/include/
|
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 -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 ../../../../../
|
# ====== Build TdNatives
|
||||||
#mvn install -X
|
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
|
||||||
cd src/main/jni/jtdlib/build
|
cmake --build $TDNATIVES_CPP_BUILD_DIR --target install -- -j4
|
||||||
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
|
|
||||||
|
|
||||||
|
# ====== Patch generated java code
|
||||||
echo "Compilation done. Patching TdApi.java"
|
echo "Compilation done. Patching TdApi.java"
|
||||||
|
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
|
||||||
python3 tdlib-serializer ../java/it/ernytech/tdlib/TdApi.java ../java/it/ernytech/tdlib/new_TdApi.java tdlib-serializer/headers.txt
|
rm $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java
|
||||||
rm ../java/it/ernytech/tdlib/TdApi.java
|
unexpand --tabs=2 $JAVA_SRC_DIR/it/tdlight/tdnatives/new_TdApi.java > $JAVA_SRC_DIR/it/tdlight/tdnatives/TdApi.java
|
||||||
unexpand --tabs=2 ../java/it/ernytech/tdlib/new_TdApi.java > ../java/it/ernytech/tdlib/TdApi.java
|
rm $JAVA_SRC_DIR/it/tdlight/tdnatives/new_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
|
|
||||||
|
|
||||||
|
@ -30,10 +30,10 @@ find_program(PHP_EXECUTABLE php)
|
|||||||
|
|
||||||
set(TD_API_JAVA_PACKAGE "it/tdlight/tdnatives")
|
set(TD_API_JAVA_PACKAGE "it/tdlight/tdnatives")
|
||||||
set(TD_API_JAVA_PATH ${JAVA_SRC_DIR})
|
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_TLO_PATH ${TD_BIN_DIR}/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(TD_API_TL_PATH ${TD_BIN_DIR}/bin/td/generate/scheme/td_api.tl)
|
||||||
set(JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/td/bin/td/generate/JavadocTlDocumentationGenerator.php)
|
set(JAVADOC_TL_DOCUMENTATION_GENERATOR_PATH ${TD_BIN_DIR}/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(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)
|
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)
|
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()
|
endif()
|
||||||
@ -41,19 +41,19 @@ endif()
|
|||||||
add_custom_target(td_generate_java_api
|
add_custom_target(td_generate_java_api
|
||||||
COMMAND ${GENERATE_JAVA_API_CMD}
|
COMMAND ${GENERATE_JAVA_API_CMD}
|
||||||
COMMENT "Generating Java TDLib API source files"
|
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})
|
file(MAKE_DIRECTORY ${JAVA_OUTPUT_DIRECTORY})
|
||||||
add_custom_target(build_java
|
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"
|
COMMENT "Building Java code"
|
||||||
DEPENDS td_generate_java_api
|
DEPENDS td_generate_java_api
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(generate_javadoc
|
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}
|
WORKING_DIRECTORY ${TD_API_JAVA_PATH}
|
||||||
COMMENT "Generating Javadoc documentation"
|
COMMENT "Generating Javadoc documentation"
|
||||||
DEPENDS td_generate_java_api
|
DEPENDS td_generate_java_api
|
||||||
@ -105,6 +105,6 @@ endif()
|
|||||||
add_dependencies(tdjni td_generate_java_api build_java generate_javadoc)
|
add_dependencies(tdjni td_generate_java_api build_java generate_javadoc)
|
||||||
|
|
||||||
install(TARGETS tdjni
|
install(TARGETS tdjni
|
||||||
LIBRARY DESTINATION bin
|
LIBRARY DESTINATION ${TDNATIVES_BIN_DIR}
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION ${TDNATIVES_BIN_DIR}
|
||||||
)
|
)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
../../../java/it/tdlight/tdnatives/NativeClient.java
|
../src/tdnatives-java/it/tdlight/tdnatives/NativeClient.java
|
||||||
../../../java/it/tdlight/tdnatives/NativeLog.java
|
../src/tdnatives-java/it/tdlight/tdnatives/NativeLog.java
|
||||||
../../../java/it/tdlight/tdnatives/TdApi.java
|
../src/tdnatives-java/it/tdlight/tdnatives/TdApi.java
|
||||||
|
Loading…
Reference in New Issue
Block a user