AyuGramDesktop/docs/building-linux.md
ZavaruKitsu 58e1c9ff54 feat: more AyuGram branding
feat: update README
feat: update CONTRIBUTING
fix: add note for Linux
fix: rename xdg shortcut
fix: remove snap
fix: rename AyuGram executable in the updater
fix: use different GUIDs
2023-08-27 13:40:55 +00:00

1.7 KiB

Build instructions for Linux using Docker

Prepare folder

Choose a folder for the future build, for example /home/user/TBuild. It will be named BuildPath in the rest of this document. All commands will be launched from Terminal.

Clone source code and prepare libraries

Install poetry, go to BuildPath and run

git clone --recursive https://github.com/AyuGram/AyuGramDesktop.git tdesktop
./tdesktop/Telegram/build/prepare/linux.sh

Building the project

Go to BuildPath/tdesktop and run

docker run --rm -it \
    -v $PWD:/usr/src/tdesktop \
    tdesktop:centos_env \
    /usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \
    -D TDESKTOP_API_ID=2040 \
    -D TDESKTOP_API_HASH=b18441a1ff607e10a989891a5462e627 \
    -D CMAKE_INTERPROCEDURAL_OPTIMIZATION=ON

Or, to create a debug build, run

docker run --rm -it \
    -v $PWD:/usr/src/tdesktop \
    -e DEBUG=1 \
    tdesktop:centos_env \
    /usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \
    -D TDESKTOP_API_ID=2040 \
    -D TDESKTOP_API_HASH=b18441a1ff607e10a989891a5462e627 \
    -D CMAKE_INTERPROCEDURAL_OPTIMIZATION=ON

P. S. If docker image build takes too long, cherry-pick this commit.

If you need a backward compatible binary (running on older OS like the official one), you should build the binary with LTO.
To do this, add -D CMAKE_INTERPROCEDURAL_OPTIMIZATION=ON option.

The built files will be in the out directory.

You can use strip command to reduce binary size.