summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2019-04-17 17:08:39 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2019-04-17 17:08:39 +0530
commitd4cc75ec1b8cc36fa796bd470d520e051cb6196c (patch)
tree51c1e5632498136620f62d9ec2b5b2f6c851386b /data
parentcb3db265fe71e2a4e980a6aa4e6befb65bd84b7b (diff)
downloadgstreamer-d4cc75ec1b8cc36fa796bd470d520e051cb6196c.tar.gz
Move cross-files to the data subdirectory
We will add more data soon.
Diffstat (limited to 'data')
-rw-r--r--data/cross-files/README.md40
-rw-r--r--data/cross-files/android_arm64_api28.txt16
-rw-r--r--data/cross-files/mingw_w64_x86-64.txt17
3 files changed, 73 insertions, 0 deletions
diff --git a/data/cross-files/README.md b/data/cross-files/README.md
new file mode 100644
index 0000000000..469ef12f8d
--- /dev/null
+++ b/data/cross-files/README.md
@@ -0,0 +1,40 @@
+# Cross compiling GStreamer with gst-build
+
+GStreamer can be cross compiled for various platforms using gst-build. However,
+only dependencies that are ported to the Meson build system will be built. It is
+recommended to use Cerbero to cross compile GStreamer when other external
+dependencies are required.
+
+Once the toolchain is installed and a Meson cross file is created, to build
+GStreamer simply run for example: `meson --cross-file cross-files/mingw_w64_x86-64.txt builddir`.
+
+## Android
+
+Requires Android API level >= 28, previous versions are missing *iconv* dependency.
+
+- Download and extract the [NDK](https://developer.android.com/ndk/)
+- Create a standalone toolchain targeting your arch and API level:
+`./build/tools/make_standalone_toolchain.py --arch $arch --api $api --install-dir $toolchain_path`
+- Create a Meson cross file, you can use `android_arm64_api28.txt` as example
+ and change CPU architectures and toolchain path.
+
+Notes:
+- On fedora the Android NDK requires the `ncurses-compat-libs` package.
+
+## Windows
+
+GStreamer can be cross compiled for Windows using mingw packaged in most
+distribution.
+
+The Meson cross file `mingw_w64_x86-64.txt` can be used when targeting amd64
+architecture, or adapted for i686 arch.
+
+### Fedora
+
+- Install the toolchain packages: `mingw64-gcc`, `mingw64-gcc-c++`. Fedora
+ provides many other optional dependencies that could be installed as well.
+ For example: `mingw64-gettext`, `mingw64-libffi`, `mingw64-zlib`.
+
+### Ubuntu
+
+- Install the toolchain package: `gcc-mingw-w64`.
diff --git a/data/cross-files/android_arm64_api28.txt b/data/cross-files/android_arm64_api28.txt
new file mode 100644
index 0000000000..27b803d821
--- /dev/null
+++ b/data/cross-files/android_arm64_api28.txt
@@ -0,0 +1,16 @@
+[host_machine]
+system = 'android'
+cpu_family = 'aarch64'
+cpu = 'arm64'
+endian = 'little'
+
+[properties]
+c_args = ['--sysroot', '/opt/android-arm64-api28/sysroot']
+cpp_args = ['--sysroot', '/opt/android-arm64-api28/sysroot']
+
+[binaries]
+c = '/opt/android-arm64-api28/bin/aarch64-linux-android-clang'
+cpp = '/opt/android-arm64-api28/bin/aarch64-linux-android-clang++'
+ar = '/opt/android-arm64-api28/bin/aarch64-linux-android-ar'
+strip = '/opt/android-arm64-api28/bin/aarch64-linux-android-strip'
+pkgconfig = 'false'
diff --git a/data/cross-files/mingw_w64_x86-64.txt b/data/cross-files/mingw_w64_x86-64.txt
new file mode 100644
index 0000000000..1897b686a0
--- /dev/null
+++ b/data/cross-files/mingw_w64_x86-64.txt
@@ -0,0 +1,17 @@
+[host_machine]
+system = 'windows'
+cpu_family = 'x86_64'
+cpu = 'x86_64'
+endian = 'little'
+
+[properties]
+c_args = []
+c_link_args = []
+
+[binaries]
+c = 'x86_64-w64-mingw32-gcc'
+cpp = 'x86_64-w64-mingw32-g++'
+ar = 'x86_64-w64-mingw32-ar'
+strip = 'x86_64-w64-mingw32-strip'
+pkgconfig = 'x86_64-w64-mingw32-pkg-config'
+windres = 'x86_64-w64-mingw32-windres'