Skip to content

Commit 5542d29

Browse files
committed
fix: android, build flac manually
also use pkg-config for android, by setting the correct pkg_conf_libdir variable and using the host pkg-config
1 parent 16cdae5 commit 5542d29

File tree

3 files changed

+76
-18
lines changed

3 files changed

+76
-18
lines changed

platforms/android/app/jni/Android.mk

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,6 @@ LOCAL_SRC_FILES := $(shell find "${SUBPROJECTS_PATH}" -name libogg.so)
5050
include $(PREBUILT_SHARED_LIBRARY)
5151

5252

53-
include $(CLEAR_VARS)
54-
LOCAL_MODULE := flac
55-
LOCAL_SRC_FILES := $(shell find "${SUBPROJECTS_PATH}" -name libFLAC.so)
56-
include $(PREBUILT_SHARED_LIBRARY)
57-
58-
5953
include $(CLEAR_VARS)
6054
LOCAL_MODULE := sdl2_image
6155
LOCAL_SRC_FILES := $(shell find "${SUBPROJECTS_PATH}" -name libsdl2image.so)
@@ -105,7 +99,7 @@ include $(PREBUILT_SHARED_LIBRARY)
10599

106100
include $(CLEAR_VARS)
107101
LOCAL_MODULE := main
108-
LOCAL_SHARED_LIBRARIES := SDL2 sdl2_ttf freetype png16 sdl2_mixer vorbis vorbisfile ogg flac sdl2_image fmt keyutils oopetris_core oopetris_recordings oopetris_graphics oopetris
102+
LOCAL_SHARED_LIBRARIES := SDL2 sdl2_ttf freetype png16 sdl2_mixer vorbis vorbisfile ogg sdl2_image fmt keyutils oopetris_core oopetris_recordings oopetris_graphics oopetris
109103
LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
110104
LOCAL_LDFLAGS := -Wl,--no-undefined
111105
include $(BUILD_SHARED_LIBRARY)

platforms/build-android.sh

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,15 +165,15 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
165165

166166
## BUILD dependencies not buildable with meson (to complicated to port)
167167

168-
## build mpg123 with autotools (meson port is to much work atm, for this feature)
168+
## build mpg123 with cmake (meson port is to much work atm, for this feature)
169169

170170
LAST_DIR="$PWD"
171171

172172
cd "$SYS_ROOT"
173173

174174
BUILD_DIR_MPG123="build-mpg123"
175175

176-
BUILD_MPG123_FILE="$SYS_ROOT/$BUILD_DIR_MPG123/build_succesfull.meta"
176+
BUILD_MPG123_FILE="$SYS_ROOT/$BUILD_DIR_MPG123/build_successfull.meta"
177177

178178
if [ "$COMPILE_TYPE" == "complete_rebuild" ] || ! [ -e "$BUILD_MPG123_FILE" ]; then
179179

@@ -195,8 +195,6 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
195195

196196
cd ports/cmake/
197197

198-
BUILD_DIR_MPG123="build-mpg123"
199-
200198
mkdir -p "$BUILD_DIR_MPG123"
201199

202200
cd "$BUILD_DIR_MPG123"
@@ -225,6 +223,64 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
225223

226224
cd "$LAST_DIR"
227225

226+
## build flac with cmake (meson port doesn't work for 32 bits machines atm) (we need to check for fseeko and ftello correctly in there)
227+
228+
LAST_DIR="$PWD"
229+
230+
cd "$SYS_ROOT"
231+
232+
BUILD_DIR_FLAC="build-flac"
233+
234+
BUILD_FLAC_FILE="$SYS_ROOT/$BUILD_DIR_FLAC/build_successfull.meta"
235+
236+
if [ "$COMPILE_TYPE" == "complete_rebuild" ] || ! [ -e "$BUILD_FLAC_FILE" ]; then
237+
238+
mkdir -p "$BUILD_DIR_FLAC"
239+
240+
cd "$BUILD_DIR_FLAC"
241+
242+
FLAC_VERSION="1.4.3"
243+
244+
if [ ! -e "flac-$FLAC_VERSION.tar.xz" ]; then
245+
wget -q "https://github.com/xiph/flac/releases/download/$FLAC_VERSION/flac-$FLAC_VERSION.tar.xz"
246+
fi
247+
248+
if [ ! -d "flac-$FLAC_VERSION" ]; then
249+
tar -xf "flac-$FLAC_VERSION.tar.xz"
250+
fi
251+
252+
cd "flac-$FLAC_VERSION"
253+
254+
mkdir -p "$BUILD_DIR_FLAC"
255+
256+
cd "$BUILD_DIR_FLAC"
257+
258+
cmake .. --install-prefix "$SYS_ROOT/usr" "-DCMAKE_SYSROOT=$SYS_ROOT" -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
259+
"-DCMAKE_SYSTEM_NAME=Android" \
260+
"-DCMAKE_SYSTEM_VERSION=$SDK_VERSION" \
261+
"-DCMAKE_ANDROID_ARCH_ABI=$KEY" \
262+
"-DCMAKE_ANDROID_NDK=$ANDROID_NDK" \
263+
"-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" \
264+
-DBUILD_PROGRAMS=OFF \
265+
-DBUILD_EXAMPLES=OFF \
266+
-DBUILD_TESTING=OFF \
267+
-DBUILD_CXXLIBS=OFF \
268+
-DBUILD_DOCS=OFF \
269+
-DWITH_OGG=OFF \
270+
-DBUILD_SHARED_LIBS=OFF \
271+
-DINSTALL_PKGCONFIG_MODULES=ON
272+
273+
274+
cmake --build .
275+
276+
cmake --install .
277+
278+
touch "$BUILD_FLAC_FILE"
279+
280+
fi
281+
282+
cd "$LAST_DIR"
283+
228284
## build openssl with make (meson port is to much work atm, for this feature)
229285

