diff --git a/README.md b/README.md
index fb8ed9f6..de01ad8b 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ FFmpeg kit for applications. Supports Android, iOS, tvOS.
- FFmpeg `v4.4-dev` releases
- 29 external libraries
- `chromaprint`, `fontconfig`, `freetype`, `fribidi`, `gmp`, `gnutls`, `kvazaar`, `lame`, `libaom`, `libass`, `libiconv`, `libilbc`, `libtheora`, `libvorbis`, `libvpx`, `libwebp`, `libxml2`, `opencore-amr`, `openh264`, `opus`, `sdl`, `shine`, `snappy`, `soxr`, `speex`, `tesseract`, `twolame`, `vo-amrwbenc`, `wavpack`
+ `chromaprint`, `fontconfig`, `freetype`, `fribidi`, `gmp`, `gnutls`, `kvazaar`, `lame`, `libaom`, `libass`, `libiconv`, `libilbc`, `libtheora`, `libvorbis`, `libvpx`, `libwebp`, `libxml2`, `opencore-amr`, `openh264`, `opus`, `sdl`, `shine`, `snappy`, `soxr`, `speex`, `tesseract`, `twolame`, `vo-amrwbenc`, `dav1d`
- 5 external libraries with GPL license
@@ -23,7 +23,7 @@ FFmpeg kit for applications. Supports Android, iOS, tvOS.
- Exposes both FFmpeg library and FFmpegKit wrapper library capabilities
- Includes cross-compile instructions for 48 open-source libraries
- `chromaprint`, `expat`, `ffmpeg`, `fontconfig`, `freetype`, `fribidi`, `giflib`, `gmp`, `gnutls`, `harfbuzz`, `kvazaar`, `lame`, `leptonica`, `libaom`, `libass`, `libiconv`, `libilbc`, `libjpeg`, `libjpeg-turbo`, `libogg`, `libpng`, `libsamplerate`, `libsndfile`, `libtheora`, `libuuid`, `libvorbis`, `libvpx`, `libwebp`, `libxml2`, `nettle`, `opencore-amr`, `openh264`, `opus`, `rubberband`, `sdl`, `shine`, `snappy`, `soxr`, `speex`, `tesseract`, `tiff`, `twolame`, `vid.stab`, `vo-amrwbenc`, `wavpack`, `x264`, `x265`, `xvidcore`
+ `chromaprint`, `expat`, `ffmpeg`, `fontconfig`, `freetype`, `fribidi`, `giflib`, `gmp`, `gnutls`, `harfbuzz`, `kvazaar`, `lame`, `leptonica`, `libaom`, `libass`, `libiconv`, `libilbc`, `libjpeg`, `libjpeg-turbo`, `libogg`, `libpng`, `libsamplerate`, `libsndfile`, `libtheora`, `libuuid`, `libvorbis`, `libvpx`, `libwebp`, `libxml2`, `nettle`, `opencore-amr`, `openh264`, `opus`, `rubberband`, `sdl`, `shine`, `snappy`, `soxr`, `speex`, `tesseract`, `tiff`, `twolame`, `vid.stab`, `vo-amrwbenc`, `dav1d`, `x264`, `x265`, `xvidcore`
- Licensed under LGPL 3.0, can be customized to support GPL v3.0
@@ -85,10 +85,10 @@ Please remember that some parts of `FFmpeg` are licensed under the `GPL` and onl
vid.stab x264 x265 xvidcore |
gmp gnutls |
gmp gnutls vid.stab x264 x265 xvidcore |
-lame libilbc libvorbis opencore-amr opus shine soxr speex twolame vo-amrwbenc wavpack |
+lame libilbc libvorbis opencore-amr opus shine soxr speex twolame vo-amrwbenc dav1d |
fontconfig freetype fribidi kvazaar libaom libass libiconv libtheora libvpx libwebp snappy |
-fontconfig freetype fribidi gmp gnutls kvazaar lame libaom libass libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus shine snappy soxr speex twolame vo-amrwbenc wavpack |
-fontconfig freetype fribidi gmp gnutls kvazaar lame libaom libass libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus shine snappy soxr speex twolame vid.stab vo-amrwbenc wavpack x264 x265 xvidcore |
+fontconfig freetype fribidi gmp gnutls kvazaar lame libaom libass libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus shine snappy soxr speex twolame vo-amrwbenc dav1d |
+fontconfig freetype fribidi gmp gnutls kvazaar lame libaom libass libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus shine snappy soxr speex twolame vid.stab vo-amrwbenc dav1d x264 x265 xvidcore |
android system libraries |
diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
index cdb571a0..b963238d 100644
--- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
+++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
@@ -32,6 +32,7 @@ class Packages {
static {
supportedExternalLibraries = new ArrayList<>();
+ supportedExternalLibraries.add("dav1d");
supportedExternalLibraries.add("fontconfig");
supportedExternalLibraries.add("freetype");
supportedExternalLibraries.add("fribidi");
@@ -59,7 +60,6 @@ class Packages {
supportedExternalLibraries.add("speex");
supportedExternalLibraries.add("tesseract");
supportedExternalLibraries.add("twolame");
- supportedExternalLibraries.add("wavpack");
supportedExternalLibraries.add("x264");
supportedExternalLibraries.add("x265");
supportedExternalLibraries.add("xvid");
@@ -129,7 +129,8 @@ static String getPackageName() {
}
if (fullGpl) {
- if (externalLibraryList.contains("fontconfig") &&
+ if (externalLibraryList.contains("dav1d") &&
+ externalLibraryList.contains("fontconfig") &&
externalLibraryList.contains("freetype") &&
externalLibraryList.contains("fribidi") &&
externalLibraryList.contains("gmp") &&
@@ -152,7 +153,6 @@ static String getPackageName() {
externalLibraryList.contains("soxr") &&
externalLibraryList.contains("speex") &&
externalLibraryList.contains("twolame") &&
- externalLibraryList.contains("wavpack") &&
externalLibraryList.contains("x264") &&
externalLibraryList.contains("x265") &&
externalLibraryList.contains("xvid")) {
@@ -163,7 +163,8 @@ static String getPackageName() {
}
if (full) {
- if (externalLibraryList.contains("fontconfig") &&
+ if (externalLibraryList.contains("dav1d") &&
+ externalLibraryList.contains("fontconfig") &&
externalLibraryList.contains("freetype") &&
externalLibraryList.contains("fribidi") &&
externalLibraryList.contains("gmp") &&
@@ -184,8 +185,7 @@ static String getPackageName() {
externalLibraryList.contains("snappy") &&
externalLibraryList.contains("soxr") &&
externalLibraryList.contains("speex") &&
- externalLibraryList.contains("twolame") &&
- externalLibraryList.contains("wavpack")) {
+ externalLibraryList.contains("twolame")) {
return "full";
} else {
return "custom";
@@ -193,7 +193,8 @@ static String getPackageName() {
}
if (video) {
- if (externalLibraryList.contains("fontconfig") &&
+ if (externalLibraryList.contains("dav1d") &&
+ externalLibraryList.contains("fontconfig") &&
externalLibraryList.contains("freetype") &&
externalLibraryList.contains("fribidi") &&
externalLibraryList.contains("kvazaar") &&
@@ -218,8 +219,7 @@ static String getPackageName() {
externalLibraryList.contains("shine") &&
externalLibraryList.contains("soxr") &&
externalLibraryList.contains("speex") &&
- externalLibraryList.contains("twolame") &&
- externalLibraryList.contains("wavpack")) {
+ externalLibraryList.contains("twolame")) {
return "audio";
} else {
return "custom";
diff --git a/android/ffmpeg-kit-android-lib/src/test/java/com/arthenica/ffmpegkit/FFmpegKitConfigTest.java b/android/ffmpeg-kit-android-lib/src/test/java/com/arthenica/ffmpegkit/FFmpegKitConfigTest.java
index 0f53b67c..3c641d16 100644
--- a/android/ffmpeg-kit-android-lib/src/test/java/com/arthenica/ffmpegkit/FFmpegKitConfigTest.java
+++ b/android/ffmpeg-kit-android-lib/src/test/java/com/arthenica/ffmpegkit/FFmpegKitConfigTest.java
@@ -92,6 +92,7 @@ public void getExternalLibraries() {
final List supportedExternalLibraries = new ArrayList<>();
supportedExternalLibraries.add("chromaprint");
+ supportedExternalLibraries.add("dav1d");
supportedExternalLibraries.add("fontconfig");
supportedExternalLibraries.add("freetype");
supportedExternalLibraries.add("fribidi");
@@ -118,7 +119,6 @@ public void getExternalLibraries() {
supportedExternalLibraries.add("speex");
supportedExternalLibraries.add("tesseract");
supportedExternalLibraries.add("twolame");
- supportedExternalLibraries.add("wavpack");
supportedExternalLibraries.add("x264");
supportedExternalLibraries.add("x265");
supportedExternalLibraries.add("xvidcore");
diff --git a/apple.sh b/apple.sh
index 17d10172..549c402a 100755
--- a/apple.sh
+++ b/apple.sh
@@ -45,6 +45,7 @@ After that this script should be used to create an umbrella xcframework.\n"
echo -e "Libraries:"
echo -e " --full\t\t\tbuilds umbrella xcframeworks all non-GPL external libraries"
echo -e " --enable-chromaprint\t\tbuild umbrella xcframework for chromaprint [no]"
+ echo -e " --enable-dav1d\t\tbuild umbrella xcframework for dav1d [no]"
echo -e " --enable-fontconfig\t\tbuild umbrella xcframework for fontconfig [no]"
echo -e " --enable-freetype\t\tbuild umbrella xcframework for freetype [no]"
echo -e " --enable-fribidi\t\tbuild umbrella xcframework for fribidi [no]"
@@ -70,8 +71,7 @@ After that this script should be used to create an umbrella xcframework.\n"
echo -e " --enable-speex\t\tbuild umbrella xcframework for speex [no]"
echo -e " --enable-tesseract\t\tbuild umbrella xcframework for tesseract [no]"
echo -e " --enable-twolame\t\tbuild umbrella xcframework for twolame [no]"
- echo -e " --enable-vo-amrwbenc\t\tbuild umbrella xcframework for vo-amrwbenc [no]"
- echo -e " --enable-wavpack\t\tbuild umbrella xcframework for wavpack [no]\n"
+ echo -e " --enable-vo-amrwbenc\t\tbuild umbrella xcframework for vo-amrwbenc [no]\n"
echo -e "GPL libraries:"
echo -e " --enable-libvidstab\t\tbuild umbrella xcframework for libvidstab [no]"
diff --git a/apple/src/FFmpegKitConfig.m b/apple/src/FFmpegKitConfig.m
index 25da5956..41152fed 100644
--- a/apple/src/FFmpegKitConfig.m
+++ b/apple/src/FFmpegKitConfig.m
@@ -424,6 +424,7 @@ @implementation FFmpegKitConfig
+ (void)initialize {
supportedExternalLibraries = [[NSMutableArray alloc] init];
+ [supportedExternalLibraries addObject:@"dav1d"];
[supportedExternalLibraries addObject:@"fontconfig"];
[supportedExternalLibraries addObject:@"freetype"];
[supportedExternalLibraries addObject:@"fribidi"];
@@ -452,7 +453,6 @@ + (void)initialize {
[supportedExternalLibraries addObject:@"speex"];
[supportedExternalLibraries addObject:@"tesseract"];
[supportedExternalLibraries addObject:@"twolame"];
- [supportedExternalLibraries addObject:@"wavpack"];
[supportedExternalLibraries addObject:@"x264"];
[supportedExternalLibraries addObject:@"x265"];
[supportedExternalLibraries addObject:@"xvid"];
@@ -755,7 +755,8 @@ + (NSString*)getPackageName {
}
if (fullGpl) {
- if ([enabledLibraryArray containsObject:@"fontconfig"] &&
+ if ([enabledLibraryArray containsObject:@"dav1d"] &&
+ [enabledLibraryArray containsObject:@"fontconfig"] &&
[enabledLibraryArray containsObject:@"freetype"] &&
[enabledLibraryArray containsObject:@"fribidi"] &&
[enabledLibraryArray containsObject:@"gmp"] &&
@@ -779,7 +780,6 @@ + (NSString*)getPackageName {
[enabledLibraryArray containsObject:@"soxr"] &&
[enabledLibraryArray containsObject:@"speex"] &&
[enabledLibraryArray containsObject:@"twolame"] &&
- [enabledLibraryArray containsObject:@"wavpack"] &&
[enabledLibraryArray containsObject:@"x264"] &&
[enabledLibraryArray containsObject:@"x265"] &&
[enabledLibraryArray containsObject:@"xvid"]) {
@@ -790,7 +790,8 @@ + (NSString*)getPackageName {
}
if (full) {
- if ([enabledLibraryArray containsObject:@"fontconfig"] &&
+ if ([enabledLibraryArray containsObject:@"dav1d"] &&
+ [enabledLibraryArray containsObject:@"fontconfig"] &&
[enabledLibraryArray containsObject:@"freetype"] &&
[enabledLibraryArray containsObject:@"fribidi"] &&
[enabledLibraryArray containsObject:@"gmp"] &&
@@ -812,8 +813,7 @@ + (NSString*)getPackageName {
[enabledLibraryArray containsObject:@"snappy"] &&
[enabledLibraryArray containsObject:@"soxr"] &&
[enabledLibraryArray containsObject:@"speex"] &&
- [enabledLibraryArray containsObject:@"twolame"] &&
- [enabledLibraryArray containsObject:@"wavpack"]) {
+ [enabledLibraryArray containsObject:@"twolame"]) {
return @"full";
} else {
return @"custom";
@@ -821,7 +821,8 @@ + (NSString*)getPackageName {
}
if (video) {
- if ([enabledLibraryArray containsObject:@"fontconfig"] &&
+ if ([enabledLibraryArray containsObject:@"dav1d"] &&
+ [enabledLibraryArray containsObject:@"fontconfig"] &&
[enabledLibraryArray containsObject:@"freetype"] &&
[enabledLibraryArray containsObject:@"fribidi"] &&
[enabledLibraryArray containsObject:@"kvazaar"] &&
@@ -847,8 +848,7 @@ + (NSString*)getPackageName {
[enabledLibraryArray containsObject:@"shine"] &&
[enabledLibraryArray containsObject:@"soxr"] &&
[enabledLibraryArray containsObject:@"speex"] &&
- [enabledLibraryArray containsObject:@"twolame"] &&
- [enabledLibraryArray containsObject:@"wavpack"]) {
+ [enabledLibraryArray containsObject:@"twolame"]) {
return @"audio";
} else {
return @"custom";
diff --git a/scripts/android/dav1d.sh b/scripts/android/dav1d.sh
new file mode 100644
index 00000000..e6644c17
--- /dev/null
+++ b/scripts/android/dav1d.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# SET BUILD FLAGS
+CROSS_FILE="${BASEDIR}"/src/"${LIB_NAME}"/package/crossfiles/$ARCH-$FFMPEG_KIT_BUILD_TYPE.meson
+
+create_mason_cross_file "$CROSS_FILE" || return 1
+
+# ALWAYS CLEAN THE PREVIOUS BUILD
+rm -rf "${BUILD_DIR}" || return 1
+
+meson "${BUILD_DIR}" \
+ --cross-file="$CROSS_FILE" \
+ -Db_lto=true \
+ -Db_ndebug=false \
+ -Denable_asm=false \
+ -Denable_tools=false \
+ -Denable_examples=false \
+ -Denable_tests=false || return 1
+
+cd "${BUILD_DIR}" || return 1
+
+ninja -j$(get_cpu_count) || return 1
+
+ninja install || return 1
+
+# MANUALLY COPY PKG-CONFIG FILES
+cp "${BUILD_DIR}"/meson-private/dav1d.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
diff --git a/scripts/android/ffmpeg.sh b/scripts/android/ffmpeg.sh
index 55699fcc..2cdae1b8 100755
--- a/scripts/android/ffmpeg.sh
+++ b/scripts/android/ffmpeg.sh
@@ -92,6 +92,11 @@ for library in {1..58}; do
exit 1
fi
;;
+ dav1d)
+ CFLAGS+=" $(pkg-config --cflags dav1d 2>>"${BASEDIR}"/build.log)"
+ LDFLAGS+=" $(pkg-config --libs --static dav1d 2>>"${BASEDIR}"/build.log)"
+ CONFIGURE_POSTFIX+=" --enable-libdav1d"
+ ;;
fontconfig)
CFLAGS+=" $(pkg-config --cflags fontconfig 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static fontconfig 2>>"${BASEDIR}"/build.log)"
@@ -241,11 +246,6 @@ for library in {1..58}; do
LDFLAGS+=" $(pkg-config --libs --static vo-amrwbenc 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvo-amrwbenc"
;;
- wavpack)
- CFLAGS+=" $(pkg-config --cflags wavpack 2>>"${BASEDIR}"/build.log)"
- LDFLAGS+=" $(pkg-config --libs --static wavpack 2>>"${BASEDIR}"/build.log)"
- CONFIGURE_POSTFIX+=" --enable-libwavpack"
- ;;
x264)
CFLAGS+=" $(pkg-config --cflags x264 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static x264 2>>"${BASEDIR}"/build.log)"
diff --git a/scripts/android/wavpack.sh b/scripts/android/wavpack.sh
deleted file mode 100755
index 20af9000..00000000
--- a/scripts/android/wavpack.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-# ALWAYS CLEAN THE PREVIOUS BUILD
-make distclean 2>/dev/null 1>/dev/null
-
-# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
-if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_wavpack} -eq 1 ]]; then
- autoreconf_library "${LIB_NAME}"
-fi
-
-./configure \
- --prefix="${LIB_INSTALL_PREFIX}" \
- --with-pic \
- --with-sysroot="${ANDROID_SYSROOT}" \
- --without-iconv \
- --enable-static \
- --disable-shared \
- --disable-apps \
- --disable-fast-install \
- --disable-tests \
- --host="${HOST}" || return 1
-
-make -j$(get_cpu_count) || return 1
-
-make install || return 1
-
-# MANUALLY COPY PKG-CONFIG FILES
-cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
diff --git a/scripts/apple/dav1d.sh b/scripts/apple/dav1d.sh
new file mode 100644
index 00000000..b55027aa
--- /dev/null
+++ b/scripts/apple/dav1d.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# SET BUILD FLAGS
+CROSS_FILE="${BASEDIR}"/src/"${LIB_NAME}"/package/crossfiles/$ARCH-$FFMPEG_KIT_BUILD_TYPE.meson
+
+create_mason_cross_file "$CROSS_FILE" || return 1
+
+# ALWAYS CLEAN THE PREVIOUS BUILD
+rm -rf "${BUILD_DIR}" || return 1
+
+meson "${BUILD_DIR}" \
+ --cross-file="$CROSS_FILE" \
+ -Db_lto=false \
+ -Db_ndebug=false \
+ -Denable_asm=false \
+ -Denable_tools=false \
+ -Denable_examples=false \
+ -Denable_tests=false || return 1
+
+cd "${BUILD_DIR}" || return 1
+
+ninja -j$(get_cpu_count) || return 1
+
+ninja install || return 1
+
+# MANUALLY COPY PKG-CONFIG FILES
+cp "${BUILD_DIR}"/meson-private/dav1d.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
diff --git a/scripts/apple/ffmpeg.sh b/scripts/apple/ffmpeg.sh
index a01d8cb1..f74310f4 100755
--- a/scripts/apple/ffmpeg.sh
+++ b/scripts/apple/ffmpeg.sh
@@ -121,6 +121,11 @@ for library in {1..58}; do
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static libchromaprint 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-chromaprint"
;;
+ dav1d)
+ FFMPEG_CFLAGS+=" $(pkg-config --cflags dav1d 2>>"${BASEDIR}"/build.log)"
+ FFMPEG_LDFLAGS+=" $(pkg-config --libs --static dav1d 2>>"${BASEDIR}"/build.log)"
+ CONFIGURE_POSTFIX+=" --enable-libdav1d"
+ ;;
fontconfig)
FFMPEG_CFLAGS+=" $(pkg-config --cflags fontconfig 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static fontconfig 2>>"${BASEDIR}"/build.log)"
@@ -264,11 +269,6 @@ for library in {1..58}; do
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static vo-amrwbenc 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvo-amrwbenc"
;;
- wavpack)
- FFMPEG_CFLAGS+=" $(pkg-config --cflags wavpack 2>>"${BASEDIR}"/build.log)"
- FFMPEG_LDFLAGS+=" $(pkg-config --libs --static wavpack 2>>"${BASEDIR}"/build.log)"
- CONFIGURE_POSTFIX+=" --enable-libwavpack"
- ;;
x264)
FFMPEG_CFLAGS+=" $(pkg-config --cflags x264 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static x264 2>>"${BASEDIR}"/build.log)"
diff --git a/scripts/apple/wavpack.sh b/scripts/apple/wavpack.sh
deleted file mode 100755
index 8130a151..00000000
--- a/scripts/apple/wavpack.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# SET BUILD OPTIONS
-ASM_OPTIONS=""
-case ${ARCH} in
-armv7 | armv7s | arm64*)
- ASM_OPTIONS="--disable-asm"
- ;;
-*)
- ASM_OPTIONS="--enable-asm"
- ;;
-esac
-
-# ALWAYS CLEAN THE PREVIOUS BUILD
-make distclean 2>/dev/null 1>/dev/null
-
-# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
-if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_wavpack} -eq 1 ]]; then
- autoreconf_library "${LIB_NAME}"
-fi
-
-./configure \
- --prefix="${LIB_INSTALL_PREFIX}" \
- --with-pic \
- --with-sysroot="${SDK_PATH}" \
- --without-iconv \
- ${ASM_OPTIONS} \
- --enable-static \
- --disable-shared \
- --disable-apps \
- --disable-fast-install \
- --disable-tests \
- --host="${HOST}" || return 1
-
-make -j$(get_cpu_count) || return 1
-
-make install || return 1
-
-# MANUALLY COPY PKG-CONFIG FILES
-cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
diff --git a/scripts/function-android.sh b/scripts/function-android.sh
index 22312ac6..594f3ada 100755
--- a/scripts/function-android.sh
+++ b/scripts/function-android.sh
@@ -447,6 +447,31 @@ get_ldflags() {
echo "${ARCH_FLAGS} ${OPTIMIZATION_FLAGS} ${COMMON_LINKED_LIBS} -Wl,--hash-style=both -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libunwind.a"
}
+create_mason_cross_file() {
+ cat >"$1" <"$1" <