mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2025-06-04 11:01:11 +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
|
- name: UseCache
|
||||||
displayName: Use Dependency Cache
|
displayName: Use Dependency Cache
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: false
|
||||||
values:
|
values:
|
||||||
- true
|
- true
|
||||||
- false
|
- false
|
||||||
|
@ -36,15 +36,16 @@ variables:
|
||||||
FFI_VERSION: '3.4.2'
|
FFI_VERSION: '3.4.2'
|
||||||
GETTEXT_VERSION: '0.21'
|
GETTEXT_VERSION: '0.21'
|
||||||
#need to switch to meson build system to use a more recent version
|
#need to switch to meson build system to use a more recent version
|
||||||
GLIB_VERSION: '2.58'
|
GLIB_VERSION: '2.71'
|
||||||
GLIB_EXTRAVERSION: '3'
|
GLIB_EXTRAVERSION: '2'
|
||||||
OBOE_VERSION: '1.5.0'
|
OBOE_VERSION: '1.5.0'
|
||||||
SNDFILE_VERSION: '1.0.31'
|
SNDFILE_VERSION: '1.0.31'
|
||||||
INSTPATCH_VERSION: '1.1.6'
|
INSTPATCH_VERSION: '1.1.6'
|
||||||
VORBIS_VERSION: '1.3.7'
|
VORBIS_VERSION: '1.3.7'
|
||||||
OGG_VERSION: '1.3.5'
|
OGG_VERSION: '1.3.5'
|
||||||
OPUS_VERSION: '1.3.1'
|
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
|
# Android NDK sources and standalone toolchain is put here
|
||||||
DEV: '$(System.DefaultWorkingDirectory)/android-build-root'
|
DEV: '$(System.DefaultWorkingDirectory)/android-build-root'
|
||||||
|
@ -95,6 +96,7 @@ jobs:
|
||||||
ANDROID_ARCH: 'armv7a'
|
ANDROID_ARCH: 'armv7a'
|
||||||
ANDROID_ABI_CMAKE: 'armeabi-v7a'
|
ANDROID_ABI_CMAKE: 'armeabi-v7a'
|
||||||
ANDROID_TARGET_ABI: "eabi"
|
ANDROID_TARGET_ABI: "eabi"
|
||||||
|
ANDROID_ABI_MESON: 'arm'
|
||||||
# the --target to be used by autotools
|
# the --target to be used by autotools
|
||||||
AUTOTOOLS_TARGET: "$(ARCH)-linux-android$(ANDROID_TARGET_ABI)"
|
AUTOTOOLS_TARGET: "$(ARCH)-linux-android$(ANDROID_TARGET_ABI)"
|
||||||
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux-$(ANDROID_TARGET_ABI)"
|
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux-$(ANDROID_TARGET_ABI)"
|
||||||
|
@ -103,6 +105,7 @@ jobs:
|
||||||
ANDROID_ARCH: 'aarch64'
|
ANDROID_ARCH: 'aarch64'
|
||||||
ANDROID_ABI_CMAKE: 'arm64-v8a'
|
ANDROID_ABI_CMAKE: 'arm64-v8a'
|
||||||
ANDROID_TARGET_ABI:
|
ANDROID_TARGET_ABI:
|
||||||
|
ANDROID_ABI_MESON: 'aarch64'
|
||||||
AUTOTOOLS_TARGET: "$(ARCH)-none-linux-android"
|
AUTOTOOLS_TARGET: "$(ARCH)-none-linux-android"
|
||||||
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux"
|
#AUTOTOOLS_TARGET: "$(ARCH)-none-linux"
|
||||||
i686:
|
i686:
|
||||||
|
@ -110,6 +113,7 @@ jobs:
|
||||||
ANDROID_ARCH: 'i686'
|
ANDROID_ARCH: 'i686'
|
||||||
ANDROID_ABI_CMAKE: 'x86'
|
ANDROID_ABI_CMAKE: 'x86'
|
||||||
ANDROID_TARGET_ABI:
|
ANDROID_TARGET_ABI:
|
||||||
|
ANDROID_ABI_MESON: 'x86'
|
||||||
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
||||||
#AUTOTOOLS_TARGET: "$(ARCH)-pc-linux"
|
#AUTOTOOLS_TARGET: "$(ARCH)-pc-linux"
|
||||||
x86_64:
|
x86_64:
|
||||||
|
@ -117,6 +121,7 @@ jobs:
|
||||||
ANDROID_ARCH: 'x86_64'
|
ANDROID_ARCH: 'x86_64'
|
||||||
ANDROID_ABI_CMAKE: 'x86_64'
|
ANDROID_ABI_CMAKE: 'x86_64'
|
||||||
ANDROID_TARGET_ABI:
|
ANDROID_TARGET_ABI:
|
||||||
|
ANDROID_ABI_MESON: 'x86_64'
|
||||||
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
AUTOTOOLS_TARGET: "$(ARCH)-pc-linux-android"
|
||||||
#AUTOTOOLS_TARGET: "$(ARCH)-pc-linux"
|
#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
|
wget https://github.com/xiph/ogg/releases/download/v${OGG_VERSION}/libogg-${OGG_VERSION}.tar.gz
|
||||||
tar zxf 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
|
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
|
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: |
|
- script: |
|
||||||
set -ex
|
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'
|
displayName: 'apt-get install'
|
||||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
||||||
|
|
||||||
|
@ -277,102 +282,6 @@ jobs:
|
||||||
workingDirectory: $(DEV)
|
workingDirectory: $(DEV)
|
||||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
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: |
|
- script: |
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
@ -462,8 +371,69 @@ jobs:
|
||||||
popd
|
popd
|
||||||
displayName: 'Compile glib'
|
displayName: 'Compile glib'
|
||||||
workingDirectory: $(DEV)
|
workingDirectory: $(DEV)
|
||||||
|
enabled: 'false'
|
||||||
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
|
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
|
- template: cmake-android.yml
|
||||||
parameters:
|
parameters:
|
||||||
sourceDir: 'libogg-$(OGG_VERSION)'
|
sourceDir: 'libogg-$(OGG_VERSION)'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue