mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
Add Android NDK toolchain in Ubuntu docker image
This commit is contained in:
parent
68a71431b8
commit
a1726fee58
3 changed files with 89 additions and 1 deletions
|
@ -22,7 +22,8 @@ RUN \
|
|||
git \
|
||||
xvfb \
|
||||
python3-pip \
|
||||
wget
|
||||
wget \
|
||||
unzip
|
||||
|
||||
RUN pip3 install meson
|
||||
|
||||
|
@ -31,6 +32,13 @@ ENV GST_BUILD_PATH="/gst-build/"
|
|||
# Configure git for various usage
|
||||
RUN git config --global user.email "gst-build@gstreamer.net" && git config --global user.name "Gstbuild Runner"
|
||||
|
||||
# Setup Android toolchain
|
||||
COPY android-download-ndk.sh .
|
||||
COPY android-create-toolchain.sh .
|
||||
RUN ./android-download-ndk.sh
|
||||
RUN ./android-create-toolchain.sh arm64 28
|
||||
RUN rm -rf /android-ndk
|
||||
|
||||
# get gst-build and make all subprojects available
|
||||
RUN git clone git://anongit.freedesktop.org/gstreamer/gst-build $GST_BUILD_PATH && \
|
||||
cd $GST_BUILD_PATH && \
|
||||
|
|
49
docker/build-base-images/android-create-toolchain.sh
Executable file
49
docker/build-base-images/android-create-toolchain.sh
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Copyright 2018 Collabora ltd.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: Xavier Claessens <xavier.claessens@collabora.com>
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
arch=$1
|
||||
api=$2
|
||||
toolchain_path=/android-toolchain-$arch-$api
|
||||
|
||||
# Create standalone toolchains
|
||||
/android-ndk/build/tools/make_standalone_toolchain.py --arch $arch --api $api --install-dir $toolchain_path
|
||||
|
||||
# Create a cross file that can be passed to meson
|
||||
cat > android_${arch}_${api}.txt <<- EOM
|
||||
[host_machine]
|
||||
system = 'android'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = '${arch}'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
c_args = ['--sysroot', '${toolchain_path}/sysroot']
|
||||
cpp_args = ['--sysroot', '${toolchain_path}/sysroot']
|
||||
|
||||
[binaries]
|
||||
c = '${toolchain_path}/bin/aarch64-linux-android-clang'
|
||||
cpp = '${toolchain_path}/bin/aarch64-linux-android-clang++'
|
||||
ar = '${toolchain_path}/bin/aarch64-linux-android-ar'
|
||||
strip = '${toolchain_path}/bin/aarch64-linux-android-strip'
|
||||
pkgconfig = 'false'
|
||||
EOM
|
31
docker/build-base-images/android-download-ndk.sh
Executable file
31
docker/build-base-images/android-download-ndk.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Copyright 2018 Collabora ltd.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: Xavier Claessens <xavier.claessens@collabora.com>
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# Download Android NDK
|
||||
ANDROID_NDK_VERSION="r18b"
|
||||
ANDROID_NDK_SHA512="a35ab95ece52819194a3874fd210abe5c25905212c4aafe5d75c465c14739a46340d1ff0944ad93ffbbc9c0d86107119399d4f60ec6c5f080758008e75c19617"
|
||||
wget --quiet https://dl.google.com/android/repository/android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip
|
||||
echo "$ANDROID_NDK_SHA512 android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip" | sha512sum -c
|
||||
unzip android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip
|
||||
rm android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip
|
||||
mv android-ndk-$ANDROID_NDK_VERSION /android-ndk
|
Loading…
Reference in a new issue