mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
55da333881
We want to install the Subsurface icon so it can be used e.g. in menus.
(Commit ee5d8e3c
moved the icons to resources, but the application icon
is special case, that should be installed globally.)
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
174 lines
6 KiB
Text
174 lines
6 KiB
Text
marbledir.files = $$MARBLEDIR
|
|
doc.files = $$DOC_FILES
|
|
translation.files = $$replace(TRANSLATIONS, .ts, .qm)
|
|
exists($$[QT_INSTALL_TRANSLATIONS]) {
|
|
qt_translation_dir = $$[QT_INSTALL_TRANSLATIONS]/
|
|
} else: exists(/usr/share/qt4/translations) {
|
|
# On some cross-compilation environments, the translations are either missing or not
|
|
# where they're expected to be. In such cases, try copying from the system.
|
|
qt_translation_dir = /usr/share/qt4/translations
|
|
}
|
|
qttranslation.files = $$join(QTTRANSLATIONS," "$$qt_translation_dir/,$$qt_translation_dir/)
|
|
|
|
nltab = $$escape_expand(\\n\\t)
|
|
|
|
mac {
|
|
# OS X bundling rules
|
|
# "make mac-deploy" deploys the external libs (Qt, libdivecomputer, libusb, etc.) into the bundle
|
|
# "make install" installs the bundle to /Applications
|
|
# "make mac-create-dmg" creates Subsurface.dmg
|
|
|
|
mac_bundle.path = /Applications
|
|
mac_bundle.files = Subsurface.app
|
|
mac_bundle.CONFIG += no_check_exist directory
|
|
INSTALLS += mac_bundle
|
|
install.depends += mac-deploy
|
|
|
|
datadir = Contents/Resources/share
|
|
marbledir.path = Contents/Resources/data
|
|
doc.path = $$datadir/Documentation
|
|
translation.path = Contents/Resources/translations
|
|
qttranslation.path = Contents/Resources/translations
|
|
QMAKE_BUNDLE_DATA += marbledir doc translation qttranslation
|
|
|
|
mac_deploy.target = mac-deploy
|
|
mac_deploy.commands += $$[QT_INSTALL_BINS]/macdeployqt $${TARGET}.app
|
|
!isEmpty(V):mac_deploy.commands += -verbose=1
|
|
|
|
mac_dmg.target = mac-create-dmg
|
|
mac_dmg.commands = $$mac_deploy.commands -dmg
|
|
mac_dmg.commands += $${nltab}$(MOVE) $${TARGET}.dmg $${TARGET}-$${FULL_VERSION}.dmg
|
|
QMAKE_EXTRA_TARGETS += mac_deploy mac_dmg
|
|
} else: win32 {
|
|
# Windows bundling rules
|
|
# We don't have a helpful tool like macdeployqt for Windows, so we hardcode
|
|
# which libs we need.
|
|
# The only target is "make install", which copies everything into packaging/windows
|
|
WINDOWSSTAGING = packaging/windows
|
|
NSIFILE = $$PWD/$$WINDOWSSTAGING/subsurface.nsi
|
|
NSIINPUTFILE = $$PWD/$$WINDOWSSTAGING/subsurface.nsi.in
|
|
MAKENSIS = /usr/bin/makensis
|
|
|
|
doc.path = $$WINDOWSSTAGING/Documentation
|
|
CONFIG -= copy_dir_files
|
|
deploy.path = $$WINDOWSSTAGING
|
|
deploy.CONFIG += no_check_exist
|
|
target.path = $$WINDOWSSTAGING
|
|
marbledir.path = $$WINDOWSSTAGING/data
|
|
INSTALLS += deploy marbledir target doc
|
|
|
|
translation.path = $$WINDOWSSTAGING/translations
|
|
qttranslation.path = $$WINDOWSSTAGING/translations
|
|
INSTALLS += translation qttranslation
|
|
|
|
qt_conf.commands = echo \'[Paths]\' > $@
|
|
qt_conf.commands += $${nltab}echo \'Prefix=.\' >> $@
|
|
qt_conf.target = $$PWD/packaging/windows/qt.conf
|
|
install.depends += qt_conf
|
|
|
|
# Plugin code
|
|
defineTest(deployPlugin) {
|
|
plugin = $$1
|
|
plugintype = $$dirname(1)
|
|
CONFIG(debug, debug|release): plugin = $${plugin}d4.dll
|
|
else: plugin = $${plugin}4.dll
|
|
|
|
abs_plugin = $$[QT_INSTALL_PLUGINS]/$$plugin
|
|
ABS_DEPLOYMENT_PLUGIN += $$abs_plugin
|
|
export(ABS_DEPLOYMENT_PLUGIN)
|
|
|
|
safe_name = $$replace(1, /, _)
|
|
INSTALLS += $$safe_name
|
|
|
|
# Work around qmake bug in Qt4 that it can't handle $${xx}.yy properly
|
|
eval(safe_name_files = $${safe_name}.files)
|
|
eval(safe_name_path = $${safe_name}.path)
|
|
$$safe_name_files = $$abs_plugin
|
|
$$safe_name_path = $$WINDOWSSTAGING/plugins/$$plugintype
|
|
export($$safe_name_files)
|
|
export($$safe_name_path)
|
|
export(INSTALLS)
|
|
}
|
|
# Convert plugin names to the relative DLL path
|
|
for(plugin, $$list($$DEPLOYMENT_PLUGIN)) {
|
|
deployPlugin($$plugin)
|
|
}
|
|
|
|
!win32-msvc* {
|
|
#!equals($$QMAKE_HOST.os, "Windows"): dlls.commands += OBJDUMP=`$$QMAKE_CC -dumpmachine`-objdump
|
|
dlls.commands += PATH=\$\$PATH:`$$QMAKE_CC -print-search-dirs | sed -nE \'/^libraries: =/{s///;s,/lib/?(:|\$\$),/bin\\1,g;p;q;}\'`
|
|
dlls.commands += perl $$PWD/scripts/win-ldd.pl
|
|
# equals(QMAKE_HOST.os, "Windows"): EXE_SUFFIX = .exe
|
|
EXE_SUFFIX = .exe
|
|
CONFIG(debug, debug|release): dlls.commands += $$OUT_PWD/debug/subsurface$$EXE_SUFFIX
|
|
else: dlls.commands += $$OUT_PWD/release/$$TARGET$$EXE_SUFFIX
|
|
|
|
dlls.commands += $$ABS_DEPLOYMENT_PLUGIN $$LIBS
|
|
dlls.commands += | while read name; do $(INSTALL_FILE) \$\$name $$PWD/$$WINDOWSSTAGING; done
|
|
dlls.depends += $(DESTDIR_TARGET)
|
|
|
|
nsis.commands += cat $$NSIINPUTFILE | sed -e \'s/VERSIONTOKEN/$$VERSION_STRING/;s/PRODVTOKEN/$${PRODVERSION_STRING}/\' > $$NSIFILE
|
|
nsis.depends += $$NSIINPUTFILE
|
|
nsis.target = $$NSISFILE
|
|
installer.commands += $$MAKENSIS $$NSIFILE
|
|
installer.target = installer
|
|
installer.depends = nsis install
|
|
QMAKE_EXTRA_TARGETS = installer nsis
|
|
install.depends += dlls
|
|
}
|
|
} else {
|
|
# Linux install rules
|
|
# On Linux, we can count on packagers doing the right thing
|
|
# 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}
|
|
|
|
QMAKE_EXTRA_TARGETS += dummy
|
|
|
|
WINDOWSSTAGING = ./packaging/windows
|
|
|
|
target.path = /$(BINDIR)
|
|
target.files = $$TARGET
|
|
|
|
desktop.path = /$(DESKTOPDIR)
|
|
desktop.files = $$DESKTOP_FILE
|
|
manpage.path = /$(MANDIR)
|
|
manpage.files = $$MANPAGE
|
|
|
|
icon.path = /$(ICONDIR)
|
|
icon.files = $$ICON
|
|
|
|
marbledir.path = /$(DATADIR)/subsurface/data
|
|
doc.path = /$(DOCDIR)
|
|
|
|
doc.CONFIG += no_check_exist
|
|
|
|
translation.path = /$(DATADIR)/subsurface/translations
|
|
translation.CONFIG += no_check_exist
|
|
|
|
INSTALLS += target desktop manpage doc marbledir translation icon
|
|
install.target = install
|
|
}
|
|
!isEmpty(TRANSLATIONS) {
|
|
isEmpty(QMAKE_LRELEASE) {
|
|
win32: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
|
else: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
|
}
|
|
isEmpty(TS_DIR):TS_DIR = translations
|
|
TSQM.input = TRANSLATIONS
|
|
TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm
|
|
TSQM.CONFIG += no_link target_predeps
|
|
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm $$TS_DIR/${QMAKE_FILE_BASE}.qm
|
|
QMAKE_EXTRA_COMPILERS += TSQM
|
|
}
|
|
QMAKE_EXTRA_TARGETS += install $$install.depends
|