mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 18:39:55 +02:00
52 lines
2.8 KiB
Makefile
52 lines
2.8 KiB
Makefile
.PHONY: package-deb package-rpm package-msix
|
|
|
|
package-deb: ## Build and verify a Debian x64 package (VERSION=x.y.z).
|
|
@test "$(HOST_OS)" = linux || { printf 'Debian packaging requires Linux.\n' >&2; exit 1; }
|
|
@cd $(ROOT); \
|
|
version="$$(packaging/linux/resolve-version.sh "$(VERSION)")"; \
|
|
$(GRADLE) :shared:jvmTest :desktopApp:packageReleaseDeb \
|
|
-Pvnidrop.version="$$version" \
|
|
-Pvnidrop.desktop.rustVariant=release \
|
|
-Pvnidrop.diagnostics.included=false \
|
|
$(GRADLE_RELEASE_FLAGS); \
|
|
mapfile -t packages < <(find desktopApp/build/compose/binaries/main-release/deb -maxdepth 1 -type f -name '*.deb'); \
|
|
(( $${#packages[@]} == 1 )) || { printf 'Expected exactly one Debian package, found %s\n' "$${#packages[@]}" >&2; exit 1; }; \
|
|
output_directory=build/release/linux/deb; \
|
|
output_name="vnidrop_$${version}-1_amd64.deb"; \
|
|
mkdir -p "$$output_directory"; \
|
|
cp "$${packages[0]}" "$$output_directory/$$output_name"; \
|
|
packaging/linux/verify-package.sh deb "$$version" "$$output_directory/$$output_name"; \
|
|
( cd "$$output_directory" && sha256sum "$$output_name" > "$$output_name.sha256" ); \
|
|
printf 'Package: %s/%s\n' "$$output_directory" "$$output_name"
|
|
|
|
package-rpm: ## Build and verify an RPM x64 package (VERSION=x.y.z).
|
|
@test "$(HOST_OS)" = linux || { printf 'RPM packaging requires Linux.\n' >&2; exit 1; }
|
|
@cd $(ROOT); \
|
|
version="$$(packaging/linux/resolve-version.sh "$(VERSION)")"; \
|
|
$(GRADLE) :desktopApp:packageReleaseRpm \
|
|
-Pvnidrop.version="$$version" \
|
|
-Pvnidrop.desktop.rustVariant=release \
|
|
-Pvnidrop.diagnostics.included=false \
|
|
$(GRADLE_RELEASE_FLAGS); \
|
|
mapfile -t packages < <(find desktopApp/build/compose/binaries/main-release/rpm -maxdepth 1 -type f -name '*.rpm'); \
|
|
(( $${#packages[@]} == 1 )) || { printf 'Expected exactly one RPM package, found %s\n' "$${#packages[@]}" >&2; exit 1; }; \
|
|
output_directory=build/release/linux/rpm; \
|
|
output_name="vnidrop-$${version}-1.x86_64.rpm"; \
|
|
mkdir -p "$$output_directory"; \
|
|
cp "$${packages[0]}" "$$output_directory/$$output_name"; \
|
|
packaging/linux/verify-package.sh rpm "$$version" "$$output_directory/$$output_name"; \
|
|
( cd "$$output_directory" && sha256sum "$$output_name" > "$$output_name.sha256" ); \
|
|
printf 'Package: %s/%s\n' "$$output_directory" "$$output_name"
|
|
|
|
package-msix: ## Build and verify an unsigned Windows Store MSIX (VERSION=x.y.z).
|
|
@test "$(HOST_OS)" = windows || { printf 'MSIX packaging requires Windows.\n' >&2; exit 1; }
|
|
cd $(ROOT) && $(GRADLE) :shared:jvmTest :desktopApp:createReleaseDistributable \
|
|
-Pvnidrop.version="$(VERSION)" \
|
|
-Pvnidrop.desktop.rustVariant=release \
|
|
-Pvnidrop.diagnostics.included=false \
|
|
$(GRADLE_RELEASE_FLAGS)
|
|
cd $(ROOT) && $(POWERSHELL) -NoProfile -File packaging/windows/build-msix.ps1 \
|
|
-Version "$(VERSION)" \
|
|
-AppImage desktopApp/build/compose/binaries/main-release/app/VniDrop \
|
|
-OutputDirectory build/release/windows
|