#!/usr/bin/make -f
export DH_VERBOSE = 1
# Suppress __pycache__ pollution
export PYTHONDONTWRITEBYTECODE = 1
include /usr/share/dpkg/pkg-info.mk

# Upstream's CMakeLists.txt is a leftover from their Conan based build (it only
# drives the translation scripts), so do the packaging by hand.
%:
	dh $@ --with python3

override_dh_auto_configure:
	:

override_dh_auto_build:
	sed -e 's/{{ cura_app_name }}/cura/g' \
	    -e 's/{{ cura_app_display_name  }}/UltiMaker Cura/g' \
	    -e 's/{{ cura_version }}/$(DEB_VERSION_UPSTREAM)/g' \
	    -e 's/{{ cura_build_type }}//g' \
	    -e 's/{{ cura_debug_mode }}/False/g' \
	    -e 's#{{ cura_cloud_api_root }}#https://api.ultimaker.com#g' \
	    -e 's/{{ cura_cloud_api_version }}/1/g' \
	    -e 's#{{ cura_cloud_account_api_root }}#https://account.ultimaker.com#g' \
	    -e 's#{{ cura_marketplace_root }}#https://marketplace.ultimaker.com#g' \
	    -e 's#{{ cura_digital_factory_url }}#https://digitalfactory.ultimaker.com#g' \
	    -e 's#{{ cura_latest_url }}#https://software.ultimaker.com/latest.json#g' \
	    CuraVersion.py.jinja > cura/CuraVersion.py
	set -e; for po in $$(find resources/i18n -name '*.po'); do \
	    d=$$(dirname "$$po"); \
	    mkdir -p "$$d/LC_MESSAGES"; \
	    msgfmt "$$po" -o "$$d/LC_MESSAGES/$$(basename "$$po" .po).mo" -f; \
	done

override_dh_auto_install:
	install -d debian/cura/usr/lib/python3/dist-packages
	cp -a cura debian/cura/usr/lib/python3/dist-packages/
	install -d debian/cura/usr/share/cura
	cp -a resources debian/cura/usr/share/cura/
	# The bundled Open Sans/Noto fonts are provided by fonts-open-sans and
	# fonts-noto-core; ship only the font configuration files.
	rm -rf debian/cura/usr/share/cura/resources/themes/cura-light/fonts
	install -d debian/cura/usr/lib/cura
	cp -a plugins debian/cura/usr/lib/cura/
	# Upstream keeps many data and Python files executable in git; normalise
	# them to 0644 like the previous CMake based packaging did.
	find debian/cura/usr/lib/python3/dist-packages debian/cura/usr/share/cura debian/cura/usr/lib/cura -type f -exec chmod 0644 {} +
	install -Dm755 cura_app.py debian/cura/usr/bin/cura
	install -Dm644 resources/images/cura-icon.png debian/cura/usr/share/icons/hicolor/128x128/apps/cura-icon.png
	install -d debian/cura/usr/share/metainfo
	sed 's#<id>com.ultimaker.cura</id>#<id>com.ultimaker.cura</id>\n\t<launchable type="desktop-id">com.ultimaker.cura.desktop</launchable>#' \
	    packaging/AppImage/cura.appdata.xml > debian/cura/usr/share/metainfo/com.ultimaker.cura.appdata.xml
	install -Dm644 cura.sharedmimeinfo debian/cura/usr/share/mime/packages/cura.xml
	install -d debian/cura/usr/share/applications
	sed -e 's/{{ cura_version }}/$(DEB_VERSION_UPSTREAM)/g' \
	    -e 's#^Exec=.*#Exec=cura %F#' \
	    -e 's#^Categories=.*#Categories=Graphics;Education;Development;Science;#' \
	    -e '/^X-AppImage-Version=/d' \
	    packaging/AppImage/cura.desktop.jinja > debian/cura/usr/share/applications/com.ultimaker.cura.desktop
	echo 'StartupWMClass=cura' >> debian/cura/usr/share/applications/com.ultimaker.cura.desktop

override_dh_auto_clean:
	dh_clean
	rm -rf .cache
	find . -name __pycache__ -print0 | xargs -0 rm -rf
	rm -f cura/CuraVersion.py
	find resources/i18n -name '*.mo' -delete

override_dh_auto_test:
	# Upstream's test suite is not suitable for the Debian build.
