1- .PHONY : all release debug install uninstall install-debug uninstall-debug clean package-deb package-rpm package-arch package-arch-test install-arch uninstall-arch flatpak install-flatpak uninstall-flatpak lint -flatpak run -flatpak flatpak-bundle pack -gnome-extension install-gnome-extension uninstall-gnome-extension
1+ .PHONY : all release debug install uninstall install-debug uninstall-debug package-deb package-rpm package-arch package-arch-test install-arch uninstall-arch flatpak flatpak-bundle install-flatpak uninstall-flatpak run -flatpak package -flatpak-flathub lint- flatpak-flathub package -gnome-extension install-gnome-extension uninstall-gnome-extension clean
22
33# Build directories
44BUILD_RELEASE_DIR = build/release
@@ -13,7 +13,7 @@ RPMBUILD_DIR = $(RPM_DIR)/rpmbuild
1313OUTPUTS_DIR = $(PKG_DIR ) /outputs
1414FLATPAK_DIR = $(PKG_DIR ) /flatpak
1515FLATPAK_REPO_DIR = $(FLATPAK_DIR ) /repo
16- FLATPAK_MANIFEST = $(CURDIR ) /packaging/flatpak/com.sidevesh.Luminance.yml
16+ FLATPAK_MANIFEST_IN = $(CURDIR ) /packaging/flatpak/com.sidevesh.Luminance.yml.in
1717FLATPAK_APP_ID = com.sidevesh.Luminance
1818
1919VERSION = $(shell cat version.txt)
@@ -124,12 +124,13 @@ uninstall-arch:
124124 @echo " Uninstalling Arch package..."
125125 sudo pacman -R luminance
126126
127- flatpak :
127+ flatpak : $( FLATPAK_MANIFEST_IN )
128128 @echo " Building Flatpak..."
129129 mkdir -p $(FLATPAK_DIR )
130- # Copy manifest to build directory to satisfy flatpak-builder output requirements
131- # This is necessary because flatpak-builder forbids 'path' from pointing outside the manifest directory
132- cp $(FLATPAK_MANIFEST ) $(CURDIR ) /.flatpak-manifest.yml
130+ # Generate manifest for local build directly to .flatpak-manifest.yml
131+ sed -e " s|@LUMINANCE_SOURCE_TYPE@|dir|g" \
132+ -e " s|@LUMINANCE_SOURCE_DETAILS@|path: $( CURDIR) |g" \
133+ $(FLATPAK_MANIFEST_IN ) > $(CURDIR ) /.flatpak-manifest.yml
133134
134135 # Run flathub-build from root. This creates 'repo' and 'builddir' in $(CURDIR)
135136 flatpak run --filesystem=$(CURDIR ) --command=flathub-build org.flatpak.Builder --force-clean $(CURDIR ) /.flatpak-manifest.yml
@@ -140,6 +141,12 @@ flatpak:
140141 mv builddir $(FLATPAK_DIR ) /
141142 rm $(CURDIR ) /.flatpak-manifest.yml
142143
144+ flatpak-bundle : flatpak
145+ @echo " Creating Flatpak bundle..."
146+ mkdir -p $(OUTPUTS_DIR )
147+ flatpak build-bundle $(FLATPAK_REPO_DIR ) $(OUTPUTS_DIR ) /$(FLATPAK_APP_ID ) .flatpak $(FLATPAK_APP_ID )
148+ @echo " Flatpak bundle created at $( OUTPUTS_DIR) /$( FLATPAK_APP_ID) .flatpak"
149+
143150install-flatpak : flatpak
144151 @echo " Installing Flatpak..."
145152 flatpak remote-add --user --if-not-exists --no-gpg-verify luminance-local-repo $(CURDIR ) /$(FLATPAK_REPO_DIR )
@@ -150,38 +157,28 @@ uninstall-flatpak:
150157 -flatpak uninstall --user -y $(FLATPAK_APP_ID )
151158 -flatpak remote-delete --user luminance-local-repo
152159
153- lint-flatpak : flatpak
154- @echo " Linting Flatpak manifest..."
155- # Lint the original manifest
156- -flatpak run --filesystem=$(CURDIR ) --command=flatpak-builder-lint org.flatpak.Builder manifest $(FLATPAK_MANIFEST )
157- @echo " Linting Flatpak repo..."
158- @if [ -d " $( FLATPAK_REPO_DIR) " ]; then \
159- flatpak run --filesystem=$(CURDIR ) --command=flatpak-builder-lint org.flatpak.Builder repo $(CURDIR ) /$(FLATPAK_REPO_DIR ) ; \
160- else \
161- echo " Repo directory not found. Skipping repo linting (run 'make flatpak-build' first)." ; \
162- fi
163-
164160run-flatpak : install-flatpak
165161 @echo " Running Flatpak with GDB..."
166162 flatpak run --devel --command=sh $(FLATPAK_APP_ID ) -c " gdb -batch -ex run -ex \" bt full\" --args /app/bin/$( FLATPAK_APP_ID) "
167163
168- flatpak-bundle : flatpak
169- @echo " Creating Flatpak bundle ..."
170- mkdir -p $( OUTPUTS_DIR )
171- flatpak build-bundle $( FLATPAK_REPO_DIR ) $( OUTPUTS_DIR ) / $( FLATPAK_APP_ID ) .flatpak $( FLATPAK_APP_ID )
172- @echo " Flatpak bundle created at $( OUTPUTS_DIR ) / $( FLATPAK_APP_ID ) .flatpak "
164+ package- flatpak-flathub : $( FLATPAK_MANIFEST_IN ) version.txt
165+ @echo " Updating flathub manifest ..."
166+ sed -e " s|@LUMINANCE_SOURCE_TYPE@|git|g " \
167+ -e " s|@LUMINANCE_SOURCE_DETAILS@|url: https://github.com/sidevesh/Luminance.git\n tag: $( VERSION ) |g " \
168+ $( FLATPAK_MANIFEST_IN ) > flathub/com.sidevesh.Luminance.yml
173169
174- # Remove build directories
175- clean :
176- rm -rf build
170+ lint-flatpak-flathub : package-flatpak-flathub
171+ @echo " Linting Flatpak manifest..."
172+ # Lint the manifest generated for flathub
173+ -flatpak run --filesystem=$(CURDIR ) --command=flatpak-builder-lint org.flatpak.Builder manifest flathub/com.sidevesh.Luminance.yml
177174
178175# GNOME Extension
179176EXTENSION_UUID = luminance-extension@sidevesh
180177SRC_EXTENSION_DIR = gnome-extension/$(EXTENSION_UUID )
181178EXTENSION_BUILD_DIR = $(PKG_DIR ) /gnome-extension
182179EXTENSION_ZIP = $(OUTPUTS_DIR ) /$(EXTENSION_UUID ) .shell-extension.zip
183180
184- pack -gnome-extension :
181+ package -gnome-extension :
185182 @echo " Packing GNOME extension..."
186183 rm -rf $(EXTENSION_BUILD_DIR )
187184 mkdir -p $(EXTENSION_BUILD_DIR )
@@ -190,7 +187,7 @@ pack-gnome-extension:
190187 gnome-extensions pack $(EXTENSION_BUILD_DIR ) --force --out-dir=$(OUTPUTS_DIR )
191188 @echo " Extension packed at $( EXTENSION_ZIP) "
192189
193- install-gnome-extension : pack -gnome-extension
190+ install-gnome-extension : package -gnome-extension
194191 @echo " Installing GNOME extension..."
195192 gnome-extensions install --force $(EXTENSION_ZIP )
196193 @echo " GNOME extension installed. You may need to enable it with: gnome-extensions enable $( EXTENSION_UUID) "
@@ -200,3 +197,6 @@ uninstall-gnome-extension:
200197 @echo " Uninstalling GNOME extension..."
201198 -gnome-extensions uninstall $(EXTENSION_UUID )
202199 @echo " Extension uninstalled."
200+
201+ clean :
202+ rm -rf build
0 commit comments