diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 49 |
1 files changed, 46 insertions, 3 deletions
@@ -12,6 +12,10 @@ deploy_host := deploy@build.r.bdr.sh deploy_path := /srv/http/build.r.bdr.sh/$(app_name)-linux prefix := /usr/local flatpak_cargo_generator := $(HOME)/projects/vendor/flatpak-builder-tools/cargo +linuxdeploy_url := https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-$(shell uname -m).AppImage +linuxdeploy := .cache/linuxdeploy.AppImage +pkgver := $(shell grep '^pkgver=' build-aux/PKGBUILD | cut -d= -f2) +pkgrel := $(shell grep '^pkgrel=' build-aux/PKGBUILD | cut -d= -f2) define sign_and_deploy @./scripts/sign.sh "$(1)" "$(channel)" "$(architecture)" @@ -104,7 +108,38 @@ package-flatpak: update_flatpak_dependencies flatpak-builder --force-clean --user --install-deps-from=flathub --repo=repo --install builddir ./build-aux/systems.tranquil.Map.yml flatpak build-bundle repo $(filename).flatpak systems.tranquil.Map -package: package-rpm package-deb package-tar package-flatpak +package-pacman: + @$(eval staging := $(shell mktemp -d)) + rsync -a --filter=':- .gitignore' --exclude='.git' . $(staging)/src + cp build-aux/PKGBUILD $(staging)/ + cd $(staging) && PKGEXT='.pkg.tar.gz' makepkg -fd + mv $(staging)/$(app_name)-$(pkgver)-$(pkgrel)-$(firstword $(subst -, ,$(target))).pkg.tar.gz $(filename).pkg.tar.gz + @rm -rf $(staging) + +$(linuxdeploy): + @mkdir -p .cache + curl -L -o $(linuxdeploy) $(linuxdeploy_url) + chmod +x $(linuxdeploy) + +package-appimage: build $(linuxdeploy) +ifeq ($(findstring linux,$(target)),linux) + @$(eval appdir := $(shell mktemp -d)) + @install -Dm0755 target/$(target)/$(output_dir)/$(app_name) $(appdir)/usr/bin/$(app_name) + @install -Dm0644 resources/logo.svg $(appdir)/usr/share/icons/hicolor/scalable/apps/systems.tranquil.Map.svg + @install -Dm0644 resources/systems.tranquil.Map.desktop $(appdir)/usr/share/applications/systems.tranquil.Map.desktop + @install -Dm0644 resources/systems.tranquil.Map.metainfo.xml $(appdir)/usr/share/metainfo/systems.tranquil.Map.metainfo.xml + @install -Dm0644 resources/systems.tranquil.Map.service $(appdir)/usr/share/dbus-1/services/systems.tranquil.Map.service + @install -Dm0644 resources/wmap.lang $(appdir)/usr/share/gtksourceview-5/language-specs/wmap.lang + @for po_file in po/*.po; do \ + locale=$$(basename "$$po_file" .po); \ + install -Dm0644 po/$$locale/LC_MESSAGES/systems.tranquil.Map.mo $(appdir)/usr/share/locale/$$locale/LC_MESSAGES/systems.tranquil.Map.mo; \ + done + APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=true $(linuxdeploy) --appdir=$(appdir) --output=appimage --desktop-file=resources/systems.tranquil.Map.desktop --icon-file=resources/logo.svg + mv *.AppImage $(filename).AppImage + @rm -rf $(appdir) +endif + +package: package-rpm package-deb package-tar package-flatpak package-appimage # Distribution ################################################################# @@ -120,10 +155,18 @@ distribute-tar: distribute-flatpak: @$(call sign_and_deploy,$(filename).flatpak) -distribute: distribute-rpm distribute-deb distribute-tar distribute-flatpak +distribute-pacman: + @$(call sign_and_deploy,$(filename).pkg.tar.gz) + +distribute-appimage: + @$(call sign_and_deploy,$(filename).AppImage) + +distribute: distribute-rpm distribute-deb distribute-tar distribute-flatpak distribute-appimage release: package distribute +arch: package-pacman distribute-pacman + # We can't do cross compile, so for now let's just make it easy to release # on arm here arm: @@ -183,4 +226,4 @@ endif $(MAKE) -e profile=release $(architectures) -.PHONY: default build $(architectures) package package-rpm package-deb package-tar package-flatpak distribute distribute-rpm distribute-deb distribute-tar distribute-flatpak prepare set_rust ci release release_all test coverage format update_flatpak_dependencies extract_strings find_translatable_files compile_translations install uninstall +.PHONY: default build $(architectures) package package-rpm package-deb package-tar package-flatpak package-pacman package-appimage distribute distribute-rpm distribute-deb distribute-tar distribute-flatpak distribute-pacman distribute-appimage arch prepare set_rust ci release release_all test coverage format update_flatpak_dependencies extract_strings find_translatable_files compile_translations install uninstall |