mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 04:56:14 +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 \
|
git \
|
||||||
xvfb \
|
xvfb \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
wget
|
wget \
|
||||||
|
unzip
|
||||||
|
|
||||||
RUN pip3 install meson
|
RUN pip3 install meson
|
||||||
|
|
||||||
|
@ -31,6 +32,13 @@ ENV GST_BUILD_PATH="/gst-build/"
|
||||||
# Configure git for various usage
|
# Configure git for various usage
|
||||||
RUN git config --global user.email "gst-build@gstreamer.net" && git config --global user.name "Gstbuild Runner"
|
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
|
# get gst-build and make all subprojects available
|
||||||
RUN git clone git://anongit.freedesktop.org/gstreamer/gst-build $GST_BUILD_PATH && \
|
RUN git clone git://anongit.freedesktop.org/gstreamer/gst-build $GST_BUILD_PATH && \
|
||||||
cd $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