2025-10-11 03:32:53 +01:00
|
|
|
#!/bin/bash
|
2025-10-11 03:35:57 +01:00
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# Function to build for a target using dockcross
|
|
|
|
|
build_with_dockcross() {
|
|
|
|
|
local docker_image="$1"
|
|
|
|
|
local script_name="$2"
|
|
|
|
|
local output_ext="$3"
|
|
|
|
|
local runtime_dir="$4"
|
|
|
|
|
echo "\n==== Building for $runtime_dir ===="
|
2025-10-11 03:32:53 +01:00
|
|
|
rm -f CMakeCache.txt
|
2025-10-11 03:35:57 +01:00
|
|
|
mkdir -p "$runtime_dir"
|
|
|
|
|
docker run --rm "$docker_image" > "docker/$script_name"
|
|
|
|
|
chmod +x "docker/$script_name"
|
|
|
|
|
"docker/$script_name" cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 .
|
|
|
|
|
"docker/$script_name" make
|
|
|
|
|
mv "libaaruformat.$output_ext" "$runtime_dir/"
|
|
|
|
|
rm -f "docker/$script_name"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Linux targets
|
|
|
|
|
build_with_dockcross dockcross/linux-armv7a-lts dockcross-linux-arm so runtimes/linux-arm/native
|
|
|
|
|
build_with_dockcross dockcross/linux-arm64-lts dockcross-linux-arm64 so runtimes/linux-arm64/native
|
|
|
|
|
build_with_dockcross dockcross/linux-mips dockcross-linux-mips64 so runtimes/linux-mips64/native
|
|
|
|
|
build_with_dockcross dockcross/linux-arm64-musl dockcross-linux-musl-arm64 so runtimes/linux-musl-arm64/native
|
|
|
|
|
build_with_dockcross dockcross/linux-s390x dockcross-linux-s390x so runtimes/linux-s390x/native
|
|
|
|
|
build_with_dockcross dockcross/linux-x64 dockcross-linux-x64 so runtimes/linux-x64/native
|
|
|
|
|
build_with_dockcross dockcross/linux-x86 dockcross-linux-x86 so runtimes/linux-x86/native
|
|
|
|
|
build_with_dockcross dockcross/linux-ppc64le dockcross-linux-ppc64le so runtimes/linux-ppc64le/native
|
|
|
|
|
|
|
|
|
|
# Windows targets
|
|
|
|
|
build_with_dockcross dockcross/windows-armv7 dockcross-win-arm dll runtimes/win-arm/native
|
|
|
|
|
build_with_dockcross dockcross/windows-arm64 dockcross-win-arm64 dll runtimes/win-arm64/native
|
|
|
|
|
build_with_dockcross dockcross/windows-shared-x64 dockcross-win-x64 dll runtimes/win-x64/native
|
|
|
|
|
build_with_dockcross dockcross/windows-shared-x86 dockcross-win-x86 dll runtimes/win-x86/native
|
|
|
|
|
|
|
|
|
|
# Mac OS X targets
|
|
|
|
|
if [[ $(uname) == Darwin ]]; then
|
|
|
|
|
build_macos() {
|
|
|
|
|
local arch="$1"
|
|
|
|
|
local runtime_dir="$2"
|
|
|
|
|
echo "\n==== Building for $runtime_dir ===="
|
|
|
|
|
rm -f CMakeCache.txt
|
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DAARU_MACOS_TARGET_ARCH="$arch" .
|
|
|
|
|
make
|
|
|
|
|
mkdir -p "$runtime_dir"
|
|
|
|
|
mv libaaruformat.dylib "$runtime_dir/"
|
|
|
|
|
}
|
|
|
|
|
build_macos x86_64 runtimes/osx-x64/native
|
|
|
|
|
build_macos arm64 runtimes/osx-arm64/native
|
2025-10-11 03:32:53 +01:00
|
|
|
fi
|