1#!/bin/bash 2set -e 3 4# test locally 5TESTDIR=build_test 6rm -rf "$TESTDIR" 7# run client tests with ASAN enabled 8meson "$TESTDIR" -Db_sanitize=address 9ninja -C"$TESTDIR" test 10 11# test server 12GRADLE=${GRADLE:-./gradlew} 13$GRADLE -p server check 14 15BUILDDIR=build_release 16rm -rf "$BUILDDIR" 17meson "$BUILDDIR" --buildtype release --strip -Db_lto=true 18cd "$BUILDDIR" 19ninja 20cd - 21 22# build Windows releases 23make -f Makefile.CrossWindows 24 25# the generated server must be the same everywhere 26cmp "$BUILDDIR/server/scrcpy-server.jar" dist/scrcpy-win32/scrcpy-server.jar 27cmp "$BUILDDIR/server/scrcpy-server.jar" dist/scrcpy-win64/scrcpy-server.jar 28 29# get version name 30TAG=$(git describe --tags --always) 31 32# create release directory 33mkdir -p "release-$TAG" 34cp "$BUILDDIR/server/scrcpy-server.jar" "release-$TAG/scrcpy-server-$TAG.jar" 35cp "dist/scrcpy-win32-$TAG.zip" "release-$TAG/" 36cp "dist/scrcpy-win64-$TAG.zip" "release-$TAG/" 37 38# generate checksums 39cd "release-$TAG" 40sha256sum "scrcpy-server-$TAG.jar" \ 41 "scrcpy-win32-$TAG.zip" \ 42 "scrcpy-win64-$TAG.zip" > SHA256SUMS.txt 43 44echo "Release generated in release-$TAG/" 45