The client was built with Meson, the server with Gradle, and were run by a Makefile. Add a Meson script for the server (which delegates to Gradle), and a parent script to build and install both the client and the server to the system, typically with: meson --buildtype release build cd build ninja sudo ninja install In addition, use a separate Makefile to build a "portable" version of the application (where the client expects the server to be in the current directory). Typically: make release-portable cd dist/scrcpy ./scrcpy This is especially useful for Windows builds, which are not "installed".
19 lines
507 B
Bash
Executable file
19 lines
507 B
Bash
Executable file
#!/bin/bash
|
|
# Wrapper script to invoke gradle from meson
|
|
set -e
|
|
|
|
PROJECT_ROOT="$1"
|
|
OUTPUT="$2"
|
|
BUILDTYPE="$3"
|
|
|
|
# gradlew is in the parent of the server directory
|
|
GRADLE=${GRADLE:-$PROJECT_ROOT/../gradlew}
|
|
|
|
if [[ "$BUILDTYPE" == debug ]]
|
|
then
|
|
"$GRADLE" -p "$PROJECT_ROOT" assembleDebug
|
|
cp "$PROJECT_ROOT/build/outputs/apk/debug/server-debug.apk" "$OUTPUT"
|
|
else
|
|
"$GRADLE" -p "$PROJECT_ROOT" assembleRelease
|
|
cp "$PROJECT_ROOT/build/outputs/apk/release/server-release-unsigned.apk" "$OUTPUT"
|
|
fi
|