230286
LAST_DIR="$PWD"
@@ -233,7 +289,7 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
233289

234290
BUILD_DIR_OPENSSL="build-openssl"
235291

236-
BUILD_OPENSSL_FILE="$SYS_ROOT/$BUILD_DIR_OPENSSL/build_succesfull.meta"
292+
BUILD_OPENSSL_FILE="$SYS_ROOT/$BUILD_DIR_OPENSSL/build_successfull.meta"
237293

238294
if [ "$COMPILE_TYPE" == "complete_rebuild" ] || ! [ -e "$BUILD_OPENSSL_FILE" ]; then
239295

@@ -297,7 +353,7 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
297353
MESON_CPU_FAMILY="aarch64"
298354
fi
299355

300-
export COMPILE_FLAGS="'--sysroot=${SYS_ROOT:?}','-fPIE','-fPIC','--target=$ARM_COMPILER_TRIPLE','-D__ANDROID_API__=$SDK_VERSION', '-DAUDIO_PREFER_MP3'"
356+
export COMPILE_FLAGS="'--sysroot=${SYS_ROOT:?}','-fPIE','-fPIC','--target=$ARM_COMPILER_TRIPLE','-D__ANDROID_API__=$SDK_VERSION', '-DBITNESS=$BITNESS','-DAUDIO_PREFER_MP3'"
301357

302358
export LINK_FLAGS="'-fPIE','-L$SYS_ROOT/usr/lib'"
303359

@@ -322,7 +378,7 @@ as = '$AS'
322378
ranlib = '$RANLIB'
323379
strip = '$STRIP'
324380
objcopy = '$OBJCOPY'
325-
pkg-config = 'false'
381+
pkg-config = 'pkg-config'
326382
llvm-config = '$LLVM_CONFIG'
327383
328384
[built-in options]
@@ -337,7 +393,7 @@ prefix = '$SYS_ROOT'
337393
libdir = '$LIB_PATH'
338394
339395
[properties]
340-
pkg_config_libdir = '$LIB_PATH'
396+
pkg_config_libdir = '$SYS_ROOT/usr/lib/pkgconfig'
341397
sys_root = '${SYS_ROOT}'
342398
343399
EOF
@@ -367,7 +423,7 @@ meson.override_dependency(
367423
EOF
368424
fi
369425

370-
export LIBRARY_PATH="$LIBRARY_PATH:usr/lib/$ARM_NAME_TRIPLE/$SDK_VERSION:$LIB_PATH"
426+
export LIBRARY_PATH="$LIBRARY_PATH:$SYS_ROOT/usr/lib/$ARM_NAME_TRIPLE/$SDK_VERSION:$LIB_PATH"
371427

372428
if [ "$COMPILE_TYPE" == "complete_rebuild" ] || [ ! -e "$BUILD_DIR" ]; then
373429

@@ -376,7 +432,7 @@ EOF
376432
"--prefix=$SYS_ROOT" \
377433
"--wipe" \
378434
"--includedir=$INC_PATH" \
379-
"--libdir=usr/lib/$ARM_NAME_TRIPLE/$SDK_VERSION" \
435+
"--libdir=$SYS_ROOT/usr/lib/$ARM_NAME_TRIPLE/$SDK_VERSION" \
380436
--cross-file "./platforms/crossbuild-android-$ARM_TARGET_ARCH.ini" \
381437
"-Dbuildtype=$BUILDTYPE" \
382438
-Dsdl2:use_hidapi=enabled \

tools/dependencies/meson.build

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,15 @@ if meson.is_cross_build()
2929
# )
3030
# endif
3131
elif host_machine.system() == 'android'
32-
# noop
32+
33+
flac_dep = dependency(
34+
'flac',
35+
allow_fallback: false,
36+
required: true,
37+
)
38+
39+
meson.override_dependency('libflac', flac_dep)
40+
3341
elif host_machine.system() == 'emscripten'
3442

3543
# check if the command line flags are supported and a simple example compiles

0 commit comments

Comments
 (0)