#!/usr/bin/make -f # resolve DEB_BUILD_OPTION_PARALLEL include /usr/share/dpkg/buildopts.mk export LC_ALL = C.UTF-8 QBS_OPTS = --settings-dir $(CURDIR)/debian \ profile:deb config:qbs-build \ -f valentina.qbs ifeq ($(DH_VERBOSE),1) QBS_OPTS += --log-level debug endif ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS))) QBS_OPTS += --command-echo-mode command-line endif # execute test # * link with freshly built libraries # * execute in virtual X11 environment _TEST = LD_LIBRARY_PATH=$(subst $() ,:,$(wildcard \ $(patsubst %,$(CURDIR)/qbs-build/%.*,QMUParserLib VPropertyExplorerLib))) \ QT_QPA_PLATFORM=offscreen \ HOME=$(CURDIR)/debian/build \ XDG_RUNTIME_DIR=$(CURDIR)/debian/tmp-xdg-runtime-dir \ dbus-run-session -- \ qbs run --no-build $(QBS_OPTS) -p $(1) \ --install-root $(CURDIR)/qbs-build/install-root override_dh_auto_configure: mkdir --mode 0700 --parents debian/tmp-xdg-runtime-dir # set Qt API # install private shared libraries as such qbs-setup-toolchains --settings-dir debian --detect qbs-setup-qt --settings-dir debian /usr/bin/qmake6 deb qbs config --settings-dir debian profiles.deb.qbs.installPrefix usr/ qbs config --settings-dir debian profiles.deb.cpp.debugInformation true ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) qbs config --settings-dir debian profiles.deb.cpp.optimization none else qbs config --settings-dir debian profiles.deb.cpp.optimization fast endif #FIXME qbs config --settings-dir debian profiles.deb.cpp.commonCompilerFlags -Wdate-time qbs config --settings-dir debian profiles.deb.cpp.defines '"FORTIFY_SOURCE=2"' #TODO: https://gitlab.com/smart-pattern/valentina/-/issues/228 ifneq (,$(filter armel armhf mips64el,$(DEB_HOST_ARCH))) qbs config --settings-dir debian profiles.deb.cpp.cFlags '[ "-fdebug-prefix-map=$(CURDIR)=.", "-fstack-protector-strong", "-Wformat", "-Werror=format-security", "-Wno-error=cast-align" ]' qbs config --settings-dir debian profiles.deb.cpp.cxxFlags '[ "-fdebug-prefix-map=$(CURDIR)=.", "-fstack-protector-strong", "-Wformat", "-Werror=format-security", "-Wno-error=cast-align" ]' else qbs config --settings-dir debian profiles.deb.cpp.cFlags '[ "-fdebug-prefix-map=$(CURDIR)=.", "-fstack-protector-strong", "-Wformat", "-Werror=format-security" ]' qbs config --settings-dir debian profiles.deb.cpp.cxxFlags '[ "-fdebug-prefix-map=$(CURDIR)=.", "-fstack-protector-strong", "-Wformat", "-Werror=format-security" ]' endif qbs config --settings-dir debian profiles.deb.cpp.linkerFlags "-z,relro" override_dh_auto_build: qbs build --no-install $(QBS_OPTS) \ modules.qbs.installRoot:$(CURDIR)/debian/tmp/ override_dh_auto_test: # ppc64el: https://gitlab.com/smart-pattern/valentina/-/issues/229 ifneq (,$(filter armel armhf mips64el ppc64el riscv64,$(DEB_HOST_ARCH))) $(call _TEST,CollectionTest) || true else $(call _TEST,CollectionTest) endif $(call _TEST,ParserTest) ifneq (,$(filter i386 hurd-i386,$(DEB_HOST_ARCH))) $(call _TEST,ValentinaTest) || true else $(call _TEST,ValentinaTest) endif override_dh_auto_test-indep: $(call _TEST,TranslationsTest) override_dh_auto_install: qbs install --no-build $(QBS_OPTS) \ --install-root $(CURDIR)/debian/tmp/ # rename puzzle -> valentina-puzzle # rename tape -> valentina-tape # normalize paths embedded in example files execute_after_dh_install-arch: chrpath --replace /usr/lib/valentina \ debian/valentina/usr/bin/valentina \ debian/valentina/usr/bin/puzzle \ debian/valentina/usr/bin/tape mv debian/valentina/usr/bin/puzzle \ debian/valentina/usr/bin/valentina-puzzle mv debian/valentina/usr/bin/tape \ debian/valentina/usr/bin/valentina-tape mv debian/valentina/usr/share/applications/ua.com.smart-pattern.puzzle.desktop \ debian/valentina/usr/share/applications/ua.com.smart-pattern.valentina-puzzle.desktop mv debian/valentina/usr/share/applications/ua.com.smart-pattern.tape.desktop \ debian/valentina/usr/share/applications/ua.com.smart-pattern.valentina-tape.desktop perl -i -pe 's/(?:Exec|Icon)=\Kpuzzle/valentina-puzzle/' \ debian/valentina/usr/share/applications/ua.com.smart-pattern.valentina-puzzle.desktop perl -i -pe 's/(?:Exec|Icon)=\Ktape/valentina-tape/' \ debian/valentina/usr/share/applications/ua.com.smart-pattern.valentina-tape.desktop execute_after_dh_installman-arch: mv debian/valentina/usr/share/man/man1/puzzle.1 \ debian/valentina/usr/share/man/man1/valentina-puzzle.1 mv debian/valentina/usr/share/man/man1/tape.1 \ debian/valentina/usr/share/man/man1/valentina-tape.1 # install select documentation with all binary packages override_dh_installdocs: dh_installdocs -- AUTHORS.txt README.md override_dh_auto_clean: rm -rf qbs-build execute_before_dh_clean: rm -rf debian/tmp-xdg-runtime-dir %: dh $@