diff --git a/.github/workflows/build.yaml b/.github/workflows/natives.yaml similarity index 99% rename from .github/workflows/build.yaml rename to .github/workflows/natives.yaml index cac04f3..925f202 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/natives.yaml @@ -1,4 +1,4 @@ -name: Build TDLib +name: Build TDLib natives on: push: @@ -117,7 +117,7 @@ jobs: run: | echo "REVISION: $REVISION" - source ./scripts/continuous-integration/github-workflows/build.sh + source ./scripts/continuous-integration/github-workflows/build-natives.sh - id: getfilename shell: bash run: echo "::set-output name=file::$(cd generated/target; ls tdli*-natives-*.jar)" diff --git a/.github/workflows/tdapi.yaml b/.github/workflows/tdapi.yaml new file mode 100644 index 0000000..faae60b --- /dev/null +++ b/.github/workflows/tdapi.yaml @@ -0,0 +1,137 @@ +name: Generate TdApi.java + +on: + push: + pull_request: + schedule: + - cron: '0 0 * * 0' # weekly + +jobs: + build: + strategy: + matrix: + include: + - {os: ubuntu-20.04, arch: "linux/amd64", implementation: "tdlight"} + - {os: ubuntu-20.04, arch: "linux/amd64", implementation: "tdlib"} + runs-on: ${{ matrix.os }} + steps: + - name: Install sudo package + if: runner.os == 'Linux' + run: | + (apt-get update || true) 2>/dev/null + (apt-get install -y sudo || true) 2>/dev/null + sudo apt update + - uses: actions/checkout@v2 + with: + submodules: "recursive" + - name: Setup ccache variables + shell: bash + run: | + ARCH=${{ matrix.arch }} + SAFE_ARCH=$(echo $ARCH | sed 's/\//\-/g') + echo "CCACHE_SAFE_ARCH=$SAFE_ARCH" >> $GITHUB_ENV + - name: Cache ccache + if: runner.os == 'Linux' + id: cache-ccache + uses: actions/cache@v2 + with: + path: ~/.ccache + key: ${{ runner.os }}-${{ env.CCACHE_SAFE_ARCH }}-ccache-all + restore-keys: | + ${{ runner.os }}-${{ env.CCACHE_SAFE_ARCH }}-ccache- + - name: Setup Java (Snapshot) + if: github.ref != 'refs/heads/master' + uses: actions/setup-java@v1 + with: + java-version: 11 + server-id: mchv-snapshot-distribution + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + - name: Setup Java (Release) + if: github.ref == 'refs/heads/master' + uses: actions/setup-java@v1 + with: + java-version: 11 + server-id: mchv-release-distribution + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + - name: Setup variables + shell: bash + run: | + # ====== Variables + export REVISION=${{ github.run_number }} + export GH_MATRIX_OS=${{ matrix.os }} + export GH_MATRIX_ARCH=${{ matrix.arch }} + export IMPLEMENTATION_NAME=${{ matrix.implementation }} + + source ./scripts/continuous-integration/github-workflows/setup-variables.sh + + echo "REVISION=$REVISION" >> $GITHUB_ENV + echo "IMPLEMENTATION_NAME=$IMPLEMENTATION_NAME" >> $GITHUB_ENV + echo "TD_SRC_DIR=$TD_SRC_DIR" >> $GITHUB_ENV + echo "TD_BIN_DIR=$TD_BIN_DIR" >> $GITHUB_ENV + echo "TDNATIVES_BIN_DIR=$TDNATIVES_BIN_DIR" >> $GITHUB_ENV + echo "TDNATIVES_CPP_SRC_DIR=$TDNATIVES_CPP_SRC_DIR" >> $GITHUB_ENV + echo "TDNATIVES_DOCS_BIN_DIR=$TDNATIVES_DOCS_BIN_DIR" >> $GITHUB_ENV + echo "TD_BUILD_DIR=$TD_BUILD_DIR" >> $GITHUB_ENV + echo "TDNATIVES_CPP_BUILD_DIR=$TDNATIVES_CPP_BUILD_DIR" >> $GITHUB_ENV + echo "JAVA_SRC_DIR=$JAVA_SRC_DIR" >> $GITHUB_ENV + echo "TDLIB_SERIALIZER_DIR=$TDLIB_SERIALIZER_DIR" >> $GITHUB_ENV + echo "PATH=$PATH" >> $GITHUB_ENV + echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV + echo "JAVA_INCLUDE_PATH=$JAVA_INCLUDE_PATH" >> $GITHUB_ENV + echo "CMAKE_EXTRA_ARGUMENTS=$CMAKE_EXTRA_ARGUMENTS" >> $GITHUB_ENV + echo "VCPKG_DIR=$VCPKG_DIR" >> $GITHUB_ENV + echo "MAVEN_OPTS=$MAVEN_OPTS" >> $GITHUB_ENV + echo "GH_CPU_ARCH=$GH_CPU_ARCH" >> $GITHUB_ENV + echo "CPU_ARCH_JAVA=$CPU_ARCH_JAVA" >> $GITHUB_ENV + echo "CPU_ARCHITECTURE_NAME=$CPU_ARCHITECTURE_NAME" >> $GITHUB_ENV + echo "CPU_CORES_NUM=$CPU_CORES_NUM" >> $GITHUB_ENV + echo "CPU_CORES=$CPU_CORES" >> $GITHUB_ENV + echo "OPERATING_SYSTEM_NAME=$OPERATING_SYSTEM_NAME" >> $GITHUB_ENV + echo "OPERATING_SYSTEM_NAME_SHORT=$OPERATING_SYSTEM_NAME_SHORT" >> $GITHUB_ENV + echo "SRC_TDJNI_LIBNAME=$SRC_TDJNI_LIBNAME" >> $GITHUB_ENV + echo "DEST_TDJNI_LIBNAME=$DEST_TDJNI_LIBNAME" >> $GITHUB_ENV + - name: Install dependencies + shell: bash + run: | + echo "REVISION: $REVISION" + + source ./scripts/continuous-integration/github-workflows/install-dependencies.sh + - name: Build + shell: bash + run: | + echo "REVISION: $REVISION" + + source ./scripts/continuous-integration/github-workflows/build-tdapi.sh + - id: getfilename + shell: bash + run: echo "::set-output name=file::$(cd generated/target; ls tdli*-api-*.jar)" + - id: getfilepath + shell: bash + run: echo "::set-output name=file::$(ls generated/target/tdli*-api-*.jar)" + - uses: actions/upload-artifact@v2 + with: + name: ${{ steps.getfilename.outputs.file }} + path: ${{ steps.getfilepath.outputs.file }} + - name: Deploy to Maven (Snapshot) + if: github.ref != 'refs/heads/master' + shell: bash + run: | + echo "REVISION: $REVISION" + + source ./scripts/continuous-integration/github-workflows/deploy-snapshot.sh + env: + MAVEN_USERNAME: ${{ secrets.MCHV_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MCHV_TOKEN }} + - name: Deploy to Maven (Release) + if: github.ref == 'refs/heads/master' + shell: bash + run: | + echo "REVISION: $REVISION" + + source ./scripts/continuous-integration/github-workflows/deploy-release.sh + env: + MAVEN_USERNAME: ${{ secrets.MCHV_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MCHV_TOKEN }} + diff --git a/scripts/continuous-integration/github-workflows/build.sh b/scripts/continuous-integration/github-workflows/build-natives.sh similarity index 91% rename from scripts/continuous-integration/github-workflows/build.sh rename to scripts/continuous-integration/github-workflows/build-natives.sh index ffe874c..d731321 100755 --- a/scripts/continuous-integration/github-workflows/build.sh +++ b/scripts/continuous-integration/github-workflows/build-natives.sh @@ -3,6 +3,7 @@ set -e cd ./scripts/core/ ./generate_maven_project.sh ./generate_td_tools.sh +./configure_td.sh ./compile_td.sh ./compile_tdjni.sh ./build_generated_maven_project.sh diff --git a/scripts/continuous-integration/github-workflows/build-tdapi.sh b/scripts/continuous-integration/github-workflows/build-tdapi.sh new file mode 100755 index 0000000..4c359d7 --- /dev/null +++ b/scripts/continuous-integration/github-workflows/build-tdapi.sh @@ -0,0 +1,11 @@ +#!/bin/bash -e +set -e +cd ./scripts/core/ +./generate_tdapi_maven_project.sh +./generate_td_tools.sh +./configure_td.sh +./generate_tdapi_java_file.sh +./build_generated_tdapi_maven_project.sh + +echo "Done." +exit 0 diff --git a/scripts/core/build_generated_tdapi_maven_project.sh b/scripts/core/build_generated_tdapi_maven_project.sh new file mode 100755 index 0000000..449f657 --- /dev/null +++ b/scripts/core/build_generated_tdapi_maven_project.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e +cd ../../generated + +mvn clean package + +echo "Done." +exit 0 diff --git a/scripts/core/compile_td.sh b/scripts/core/compile_td.sh index b761bad..1b5645f 100755 --- a/scripts/core/compile_td.sh +++ b/scripts/core/compile_td.sh @@ -38,31 +38,16 @@ echo "CMake extra arguments: '${CMAKE_EXTRA_ARGUMENTS}'" # Delete old data echo "Deleting old data..." -[ -d ./generated/td_build/ ] && rm -r ./generated/td_build/ [ -d ./generated/td_bin/ ] && rm -r ./generated/td_bin/ # Create missing folders echo "Creating missing folders..." -[ -d ./generated/td_build/ ] || mkdir ./generated/td_build/ [ -d ./generated/td_bin/ ] || mkdir ./generated/td_bin/ -# Configure cmake -echo "Configuring CMake..." -cd ./generated/td_build/ -if [[ "$IMPLEMENTATION_NAME" = "tdlight" ]]; then - export CMAKE_EXTRA_ARGUMENTS_TD="-DTD_SKIP_BENCHMARK=ON -DTD_SKIP_TEST=ON -DTD_SKIP_TG_CLI=ON" -else - export CMAKE_EXTRA_ARGUMENTS_TD="" -fi -cmake -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX:PATH=$(realpath -m ../td_bin/) \ - -DTD_ENABLE_JNI=ON \ - ${CMAKE_EXTRA_ARGUMENTS_TD} \ - ${CMAKE_EXTRA_ARGUMENTS} \ - ../implementation # Build echo "Compiling ${IMPLEMENTATION_NAME} td..." +cd ./generated/td_build/ cmake --build . --target install --config Release ${CPU_CORES} diff --git a/scripts/core/configure_td.sh b/scripts/core/configure_td.sh new file mode 100755 index 0000000..52c48c5 --- /dev/null +++ b/scripts/core/configure_td.sh @@ -0,0 +1,69 @@ +#!/bin/bash -e +# MAIN REQUIRED ENVIRONMENT VARIABLES: +# OPERATING_SYSTEM_NAME = +# CPU_ARCHITECTURE_NAME = +# IMPLEMENTATION_NAME = +# CPU_CORES = "-- -j" or "-m" on Windows +# OTHER REQUIRED ENVIRONMENT VARIABLES: +# CMAKE_EXTRA_ARGUMENTS = + +# Check variables correctness +if [ -z "${OPERATING_SYSTEM_NAME}" ]; then + echo "Missing parameter: OPERATING_SYSTEM_NAME" + exit 1 +fi +if [ -z "${CPU_ARCHITECTURE_NAME}" ]; then + echo "Missing parameter: CPU_ARCHITECTURE_NAME" + exit 1 +fi +if [ -z "${IMPLEMENTATION_NAME}" ]; then + echo "Missing parameter: IMPLEMENTATION_NAME" + exit 1 +fi +if [ -z "${CPU_CORES}" ]; then + echo "Missing parameter: CPU_CORES" + exit 1 +fi + +cd ../../ + +# Print details +echo "Configuring td..." +echo "Current directory: $(pwd)" +echo "Operating system: ${OPERATING_SYSTEM_NAME}" +echo "Architecture: ${CPU_ARCHITECTURE_NAME}" +echo "Td implementation: ${IMPLEMENTATION_NAME}" +echo "CPU cores count: ${CPU_CORES}" +echo "CMake extra arguments: '${CMAKE_EXTRA_ARGUMENTS}'" + +# Delete old data +echo "Deleting old data..." +[ -d ./generated/td_build/ ] && rm -r ./generated/td_build/ + +# Create missing folders +echo "Creating missing folders..." +[ -d ./generated/td_build/ ] || mkdir ./generated/td_build/ + +# Configure cmake +echo "Configuring CMake..." +cd ./generated/td_build/ +export CMAKE_EXTRA_ARGUMENTS_TD; +if [[ "$IMPLEMENTATION_NAME" = "tdlight" ]]; then + CMAKE_EXTRA_ARGUMENTS_TD="-DTD_SKIP_BENCHMARK=ON -DTD_SKIP_TEST=ON -DTD_SKIP_TG_CLI=ON" +else + CMAKE_EXTRA_ARGUMENTS_TD="" +fi +INSTALL_PREFIX="$(realpath -m ../td_bin/)" +INSTALL_BINDIR="$(realpath -m ../td_bin/bin)" +echo "Install prefix: $INSTALL_PREFIX" +echo "Install bindir: $INSTALL_BINDIR" +cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_PREFIX" \ + -DCMAKE_INSTALL_BINDIR:PATH="$INSTALL_BINDIR" \ + -DTD_ENABLE_JNI=ON \ + ${CMAKE_EXTRA_ARGUMENTS_TD} \ + ${CMAKE_EXTRA_ARGUMENTS} \ + ../implementation + +echo "Done." +exit 0 diff --git a/scripts/core/generate_tdapi_java_file.sh b/scripts/core/generate_tdapi_java_file.sh index a441122..d550ac6 100755 --- a/scripts/core/generate_tdapi_java_file.sh +++ b/scripts/core/generate_tdapi_java_file.sh @@ -26,6 +26,7 @@ if [ -z "${CPU_CORES}" ]; then fi cd ../../ +JAVA_PACKAGE_PATH="it/tdlight/jni" # Print details echo "Generating TdApi.java..." @@ -35,6 +36,7 @@ echo "Architecture: ${CPU_ARCHITECTURE_NAME}" echo "Td implementation: ${IMPLEMENTATION_NAME}" echo "CPU cores count: ${CPU_CORES}" echo "CMake extra arguments: '${CMAKE_EXTRA_ARGUMENTS}'" +echo "JAVA_PACKAGE_PATH: '${JAVA_PACKAGE_PATH}'" # Setup constants if [[ "$OPERATING_SYSTEM_NAME" == "windows" ]]; then @@ -43,78 +45,49 @@ else export PYTHON_EXECUTABLE="python3" fi - # Delete old data echo "Deleting old data..." -[ -d ./generated/tdapi_java_build/ ] && rm -r ./generated/tdapi_java_build/ [ -d ./generated/tdjni_build/ ] && rm -r ./generated/tdjni_build/ [ -d ./generated/tdjni_bin/ ] && rm -r ./generated/tdjni_bin/ [ -d ./generated/tdjni_docs/ ] && rm -r ./generated/tdjni_docs/ -[ -d ./generated/src/main/jni-cpp-src/ ] && rm -r ./generated/src/main/jni-cpp-src/ -[ -d ./generated/src/main/jni-java-src/ ] && rm -r ./generated/src/main/jni-java-src/ -[ -f ./generated/src/main/java/it/tdlight/jni/TdApi.java ] && rm ./generated/src/main/java/it/tdlight/jni/TdApi.java +[ -f ./generated/src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java ] && rm ./generated/src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java # Create missing folders echo "Creating missing folders..." -[ -d ./generated/tdapi_java_build/ ] || mkdir ./generated/tdapi_java_build/ +[ -d "./generated/src/main/java/${JAVA_PACKAGE_PATH}/" ] || mkdir -p "./generated/src/main/java/${JAVA_PACKAGE_PATH}/" [ -d ./generated/tdjni_build/ ] || mkdir ./generated/tdjni_build/ [ -d ./generated/tdjni_bin/ ] || mkdir ./generated/tdjni_bin/ [ -d ./generated/tdjni_docs/ ] || mkdir ./generated/tdjni_docs/ -# Copy source files -echo "Copying source files..." -cp -r ./src/main/jni-cpp-src/common/. ./generated/src/main/jni-cpp-src -cp -r ./src/main/jni-cpp-src/${IMPLEMENTATION_NAME}/. ./generated/src/main/jni-cpp-src -cp -r ./src/main/jni-java-src ./generated/src/main/jni-java-src - # Copy executables echo "Copying executables..." +export TD_GENERATED_BINARIES_DIR; if [[ "$OPERATING_SYSTEM_NAME" == "windows" ]]; then - export TD_GENERATED_BINARIES_DIR=$(realpath -m ./generated/td_tools/td/generate/Release) + TD_GENERATED_BINARIES_DIR="$(realpath -m ./generated/td_tools/td/generate/Release)" else - export TD_GENERATED_BINARIES_DIR=$(realpath -m ./generated/td_tools/td/generate) + TD_GENERATED_BINARIES_DIR="$(realpath -m ./generated/td_tools/td/generate)" fi - - # Configure cmake echo "Configuring CMake..." -cd ./generated/tdapi_java_build/ -echo "Telegram source path: '$(realpath -m ../implementation/)'" -echo "Td bin path: '$(realpath -m ../td_bin/)'" -echo "Td bin files: $(ls $(realpath -m ../td_bin/))" -echo "Td bin/lib path: '$(realpath -m ../td_bin/lib/)'" -echo "Td bin/lib files: $(ls $(realpath -m ../td_bin/lib/))" -echo "Td CMake path: '$(realpath -m ../td_bin/lib/cmake/)'" -echo "Td CMake files: $(ls $(realpath -m ../td_bin/lib/cmake/))" -echo "Td CMake/td path: '$(realpath -m ../td_bin/lib/cmake/Td/)'" -echo "Td CMake/td files: $(ls $(realpath -m ../td_bin/lib/cmake/Td/))" -cmake -DCMAKE_BUILD_TYPE=Release \ - -DTD_SRC_DIR=$(realpath -m ../implementation/) \ - -DTD_GENERATED_BINARIES_DIR=${TD_GENERATED_BINARIES_DIR} \ - -DTd_DIR=$(realpath -m ../td_bin/lib/cmake/Td/) \ - -DTDNATIVES_BIN_DIR=$(realpath -m ../tdjni_bin/) \ - -DTDNATIVES_DOCS_BIN_DIR=$(realpath -m ../tdjni_docs/) \ - -DJAVA_SRC_DIR=$(realpath -m ../src/main/jni-java-src/) \ - ${CMAKE_EXTRA_ARGUMENTS} \ - $(realpath -m ../src/main/jni-cpp-src/) +cd ./generated/ +echo "Telegram source path: '$(realpath -m ./implementation/)'" # Run cmake to generate TdApi.java echo "Generating TdApi.java..." -cmake --build . --target td_generate_java_api --config Release ${CPU_CORES} -cd .. +./td_tools/td/generate/td_generate_java_api TdApi "./implementation/td/generate/scheme/td_api.tlo" "./src/main/java" "$JAVA_PACKAGE_PATH" +php ./implementation/td/generate/JavadocTlDocumentationGenerator.php "./implementation/td/generate/scheme/td_api.tl" "./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java" echo "Patching TdApi.java..." -${PYTHON_EXECUTABLE} ../scripts/core/tdlib-serializer/tdlib-serializer/ $(realpath -m ./src/main/jni-java-src/it/tdlight/jni/TdApi.java) $(realpath -m ./src/main/jni-java-src/it/tdlight/jni/new_TdApi.java) $(realpath -m ../scripts/core/tdlib-serializer/tdlib-serializer/headers.txt) -rm ./src/main/jni-java-src/it/tdlight/jni/TdApi.java +${PYTHON_EXECUTABLE} ../scripts/core/tdlib-serializer "$(realpath -m ./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java)" "$(realpath -m ./src/main/java/${JAVA_PACKAGE_PATH}/new_TdApi.java)" "$(realpath -m ../scripts/core/tdlib-serializer/headers.txt)" +rm ./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java if [[ "$OPERATING_SYSTEM_NAME" == "osx" ]]; then - unexpand --tabs=2 ./src/main/jni-java-src/it/tdlight/jni/new_TdApi.java > ./src/main/jni-java-src/it/tdlight/jni/TdApi.java + unexpand --tabs=2 ./src/main/java/${JAVA_PACKAGE_PATH}/new_TdApi.java > ./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java else - unexpand -t 2 ./src/main/jni-java-src/it/tdlight/jni/new_TdApi.java > ./src/main/jni-java-src/it/tdlight/jni/TdApi.java + unexpand -t 2 ./src/main/java/${JAVA_PACKAGE_PATH}/new_TdApi.java > ./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java fi -rm ./src/main/jni-java-src/it/tdlight/jni/new_TdApi.java -cp ./src/main/jni-java-src/it/tdlight/jni/TdApi.java ./src/main/java/it/tdlight/jni/TdApi.java +rm ./src/main/java/${JAVA_PACKAGE_PATH}/new_TdApi.java -echo "Generated '$(realpath -m ./src/main/java/it/tdlight/jni/TdApi.java)'" +echo "Generated '$(realpath -m ./src/main/java/${JAVA_PACKAGE_PATH}/TdApi.java)'" echo "Done." exit 0 diff --git a/scripts/core/generate_tdapi_maven_project.sh b/scripts/core/generate_tdapi_maven_project.sh new file mode 100755 index 0000000..8cb4175 --- /dev/null +++ b/scripts/core/generate_tdapi_maven_project.sh @@ -0,0 +1,49 @@ +#!/bin/bash -e +# MAIN REQUIRED ENVIRONMENT VARIABLES: +# OPERATING_SYSTEM_NAME = +# CPU_ARCHITECTURE_NAME = +# IMPLEMENTATION_NAME = + +# Check variables correctness +if [ -z "${OPERATING_SYSTEM_NAME}" ]; then + echo "Missing parameter: OPERATING_SYSTEM_NAME" + exit 1 +fi +if [ -z "${CPU_ARCHITECTURE_NAME}" ]; then + echo "Missing parameter: CPU_ARCHITECTURE_NAME" + exit 1 +fi +if [ -z "${IMPLEMENTATION_NAME}" ]; then + echo "Missing parameter: IMPLEMENTATION_NAME" + exit 1 +fi + +cd ../../ + +# Print details +echo "Generating maven project..." +echo "Current directory: $(pwd)" +echo "Operating system: ${OPERATING_SYSTEM_NAME}" +echo "Architecture: ${CPU_ARCHITECTURE_NAME}" +echo "Td implementation: ${IMPLEMENTATION_NAME}" + +# Delete old data +echo "Deleting old data..." +[ -d ./generated/ ] && rm -r ./generated/ + +# Create missing folders +echo "Creating missing folders..." +[ -d ./generated/ ] || mkdir ./generated/ +[ -d ./generated/src/main ] || mkdir -p ./generated/src/main + +# Generate pom.xml +echo "Generating pom.xml..." +sed -f "src/main/replacements/replace-${OPERATING_SYSTEM_NAME}-${CPU_ARCHITECTURE_NAME}-${IMPLEMENTATION_NAME}.sed" src/main/tdapi-project-src/pom.template.xml > generated/pom.xml + +# Copy source files +echo "Copying source files..." +cp -r ./src/main/tdapi-java ./generated/src/main/java +cp -r ./src/main/tdapi-resources ./generated/src/main/resources + +echo "Done." +exit 0 diff --git a/scripts/utils/compile-all.sh b/scripts/utils/compile-natives-package.sh similarity index 97% rename from scripts/utils/compile-all.sh rename to scripts/utils/compile-natives-package.sh index 957f272..2e5e292 100755 --- a/scripts/utils/compile-all.sh +++ b/scripts/utils/compile-natives-package.sh @@ -14,6 +14,7 @@ cd ../core ./generate_maven_project.sh ./generate_td_tools.sh +./configure_td.sh ./compile_td.sh ./compile_tdjni.sh ./build_generated_maven_project.sh diff --git a/scripts/utils/compile-tdapi-package.sh b/scripts/utils/compile-tdapi-package.sh new file mode 100755 index 0000000..618acf8 --- /dev/null +++ b/scripts/utils/compile-tdapi-package.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e +# This script compiles tdlight/tdlib api for your platform. +# Fill the variables with your system details. +# +# MAIN REQUIRED ENVIRONMENT VARIABLES: +# OPERATING_SYSTEM_NAME = +# CPU_ARCHITECTURE_NAME = +# IMPLEMENTATION_NAME = +# CPU_CORES = "-- -j" or "-m" on Windows +# CMAKE_EXTRA_ARGUMENTS = +# REVISION = + +cd ../core + +./generate_tdapi_maven_project.sh +./generate_td_tools.sh +./configure_td.sh +./generate_tdapi_java_file.sh +./build_generated_tdapi_maven_project.sh + +echo "Done." +exit 0 diff --git a/src/main/replacements/replace-linux-386-tdlib.sed b/src/main/replacements/replace-linux-386-tdlib.sed index 11442af..c2996db 100644 --- a/src/main/replacements/replace-linux-386-tdlib.sed +++ b/src/main/replacements/replace-linux-386-tdlib.sed @@ -1,4 +1,4 @@ s/${OPERATING_SYSTEM_NAME}/linux/ s/${OPERATING_SYSTEM_NAME_SHORT}/linux/ -s/${CPU_ARCHITECTURE_NAME}/386/ +s/${CPU_ARCHITECTURE_NAME}/x86/ s/${IMPLEMENTATION_NAME}/tdlib/ diff --git a/src/main/replacements/replace-linux-386-tdlight.sed b/src/main/replacements/replace-linux-386-tdlight.sed index 28928d8..b4488cc 100644 --- a/src/main/replacements/replace-linux-386-tdlight.sed +++ b/src/main/replacements/replace-linux-386-tdlight.sed @@ -1,4 +1,4 @@ s/${OPERATING_SYSTEM_NAME}/linux/ s/${OPERATING_SYSTEM_NAME_SHORT}/linux/ -s/${CPU_ARCHITECTURE_NAME}/386/ +s/${CPU_ARCHITECTURE_NAME}/x86/ s/${IMPLEMENTATION_NAME}/tdlight/ diff --git a/src/main/tdapi-project-src/pom.template.xml b/src/main/tdapi-project-src/pom.template.xml new file mode 100644 index 0000000..62b7d56 --- /dev/null +++ b/src/main/tdapi-project-src/pom.template.xml @@ -0,0 +1,101 @@ + + 4.0.0 + it.tdlight + ${IMPLEMENTATION_NAME}-api + 3.1.${revision} + ${IMPLEMENTATION_NAME} API + jar + + UTF-8 + 0-SNAPSHOT + + + + mchv-release-distribution + MCHV Release Apache Maven Packages Distribution + https://mvn.mchv.eu/repository/mchv + + + mchv-snapshot-distribution + MCHV Snapshot Apache Maven Packages Distribution + https://mvn.mchv.eu/repository/mchv-snapshot + + + + https://git.ignuranza.net/tdlight-team/tdlight-java-natives.git + scm:git:https://git.ignuranza.net/tdlight-team/tdlight-java-natives.git + scm:git:https://git.ignuranza.net/tdlight-team/tdlight-java-natives.git + HEAD + + + + + maven-clean-plugin + 3.1.0 + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.1 + + UTF-8 + 1.8 + 1.8 + + + + org.codehaus.mojo + flatten-maven-plugin + 1.1.0 + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 3.0.0-M1 + + + maven-deploy-plugin + 2.8.2 + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + + +