40 lines
2.1 KiB
Bash
Executable File
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)
|