c2127d0819
Since Meson 0.44, subproject_dir may not be '.' anymore. This implies we must move app/ and server/ to a subprojects/ directory, which requires to also change some gradle files. Instead, just use subdir(), with options to disable building of the app or the server.
62 lines
1.8 KiB
Makefile
62 lines
1.8 KiB
Makefile
# This makefile provides recipes to build a "portable" version of scrcpy.
|
|
#
|
|
# Here, "portable" means that the client and server binaries are expected to be
|
|
# anywhere, but in the same directory, instead of well-defined separate
|
|
# locations (e.g. /usr/bin/scrcpy and /usr/share/scrcpy/scrcpy-server.jar).
|
|
#
|
|
# In particular, this implies to change the location from where the client push
|
|
# the server to the device.
|
|
#
|
|
# "make release-portable" builds a zip containing the client and the server.
|
|
#
|
|
# This is a simple Makefile because Meson is not flexible enough to execute some
|
|
# arbitrary commands.
|
|
|
|
.PHONY: default clean release-portable dist-portable dist-portable-zip sums test check
|
|
|
|
GRADLE ?= ./gradlew
|
|
|
|
PORTABLE_BUILD_DIR := build-portable
|
|
DIST := dist
|
|
TARGET_DIR := scrcpy
|
|
|
|
VERSION := $(shell git describe --tags --always)
|
|
TARGET := $(TARGET_DIR)-$(VERSION).zip
|
|
|
|
default:
|
|
@echo 'You must specify a target. Try: make release-portable'
|
|
|
|
clean:
|
|
$(GRADLE) clean
|
|
rm -rf "$(PORTABLE_BUILD_DIR)" "$(DIST)"
|
|
|
|
build-portable:
|
|
[ -d "$(PORTABLE_BUILD_DIR)" ] || ( mkdir "$(PORTABLE_BUILD_DIR)" && \
|
|
meson "$(PORTABLE_BUILD_DIR)" \
|
|
--buildtype release --strip -Db_lto=true \
|
|
-Doverride_server_jar=scrcpy-server.jar )
|
|
ninja -C "$(PORTABLE_BUILD_DIR)"
|
|
|
|
release-portable: clean dist-portable-zip sums
|
|
@echo "Release created in $(DIST)/."
|
|
|
|
dist-portable: build-portable
|
|
mkdir -p "$(DIST)/$(TARGET_DIR)"
|
|
cp "$(PORTABLE_BUILD_DIR)"/server/scrcpy-server.jar "$(DIST)/$(TARGET_DIR)/"
|
|
cp "$(PORTABLE_BUILD_DIR)"/app/scrcpy "$(DIST)/$(TARGET_DIR)/"
|
|
|
|
dist-portable-zip: dist-portable
|
|
cd "$(DIST)"; \
|
|
zip -r "$(TARGET)" "$(TARGET_DIR)"
|
|
|
|
sums:
|
|
cd "$(DIST)"; \
|
|
sha256sum *.zip > SHA256SUM.txt
|
|
|
|
test: build-portable
|
|
$(GRADLE) test
|
|
ninja -C "$(PORTABLE_BUILD_DIR)" test
|
|
|
|
check: build-portable
|
|
$(GRADLE) check
|
|
ninja -C "$(PORTABLE_BUILD_DIR)" test
|