[PATCH] Remove the hack to create most Makefile variables on Unix

Thiago Macieira thiago at macieira.org
Tue Jan 28 12:14:57 UTC 2014


I've just discovered, quite by accident, a new undocumented feature of
qmake: it can write Makefile variables. So let's use this feature
where we can instead of our hack.  The only thing is that it prepends
an "EXPORT_" prefix, so we can't use it for a variable like $(prefix)
that Linux distributions are expected to try to modify during make
install.

I've verified that the feature remains in Qt 5.x.

Signed-off-by: Thiago Macieira <thiago at macieira.org>
---
 subsurface-install.pri | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/subsurface-install.pri b/subsurface-install.pri
index 0a379ab..9c3d19e 100644
--- a/subsurface-install.pri
+++ b/subsurface-install.pri
@@ -122,38 +122,39 @@ mac {
 	# We just need to drop a few files here and there
 
 	# This is a fake rule just to create some rules in the target file
-	nl = $$escape_expand(\\n)
 	dummy.target = dummy-only-for-var-expansion
-	dummy.commands	= $${nl}prefix = /usr$${nl}\
-BINDIR = $(prefix)/bin$${nl}\
-DATADIR = $(prefix)/share$${nl}\
-DOCDIR = $(DATADIR)/subsurface/Documentation$${nl}\
-DESKTOPDIR = $(DATADIR)/applications$${nl}\
-ICONPATH = $(DATADIR)/icons/hicolor$${nl}\
-ICONDIR = $(ICONPATH)/scalable/apps$${nl}\
-MANDIR = $(DATADIR)/man/man1$${nl}
+	dummy.commands	= $$escape_expand(\\n)prefix = /usr
+
+	QMAKE_EXTRA_VARIABLES = BINDIR DATADIR DOCDIR DESKTOPDIR ICONPATH ICONDIR MANDIR
+	BINDIR = $(prefix)/bin
+	DATADIR = $(prefix)/share
+	DOCDIR = $(EXPORT_DATADIR)/subsurface/Documentation
+	DESKTOPDIR = $(EXPORT_DATADIR)/applications
+	ICONPATH = $(EXPORT_DATADIR)/icons/hicolor
+	ICONDIR = $(EXPORT_ICONPATH)/scalable/apps
+	MANDIR = $(EXPORT_DATADIR)/man/man1
 
 	QMAKE_EXTRA_TARGETS += dummy
 
 	WINDOWSSTAGING = ./packaging/windows
 
-	target.path = /$(BINDIR)
+	target.path = /$(EXPORT_BINDIR)
 	target.files = $$TARGET
 
-	desktop.path = /$(DESKTOPDIR)
+	desktop.path = /$(EXPORT_DESKTOPDIR)
 	desktop.files = $$DESKTOP_FILE
-	manpage.path = /$(MANDIR)
+	manpage.path = /$(EXPORT_MANDIR)
 	manpage.files = $$MANPAGE
 
-	icon.path = /$(ICONDIR)
+	icon.path = /$(EXPORT_ICONDIR)
 	icon.files = $$ICON
 
-	marbledir.path = /$(DATADIR)/subsurface/data
-	doc.path = /$(DOCDIR)
+	marbledir.path = /$(EXPORT_DATADIR)/subsurface/data
+	doc.path = /$(EXPORT_DOCDIR)
 
 	doc.CONFIG += no_check_exist
 
-	translation.path = /$(DATADIR)/subsurface/translations
+	translation.path = /$(EXPORT_DATADIR)/subsurface/translations
 	translation.CONFIG += no_check_exist
 
 	INSTALLS += target desktop manpage doc marbledir translation icon
-- 
1.7.11.7



More information about the subsurface mailing list