#!/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)