build-android-deps: made directory locations customizable

By setting env variables BUILDDIR, PREFIXDIR and DOWNLOADDIR
This commit is contained in:
loonycyborg 2024-07-06 17:06:51 +03:00
parent a7068a87c2
commit b71b82ebf8
No known key found for this signature in database
GPG key ID: 6E8233FAB8F26D61
2 changed files with 26 additions and 19 deletions

View file

@ -26,20 +26,26 @@ https://curl.se/download/curl-8.1.1.tar.xz
)
PACKAGES=()
./setup-toolchains.py
ORIGIN=`pwd`
: ${BUILDDIR:=/tmp/android-build}
: ${PREFIXDIR:=/tmp/android-prefix}
: ${DOWNLOADDIR:=/tmp/android-dl}
mkdir -p /tmp/android-build/src
pushd /tmp/android-build/src
export PREFIXDIR
./setup-toolchains.py
mkdir -p $BUILDDIR/src
pushd $BUILDDIR/src
for url in ${SOURCES[@]}
do
wget -nc $url
wget -nc $url -P $DOWNLOADDIR
archive=`basename $url`
package=${archive%.*.*}
if [ ! -d $package ]
then
tar -xf $archive
tar -xf $DOWNLOADDIR/$archive
if [ -f $ORIGIN/${package%-*}.patch ]
then
patch=$ORIGIN/${package%-*}.patch
@ -71,13 +77,13 @@ do
done
popd
for prefix in /tmp/android-prefix/*
for prefix in $PREFIXDIR/*
do
abi=`basename $prefix`
rm -rf /tmp/android-build/$abi
rm -rf $BUILDDIR/$abi
. /tmp/android-prefix/$abi/android.env
export PKG_CONFIG_PATH=/tmp/android-prefix/$abi/lib/pkgconfig
. $PREFIXDIR/$abi/android.env
export PKG_CONFIG_PATH=$PREFIXDIR/$abi/lib/pkgconfig
for package in ${PACKAGES[@]}
do
@ -97,13 +103,13 @@ do
host_arg="--host=$HOST"
src_dir=/tmp/android-build/src/$package
build_dir=/tmp/android-build/$abi/$package
src_dir=$BUILDDIR/src/$package
build_dir=$BUILDDIR/$abi/$package
mkdir -p $build_dir
if [ -f $src_dir/configure ]
then
pushd $build_dir
$src_dir/configure $host_arg --prefix=/tmp/android-prefix/$abi $extra_flags
$src_dir/configure $host_arg --prefix=$PREFIXDIR/$abi $extra_flags
make -j`nproc`
make install
popd
@ -116,7 +122,7 @@ do
then
make clean
fi
./Configure --prefix=/tmp/android-prefix/$abi $extra_flags android-$ANDROID_ARCH -D__ANDROID_API__=$API
./Configure --prefix=$PREFIXDIR/$abi $extra_flags android-$ANDROID_ARCH -D__ANDROID_API__=$API
make -j`nproc`
make install
popd
@ -124,7 +130,7 @@ do
fi
if [ -f $src_dir/meson.build ]
then
meson setup --cross-file /tmp/android-prefix/$abi/android.ini $build_dir $src_dir -Dprefix=/tmp/android-prefix/$abi $extra_flags
meson setup --cross-file $PREFIXDIR/$abi/android.ini $build_dir $src_dir -Dprefix=$PREFIXDIR/$abi $extra_flags
ninja -C $build_dir
ninja -C $build_dir install
continue
@ -145,7 +151,7 @@ do
BCABI="sysv"
BOOSTARCH="x86"
fi
./b2 --user-config=/tmp/android-prefix/$abi/android.jam --prefix=/tmp/android-prefix/$abi target-os=android architecture=$BOOSTARCH address-model=$BITNESS abi=$BCABI binary-format=elf install $extra_flags
./b2 --user-config=$PREFIXDIR/$abi/android.jam --prefix=$PREFIXDIR/$abi target-os=android architecture=$BOOSTARCH address-model=$BITNESS abi=$BCABI binary-format=elf install $extra_flags
popd
continue
fi
@ -153,17 +159,17 @@ do
then
pushd $src_dir
make clean
make install CC="$CC -fPIC" AR="$AR" RANLIB="$RANLIB" PREFIX=/tmp/android-prefix/$abi
make install CC="$CC -fPIC" AR="$AR" RANLIB="$RANLIB" PREFIX=$PREFIXDIR/$abi
popd
continue
fi
done
done
cd /tmp/android-build/src/SDL2-ndk-build
cd $BUILDDIR/src/SDL2-ndk-build
$NDK/ndk-build
for lib in libs/*/*.so
do
instdir=$(basename $(dirname $lib))
cp $lib /tmp/android-prefix/$instdir/lib/
cp $lib $PREFIXDIR/$instdir/lib/
done

View file

@ -2,6 +2,7 @@
import json
from subprocess import run
from pathlib import Path
from os import environ
ndk = Path("/opt/android-sdk-update-manager/ndk/23.1.7779620")
api = 29
@ -10,7 +11,7 @@ abis = json.load(open(ndk / "meta/abis.json"))
for abi, abi_data in abis.items():
triple = abi_data["llvm_triple"]
arch = abi_data["arch"]
prefix = Path("/tmp/android-prefix/" + abi)
prefix = Path(environ.get("PREFIXDIR", "/tmp/android-prefix")) / abi
prefix.mkdir(parents = True, exist_ok = True)
with open(prefix / "android.env", "w") as envfile:
envfile.write(f"""