Skip to content

Commit

Permalink
Also build for 64 bit targets
Browse files Browse the repository at this point in the history
  • Loading branch information
threema-danilo committed Feb 12, 2019
1 parent a3aff4a commit c6cddf1
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 10 deletions.
2 changes: 1 addition & 1 deletion LICENSE.txt
@@ -1,5 +1,5 @@
The MIT License (MIT)
Copyright (c) 2016 Threema GmbH
Copyright (c) 2016-2019 Threema GmbH

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Expand Down
6 changes: 4 additions & 2 deletions README.md
Expand Up @@ -33,6 +33,8 @@ the following output in the `out/` directory:
- `libwebrtc.jar`
- `arm/libjingle_peerconnection_so.so`
- `x86/libjingle_peerconnection_so.so`
- `arm64/libjingle_peerconnection_so.so`
- `x64/libjingle_peerconnection_so.so`
- `revision.txt`

If you want a non-release build, or if you want to build for other platforms,
Expand All @@ -50,7 +52,7 @@ index ed471e9..9198581 100644
# Update code
WORKDIR /webrtc/src
-RUN git checkout master && git pull && gclient sync
+RUN git checkout master && git pull && git checkout eeab9ccb2417cab18ae1681c6644c25fa4eadcd3 && gclient sync
+RUN git checkout master && git pull && git checkout branch-heads/72 && gclient sync

# Apply patches
RUN mkdir /webrtc/src/patches
Expand Down Expand Up @@ -87,7 +89,7 @@ switch to a file system based storage driver like `overlay2`.
## License

The MIT License (MIT)
Copyright (c) 2016 Threema GmbH
Copyright (c) 2016-2019 Threema GmbH

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Expand Down
15 changes: 12 additions & 3 deletions build.sh
Expand Up @@ -2,17 +2,26 @@
set -e
docker build --no-cache -t threema/webrtc-build:latest build/
CONTAINER=$(docker create threema/webrtc-build:latest)
mkdir -p out/arm out/x86
TARGETS='arm arm64 x86 x64'

# Copy revision file
mkdir -p out/
docker cp $CONTAINER:/webrtc/revision.txt out/
docker cp $CONTAINER:/webrtc/src/out/arm/libjingle_peerconnection_so.so out/arm/
docker cp $CONTAINER:/webrtc/src/out/x86/libjingle_peerconnection_so.so out/x86/

# Copy shared libraries
for target in $TARGETS; do
mkdir -p out/$target/
docker cp $CONTAINER:/webrtc/src/out/$target/libjingle_peerconnection_so.so out/$target/
done

# Copy Java bindings
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/rtc_base/base_java.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/rtc_base/base_java.interface.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/sdk/android/libjingle_peerconnection_java.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/sdk/android/libjingle_peerconnection_java.interface.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/sdk/android/libwebrtc.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/modules/audio_device/audio_device_java.jar out/
docker cp $CONTAINER:/webrtc/src/out/arm/lib.java/modules/audio_device/audio_device_java.interface.jar out/

docker rm $CONTAINER
echo "Done. You can find the generated files in the out/ directory."
10 changes: 6 additions & 4 deletions build/Dockerfile
Expand Up @@ -15,12 +15,14 @@ RUN mkdir /webrtc/src/patches
COPY ["patches/*.patch", "patches/.gitdir", "patches/"]
RUN /bin/bash -c 'shopt -s nullglob && for p in patches/*.patch; do echo "Applying $p..."; git apply $p; done'

# Generate Ninja project files
RUN gn gen out/arm --args='is_debug=false target_os="android" target_cpu="arm" symbol_level=1'
RUN gn gen out/x86 --args='is_debug=false target_os="android" target_cpu="x86" symbol_level=1'

# Build for ARM
RUN gn gen out/arm --args='is_debug=false target_os="android" target_cpu="arm" symbol_level=1'
RUN gn gen out/arm64 --args='is_debug=false target_os="android" target_cpu="arm64" symbol_level=1'
RUN /bin/bash -c 'source build/android/envsetup.sh && ninja -C out/arm'
RUN /bin/bash -c 'source build/android/envsetup.sh && ninja -C out/arm64'

# Build for x86
RUN gn gen out/x86 --args='is_debug=false target_os="android" target_cpu="x86" symbol_level=1'
RUN gn gen out/x64 --args='is_debug=false target_os="android" target_cpu="x64" symbol_level=1'
RUN /bin/bash -c 'source build/android/envsetup.sh && ninja -C out/x86'
RUN /bin/bash -c 'source build/android/envsetup.sh && ninja -C out/x64'

0 comments on commit c6cddf1

Please sign in to comment.