Build Tdlib Cross Compile #18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Tdlib Cross Compile | |
on: [workflow_dispatch] | |
jobs: | |
build-tdlib-desktop: | |
name: Build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04, windows-latest, macOS-latest] | |
include: | |
- os: ubuntu-24.04 | |
output-name: linux | |
- os: macOS-latest | |
output-name: macos | |
- os: windows-latest | |
output-name: windows | |
steps: | |
- name: Export Release Timestamp | |
run: echo "APP_VERSION=v$(date +'%Y.%m.%d.%H.%M.%S')" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
with: | |
repository: tdlib/td | |
- name: Install Dependencies | |
continue-on-error: true | |
run: | | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
sudo apt update -y | |
sudo apt-get install -y make git zlib1g-dev libssl-dev gperf cmake clang libc++-dev libc++abi-dev ninja-build zip | |
fi | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
brew update | |
brew upgrade | |
xcode-select --install | |
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | |
brew install gperf cmake openssl coreutils | |
fi | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
git clone https://github.com/Microsoft/vcpkg.git | |
cd vcpkg | |
git checkout 1b1ae50e1a69f7c659bd7d731e80b358d21c86ad | |
./bootstrap-vcpkg.bat | |
./vcpkg.exe install gperf:x64-windows openssl:x64-windows zlib:x64-windows | |
fi | |
shell: bash | |
- name: Compile Tdlib | |
continue-on-error: true | |
run: | | |
mkdir build | |
cd build | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=../tdlib .. | |
cmake --build . | |
fi | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl/ -DCMAKE_INSTALL_PREFIX:PATH=../tdlib .. | |
cmake --build . | |
fi | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
cmake -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../tdlib -DCMAKE_TOOLCHAIN_FILE:FILEPATH=../vcpkg/scripts/buildsystems/vcpkg.cmake .. | |
cmake --build . | |
cd tdlib/bin | |
ls | |
mv libcrypto-1_1-x64.dll libcrypto-1_1.dll | |
mv libssl-1_1-x64.dll libssl-1_1.dll | |
7z a -tzip dlls.zip libcrypto-1_1.dll libssl-1_1.dll tdjson.dll zlib1.dll | |
fi | |
shell: bash | |
- name: Publish Release | |
uses: marvinpinto/action-automatic-releases@latest | |
continue-on-error: true | |
with: | |
repo_token: "${{ github.token }}" | |
automatic_release_tag: "latest-tdlib-${{ matrix.output-name }}" | |
prerelease: false | |
title: "Release Tdlib ${{ matrix.output-name }}" | |
files: | | |
tdlib/tg_cli | |
tdlib/libtdjson.* | |
# build-tdlib-android: | |
# name: Build Android | |
# runs-on: ubuntu-24.04 | |
# steps: | |
# - name: Export Release Timestamp | |
# run: echo "APP_VERSION=v$(date +'%Y.%m.%d.%H.%M.%S')" >> $GITHUB_ENV | |
# - uses: actions/checkout@v3 | |
# with: | |
# repository: tdlib/td | |
# - name: Install Dependencies | |
# continue-on-error: false | |
# run: | | |
# sudo apt update -y | |
# sudo apt-get install -y make git zlib1g-dev libssl-dev gperf cmake clang libc++-dev libc++abi-dev ninja-build zip | |
# shell: bash | |
# - name: Compile Tdlib | |
# continue-on-error: true | |
# run: | | |
# cd example/android/ | |
# docker build --build-arg TDLIB_INTERFACE=JSON --build-arg OPENSSL_VERSION="openssl-3.4.0" --build-arg ANDROID_NDK_VERSION="27.2.12479018" --output tdlib . | |
# shell: bash | |
# - name: Publish Release | |
# uses: marvinpinto/action-automatic-releases@latest | |
# continue-on-error: true | |
# with: | |
# repo_token: "${{ github.token }}" | |
# automatic_release_tag: "latest-tdlib-android" | |
# prerelease: false | |
# title: "Release Tdlib Android" | |
# files: | | |
# example/android/tdlib/tdlib.zip |