GRUB_THEMES=\
	vesperos-theme/grub
DEFAULT_BACKGROUND=desktop-background

PIXMAPS=$(wildcard pixmaps/*.png)
DESKTOP_FILES=$(wildcard *.desktop)

PLYMOUTH_LOGO_TEXT = vesperos-theme/plymouth/logo-text.png

.PHONY: all clean install install-local
all: build-grub build-emblems build-logos $(PLYMOUTH_LOGO_TEXT)
clean: clean-grub clean-emblems clean-logos
	rm -f $(PLYMOUTH_LOGO_TEXT)

$(PLYMOUTH_LOGO_TEXT): vesperos-logos/logo-text.svg
	rsvg-convert $< -h 400 -o $@.raw
	optipng $@.raw -out $@
	rm -f $@.raw

.PHONY: build-grub clean-grub install-grub
build-grub clean-grub install-grub:
	@target=`echo $@ | sed s/-grub//`; \
	for grub_theme in $(GRUB_THEMES) ; do \
		if [ -f $$grub_theme/Makefile ] ; then \
			$(MAKE) $$target -C $$grub_theme || exit 1; \
		fi \
	done

.PHONY: build-emblems clean-emblems install-emblems
build-emblems clean-emblems install-emblems:
	@target=`echo $@ | sed s/-emblems//`; \
	$(MAKE) $$target -C emblems-vesperos || exit 1;

.PHONY: build-logos clean-logos install-logos
build-logos clean-logos install-logos:
	@target=`echo $@ | sed s/-logos//`; \
	$(MAKE) $$target -C vesperos-logos || exit 1;


install: install-grub install-emblems install-logos install-local

install-desktop-files:
ifneq ($(strip $(DESKTOP_FILES)),)
	install -d $(DESTDIR)/usr/share/desktop-base
	install -m 644 $(DESKTOP_FILES) $(DESTDIR)/usr/share/desktop-base/
endif

install-local:
	# Ensure SVG files don't include inkscape:export-filename. (See #956102)
	if find . -name "*.svg" -exec grep inkscape:export-filename {} + ; then \
		echo "error: please remove inkscape:export-filename attribute from SVGs, it tends to leak information about the user who did the export."; \
		exit 1; \
	fi

	# VesperOS logo as default user face icon
	install -d $(DESTDIR)/etc/skel
	$(INSTALL_DATA) defaults/common/etc/skel/.face $(DESTDIR)/etc/skel
	cd $(DESTDIR)/etc/skel && ln -s .face .face.icon

	# background files
	mkdir -p $(DESTDIR)/usr/share/images/desktop-base
	cd $(DESTDIR)/usr/share/images/desktop-base && ln -s $(DEFAULT_BACKGROUND) default

	# desktop files
	$(MAKE) install-desktop-files

	# pixmaps files
	mkdir -p $(DESTDIR)/usr/share/pixmaps
	$(INSTALL_DATA) $(PIXMAPS) $(DESTDIR)/usr/share/pixmaps/

	# Set Plasma 5 customizations
	install -d $(DESTDIR)/etc/xdg/autostart
	$(INSTALL_DATA) defaults/kde/etc/xdg/kcm-about-distrorc $(DESTDIR)/etc/xdg
	$(INSTALL_DATA) defaults/kde/etc/xdg/kickoffrc $(DESTDIR)/etc/xdg
	$(INSTALL_DATA) $(wildcard defaults/kde/etc/xdg/autostart/*) $(DESTDIR)/etc/xdg/autostart/
	install -d $(DESTDIR)/etc/xdg/plasma-workspace/env
	$(INSTALL_DATA) $(wildcard defaults/kde/etc/xdg/plasma-workspace/env/*) $(DESTDIR)/etc/xdg/plasma-workspace/env/
	install -d $(DESTDIR)/usr/share/desktop-base/kf5-settings
	$(INSTALL_DATA) $(wildcard defaults/kde/kf5-settings/*) $(DESTDIR)/usr/share/desktop-base/kf5-settings/
	install -d $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents
	$(INSTALL_DATA) defaults/kde/plasma/look-and-feel/me.vesperos.desktop/metadata.json $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop
	$(INSTALL_DATA) defaults/kde/plasma/look-and-feel/me.vesperos.desktop/contents/defaults $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents
	install -d $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents/layouts
	$(INSTALL_DATA) $(wildcard defaults/kde/plasma/look-and-feel/me.vesperos.desktop/contents/layouts/*) $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents/layouts/
	install -d $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents/previews
	$(INSTALL_DATA) $(wildcard defaults/kde/plasma/look-and-feel/me.vesperos.desktop/contents/previews/*) $(DESTDIR)/usr/share/plasma/look-and-feel/me.vesperos.desktop/contents/previews/

	# Xfce 4.6
	mkdir -p $(DESTDIR)/usr/share/desktop-base/profiles/xdg-config/xfce4/xfconf/xfce-perchannel-xml
	$(INSTALL_DATA) $(wildcard profiles/xdg-config/xfce4/xfconf/xfce-perchannel-xml/*) $(DESTDIR)/usr/share/desktop-base/profiles/xdg-config/xfce4/xfconf/xfce-perchannel-xml

	# GNOME background descriptors
	mkdir -p $(DESTDIR)/usr/share/gnome-background-properties

	# VesperOS theme (single default theme)
	### Plymouth theme
	install -d $(DESTDIR)/usr/share/plymouth/themes/vesperos
	$(INSTALL_DATA) $(wildcard vesperos-theme/plymouth/*) $(DESTDIR)/usr/share/plymouth/themes/vesperos
	install -d $(DESTDIR)/usr/share/desktop-base/vesperos-theme
	cd $(DESTDIR)/usr/share/desktop-base/vesperos-theme && ln -s /usr/share/plymouth/themes/vesperos plymouth

	### Wallpapers
	install -d $(DESTDIR)/usr/share/desktop-base/vesperos-theme/wallpaper/contents/images
	$(INSTALL_DATA) vesperos-theme/wallpaper/metadata.json $(DESTDIR)/usr/share/desktop-base/vesperos-theme/wallpaper
	$(INSTALL_DATA) vesperos-theme/wallpaper/gnome-background.xml $(DESTDIR)/usr/share/desktop-base/vesperos-theme/wallpaper
	$(INSTALL_DATA) $(wildcard vesperos-theme/wallpaper/contents/images/*) $(DESTDIR)/usr/share/desktop-base/vesperos-theme/wallpaper/contents/images/
	$(INSTALL_DATA) vesperos-theme/gnome-wp-list.xml $(DESTDIR)/usr/share/gnome-background-properties/vesperos.xml
	# Wallpaper symlink for KDE
	install -d $(DESTDIR)/usr/share/wallpapers
	cd $(DESTDIR)/usr/share/wallpapers && ln -s /usr/share/desktop-base/vesperos-theme/wallpaper VesperOS

	### Login background
	install -d $(DESTDIR)/usr/share/desktop-base/vesperos-theme/login
	$(INSTALL_DATA) $(wildcard vesperos-theme/login/*) $(DESTDIR)/usr/share/desktop-base/vesperos-theme/login

	### Lockscreen is using the same image as wallpaper
	install -d $(DESTDIR)/usr/share/desktop-base/vesperos-theme/lockscreen/contents/images
	$(INSTALL_DATA) vesperos-theme/wallpaper/metadata.json $(DESTDIR)/usr/share/desktop-base/vesperos-theme/lockscreen
	$(INSTALL_DATA) vesperos-theme/wallpaper/gnome-background.xml $(DESTDIR)/usr/share/desktop-base/vesperos-theme/lockscreen
	$(INSTALL_DATA) $(wildcard vesperos-theme/wallpaper/contents/images/*) $(DESTDIR)/usr/share/desktop-base/vesperos-theme/lockscreen/contents/images/
	# Lock screen symlink for KDE
	install -d $(DESTDIR)/usr/share/wallpapers
	cd $(DESTDIR)/usr/share/wallpapers && ln -s /usr/share/desktop-base/vesperos-theme/wallpaper vesperos_wallpaper

include Makefile.inc