[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