Clarify build instructions.

This commit is contained in:
Lockywolf 2022-02-11 15:20:18 +08:00 committed by Daniel Gultsch
parent 12463911f1
commit 364ef2543d

View file

@ -385,20 +385,77 @@ you can get access to the the latest beta version by signing up using [this link
#### How do I build Conversations
**Note:** Starting with version 2.8.0 you will need to compile libwebrtc.
[Instructions](https://webrtc.github.io/webrtc-org/native-code/android/) can be found on the WebRTC
website. Place the resulting libwebrtc.aar in the `libs/` directory. The PlayStore release currently
##### Compiling WebRTC.
WebRTC is a standard for Internet audio and video communication. libwebrtc, also used in the Google Chrome web browser, implementing the WebRTC standard.
**Note:** Starting with version 2.8.0 you will need to compile libwebrtc from source because there are no fresh binary releases available to download.
[Instructions](https://webrtc.github.io/webrtc-org/native-code/android/) can be found on the WebRTC website, however, there build method used by Conversations developers is slightly different.
```
mkdir -p ~/Prerequisites-for-Conversations
cd ~/Prerequisites-for-Conversations
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=~/Prerequisites-for-Conversations/depot_tools:$PATH
mkdir webrtc
cd webrtc
fetch --nohooks webrtc_android
# ...wait for 20Gb of stuff...
gclient sync
# ...wait for more 5Gb of stuff...
cd src
unset _JAVA_OPTS
./tools_webrtc/android/build_aar.py
```
It will take some time and build webrtc for all popular Android architectures.
The result will be the file `./libwebrtc.aar`
##### Building Conversations itself
Place the resulting libwebrtc.aar in the `libs/` directory. The PlayStore release currently
uses the stable M90 release and renamed the file name to `libwebrtc-m90.aar` put potentially you can
reference any file name by modifying `build.gradle`.
reference any file name by modifying `build.gradle`. Search for `libwebrtc-m90.aar`, and replace it with `libwebrtc.aar`.
Make sure to have ANDROID_HOME point to your Android SDK. Use the Android SDK Manager to install missing dependencies.
Alternatively (and to avoid thinking about environment variables), create a file called local.properties, in the root of the Conversations build tree,
with the following contents:
```
## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Wed May 20 16:21:35 CST 2020
ndk.dir=Path-To-Ndk
sdk.dir=Path-To-Sdk
```
Then issue the following commands in order to build the apk.
git clone https://github.com/inputmice/Conversations.git
cd Conversations
./gradlew assembleConversationsFreeSystemDebug
There are two build flavors available. *free* and *playstore*. Unless you know what you are doing you only need *free*.
You will find the apks in the `./build/outputs/apk/conversationsFreeSystem/debug/` directory.
Be careful, the resulting apks will not install unless you delete your existing Conversations installation (which will delete all the messages from your phone, and if you have used OMEMO, you will not be able to restore them from the server).
Do it at your own risk.
You, though, can make your own build a "test build", that can be installed alongside the normal (F-Droid or Google Play) Conversations:
In the file `build.gradle`, find the line `applicationId "eu.siacs.conversations"` , and replace it with `applicationId "my.conversations.fork"`, also below replace "Conversations" appName with "MyCFork".
Then the resulting APK can be installed ALONGSIDE normal Conversations. And have a different name so it's not confusing
WARNING: DO NOT REPLACE ANYTHING ELSE ANYWHERE ELSE, DO NOT REPLACE THIS PROJECT WIDE. JUST 2 strings in THAT specific file!
[![Build Status](https://travis-ci.org/inputmice/Conversations.svg?branch=development)](https://travis-ci.org/inputmice/Conversations)