Files
keluna/tools/build-samples-linux-amd64
mhoennig f7ca150e1f
werkator build succeeded after 01:50
werkator/samples-linux-amd64 build succeeded after 02:49
Build downloadable AMD64 desktop samples after successful tests
2026-09-16 13:15:34 +02:00

40 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
[[ "$(uname -m)" == x86_64 ]] || { echo 'This build targets Linux AMD64 and requires an AMD64 host.' >&2; exit 1; }
rm -rf build/distributions build/samples-linux-amd64
./gradlew --console=plain --no-daemon -Pwebview=true \
:keluna-platform-linux:clean \
:keluna-platform-linux:linkReleaseExecutableLinuxX64 \
:keluna-platform-linux:linkSnakeReleaseExecutableLinuxX64 \
:keluna-platform-linux:linkWorkshopReleaseExecutableLinuxX64
package=build/samples-linux-amd64/keluna-samples-linux-amd64
mkdir -p "$package" build/distributions
install -m 755 keluna-platform-linux/build/bin/linuxX64/releaseExecutable/keluna-platform-linux.kexe "$package/counter"
install -m 755 keluna-platform-linux/build/bin/linuxX64/snakeReleaseExecutable/snake.kexe "$package/snake"
install -m 755 keluna-platform-linux/build/bin/linuxX64/workshopReleaseExecutable/workshop.kexe "$package/workshop"
cp LICENSE NOTICE "$package/"
cp docs/samples-linux-amd64.md "$package/README.md"
git rev-parse HEAD > "$package/COMMIT"
# Preserve the notices shipped with installed Kotlin/Native distributions as well.
konan_data="${KONAN_DATA_DIR:-$HOME/.konan}"
shopt -s nullglob
license_dirs=("$konan_data"/kotlin-native-*/licenses)
((${#license_dirs[@]})) || { echo "Kotlin/Native license files not found under $konan_data" >&2; exit 1; }
for licenses in "${license_dirs[@]}"; do
distribution="$(basename "$(dirname "$licenses")")"
mkdir -p "$package/licenses/$distribution"
cp -R "$licenses/." "$package/licenses/$distribution/"
done
for executable in counter snake workshop; do
file "$package/$executable"
linkage="$(ldd -r "$package/$executable" 2>&1)"
if [[ "$linkage" == *'not found'* || "$linkage" == *'undefined symbol'* ]]; then
printf '%s\n' "$linkage" >&2
exit 1
fi
done
tar -czf build/distributions/keluna-samples-linux-amd64.tar.gz -C build/samples-linux-amd64 keluna-samples-linux-amd64
(cd build/distributions && sha256sum keluna-samples-linux-amd64.tar.gz > keluna-samples-linux-amd64.tar.gz.sha256)