mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2025-04-08 08:41:21 +00:00
WIP: Glib building with meson for Android
This commit is contained in:
parent
80611111e9
commit
c88ed31585
1 changed files with 72 additions and 102 deletions
|
@ -17,7 +17,7 @@ parameters:
|
|||
- name: UseCache
|
||||
displayName: Use Dependency Cache
|
||||
type: boolean
|
||||
default: true
|
||||
default: false
|
||||
values:
|
||||
- true
|
||||
- false
|
||||
|
@ -36,15 +36,16 @@ variables:
|
|||
FFI_VERSION: '3.4.2'
|
||||
GETTEXT_VERSION: '0.21'
|
||||
#need to switch to meson build system to use a more recent version
|
||||
GLIB_VERSION: '2.58'
|
||||
GLIB_EXTRAVERSION: '3'
|
||||
GLIB_VERSION: '2.71'
|
||||
GLIB_EXTRAVERSION: '2'
|
||||
OBOE_VERSION: '1.5.0'
|
||||
SNDFILE_VERSION: '1.0.31'
|
||||
INSTPATCH_VERSION: '1.1.6'
|
||||
VORBIS_VERSION: '1.3.7'
|
||||
OGG_VERSION: '1.3.5'
|
||||
OPUS_VERSION: '1.3.1'
|
||||
FLAC_VERSION: '1.3.4'
|
||||
# flac 1.3.3 is completely broken: pkgconfig is incorrectly installed, compilation failure, etc.; use recent master instead
|
||||
FLAC_VERSION: '27c615706cedd252a206dd77e3910dfa395dcc49'
|
||||
|
||||
# Android NDK sources and standalone toolchain is put here
|
||||
DEV: '$(System.DefaultWorkingDirectory)/android-build-root'
|
||||
|
@ -95,6 +96,7 @@ jobs:
|
|||
ANDROID_ARCH: 'armv7a'
|
||||
ANDROID_ABI_CMAKE: 'armeabi-v7a'
|
||||
ANDROID_TARGET_ABI: "eabi"
|
||||
ANDROID_ABI_MESON: 'arm'
|
||||
# the --target to be used by autotools
|
||||
AUTOTOOLS_TARGET: "$(ARCH)-linux-android$(ANDROID_TARGET_ABI)"
|
||||
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux-$(ANDROID_TARGET_ABI)"
|
||||
|
@ -103,6 +105,7 @@ jobs:
|
|||
ANDROID_ARCH: 'aarch64'
|
||||
ANDROID_ABI_CMAKE: 'arm64-v8a'
|
||||
ANDROID_TARGET_ABI:
|
||||
ANDROID_ABI_MESON: 'aarch64'
|
||||
AUTOTOOLS_TARGET: "$(ARCH)-none-linux-android"
|
||||
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux"
|
||||
i686:
|
||||
|
@ -110,6 +113,7 @@ jobs:
|
|||
ANDROID_ARCH: 'i686'
|
||||
ANDROID_ABI_CMAKE: 'x86'
|
||||
ANDROID_TARGET_ABI:
|
||||
ANDROID_ABI_MESON: 'x86'
|
||||
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
||||
#AUTOTOOLS_TARGET: "$(ARCH)-pc-linux"
|
||||
x86_64:
|
||||
|
@ -117,6 +121,7 @@ jobs:
|
|||
ANDROID_ARCH: 'x86_64'
|
||||
ANDROID_ABI_CMAKE: 'x86_64'
|
||||
ANDROID_TARGET_ABI:
|
||||
ANDROID_ABI_MESON: 'x86_64'
|
||||
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
||||
#AUTOTOOLS_TARGET: "$(ARCH)-pc-linux"
|
||||
|
||||
|
@ -159,7 +164,7 @@ jobs:
|
|||
wget https://github.com/xiph/ogg/releases/download/v${OGG_VERSION}/libogg-${OGG_VERSION}.tar.gz
|
||||
tar zxf libogg-${OGG_VERSION}.tar.gz
|
||||
|
||||
wget -O flac-${FLAC_VERSION}.tar.gz https://github.com/xiph/flac/archive/refs/tags/${FLAC_VERSION}.tar.gz
|
||||
wget -O flac-${FLAC_VERSION}.tar.gz https://github.com/xiph/flac/archive/${FLAC_VERSION}.tar.gz
|
||||
tar xf flac-${FLAC_VERSION}.tar.gz
|
||||
|
||||
wget -O opus-${OPUS_VERSION}.tar.gz https://github.com/xiph/opus/archive/refs/tags/v${OPUS_VERSION}.tar.gz
|
||||
|
@ -193,7 +198,7 @@ jobs:
|
|||
|
||||
- script: |
|
||||
set -ex
|
||||
sudo -E apt-get -yq --no-install-suggests --no-install-recommends install gettext cmake zlib1g-dev autogen automake autoconf libtool pkg-config autotools-dev build-essential meson ninja-build
|
||||
sudo -E apt-get -yq --no-install-suggests --no-install-recommends install gettext cmake zlib1g-dev autogen automake autoconf libtool pkg-config autotools-dev build-essential meson ninja-build python3-distutils
|
||||
displayName: 'apt-get install'
|
||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
||||
|
||||
|
@ -277,102 +282,6 @@ jobs:
|
|||
workingDirectory: $(DEV)
|
||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
export PKGCFG=`which pkg-config`
|
||||
pushd glib-${GLIB_VERSION}.${GLIB_EXTRAVERSION}
|
||||
|
||||
cat << EOF > cross-file.txt
|
||||
[host_machine]
|
||||
system = 'android'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'arm'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = '${CC}'
|
||||
cpp = '${CXX}'
|
||||
ar = '${AR}'
|
||||
ld = '${LD}'
|
||||
strip = '${STRIP}'
|
||||
pkgconfig = '${PKGCFG}'
|
||||
|
||||
[built-in options]
|
||||
c_std = 'c11'
|
||||
c_args = ['-fPIC','-I/home/git/work/ndk/builddir/out/include']
|
||||
cpp_args = ['-fPIC','-I/home/git/work/ndk/builddir/out/include']
|
||||
c_link_args = ['-fPIE','-L/home/git/work/ndk/builddir/out/lib']
|
||||
|
||||
pkg_config_path = '${PKG_CONFIG_PATH}'
|
||||
EOF
|
||||
|
||||
cat << EOF > native-file.txt
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
|
||||
[binaries]
|
||||
c = ['false']
|
||||
cpp = ['false']
|
||||
objc = ['false']
|
||||
objcpp = ['false']
|
||||
ar = ['false']
|
||||
pkgconfig = ['false']
|
||||
cmake = ['false']
|
||||
EOF
|
||||
|
||||
cat native-file.txt
|
||||
cat cross-file.txt
|
||||
|
||||
unset AR
|
||||
unset AS
|
||||
unset CC
|
||||
unset CFLAGS
|
||||
unset CPPFLAGS
|
||||
unset CPP
|
||||
unset CXXFLAGS
|
||||
unset CXX
|
||||
unset LDFLAGS
|
||||
unset LD
|
||||
unset STRIP
|
||||
|
||||
meson \
|
||||
--cross-file cross-file.txt \
|
||||
--native-file native-file.txt \
|
||||
--prefix=${PREFIX} \
|
||||
--libdir=lib \
|
||||
-Ddebug=false \
|
||||
--default-library=both \
|
||||
-Doptimization=s \
|
||||
--backend=ninja \
|
||||
--wrap-mode=nodownload \
|
||||
-Dinternal_pcre=true \
|
||||
-Dlibmount=false \
|
||||
-Ddtrace=false \
|
||||
-Diconv=auto \
|
||||
-Dxattr=false \
|
||||
-Dgtk_doc=false \
|
||||
_builddir \
|
||||
.
|
||||
ninja
|
||||
popd
|
||||
displayName: 'Compile glib (meson)'
|
||||
workingDirectory: $(DEV)
|
||||
enabled: 'false'
|
||||
|
||||
- script: |
|
||||
pushd glib-${GLIB_VERSION}.${GLIB_EXTRAVERSION}
|
||||
cat _builddir/meson-logs/meson-log.txt
|
||||
popd
|
||||
displayName: 'Meson LOG'
|
||||
workingDirectory: $(DEV)
|
||||
condition: failed()
|
||||
enabled: 'false'
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
|
||||
|
@ -462,8 +371,69 @@ jobs:
|
|||
popd
|
||||
displayName: 'Compile glib'
|
||||
workingDirectory: $(DEV)
|
||||
enabled: 'false'
|
||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
export PKGCFG=`which pkg-config`
|
||||
pushd glib-${GLIB_VERSION}.${GLIB_EXTRAVERSION}
|
||||
|
||||
cat << EOF > cross_file.ini
|
||||
[host_machine]
|
||||
system = 'android'
|
||||
cpu_family = '${ANDROID_ABI_MESON}'
|
||||
cpu = '${ANDROID_ARCH}'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = '${NDK_TOOLCHAIN}/bin/${CC}'
|
||||
cpp = '${NDK_TOOLCHAIN}/bin/${CXX}'
|
||||
ar = '${NDK_TOOLCHAIN}/bin/${AR}'
|
||||
as = '${NDK_TOOLCHAIN}/bin/${AS}'
|
||||
ld = '${NDK_TOOLCHAIN}/bin/${LD}'
|
||||
strip = '${NDK_TOOLCHAIN}/bin/${STRIP}'
|
||||
ranlib = '${NDK_TOOLCHAIN}/bin/${RANLIB}'
|
||||
pkgconfig = '${PKGCFG}'
|
||||
|
||||
[properties]
|
||||
prefix = '${PREFIX}'
|
||||
c_args = '${CFLAGS}'
|
||||
cpp_args = '${CXXFLAGS}'
|
||||
sys_root = '${NDK_TOOLCHAIN}/sysroot'
|
||||
pkg_config_libdir = '${PKG_CONFIG_LIBDIR}'
|
||||
c_link_args = '${LDFLAGS}'
|
||||
|
||||
[project options]
|
||||
libmount = 'disabled'
|
||||
xattr = false
|
||||
selinux = 'disabled'
|
||||
nls = 'disabled'
|
||||
glib_debug = 'disabled'
|
||||
glib_assert = false
|
||||
glib_checks = false
|
||||
libelf = 'disabled'
|
||||
EOF
|
||||
|
||||
cat cross_file.ini
|
||||
|
||||
env -i bash -c "export PATH && meson setup build --cross-file cross_file.ini --prefix=${PREFIX}"
|
||||
ninja -C build
|
||||
ninja -C build install
|
||||
popd
|
||||
displayName: 'Compile glib (meson)'
|
||||
workingDirectory: $(DEV)
|
||||
|
||||
|
||||
- script: |
|
||||
pushd glib-${GLIB_VERSION}.${GLIB_EXTRAVERSION}
|
||||
cat _builddir/meson-logs/meson-log.txt
|
||||
popd
|
||||
displayName: 'Meson LOG'
|
||||
workingDirectory: $(DEV)
|
||||
condition: failed()
|
||||
enabled: 'false'
|
||||
|
||||
- template: cmake-android.yml
|
||||
parameters:
|
||||
sourceDir: 'libogg-$(OGG_VERSION)'
|
||||
|
|
Loading…
Reference in a new issue