mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
Create installer with qmake
This is seriously flawed. makensis is run twice for some reason. I also noticed that the data and xslt directories under packaging/windows aren't created when running make install. Running make -f Makefile.Release install_marbledir install_deploy works, but obviously this should be taken care of by the dependency. The installed binary under Windows is not finding its icon, the translations are missing... lots of work left to do here. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7966f72fb7
commit
9383693928
3 changed files with 19 additions and 5 deletions
|
@ -98,8 +98,10 @@ Section
|
||||||
Delete "$INSTDIR\*.dll"
|
Delete "$INSTDIR\*.dll"
|
||||||
|
|
||||||
# Files to include in installer
|
# Files to include in installer
|
||||||
File ..\..\subsurface.exe
|
File subsurface.exe
|
||||||
File /r ..\..\xslt
|
File /r xslt
|
||||||
|
File /r data
|
||||||
|
File /r images
|
||||||
File dll\iconv.dll
|
File dll\iconv.dll
|
||||||
File dll\libdivecomputer-0.dll
|
File dll\libdivecomputer-0.dll
|
||||||
File dll\libintl-8.dll
|
File dll\libintl-8.dll
|
||||||
|
@ -124,7 +126,6 @@ Section
|
||||||
File dll\QtXml4.dll
|
File dll\QtXml4.dll
|
||||||
File dll\libmarblewidget.dll
|
File dll\libmarblewidget.dll
|
||||||
File subsurface.ico
|
File subsurface.ico
|
||||||
File /r share
|
|
||||||
|
|
||||||
# Store installation folder in registry
|
# Store installation folder in registry
|
||||||
WriteRegStr HKCU "Software\Subsurface" "" $INSTDIR
|
WriteRegStr HKCU "Software\Subsurface" "" $INSTDIR
|
||||||
|
|
|
@ -8,6 +8,8 @@ exists(.git/HEAD): {
|
||||||
VERSION_SCRIPT = $$PWD/scripts/get-version
|
VERSION_SCRIPT = $$PWD/scripts/get-version
|
||||||
# always use linux here -------------------vvv so we get the true full version
|
# always use linux here -------------------vvv so we get the true full version
|
||||||
FULL_VERSION = "`$$VERSION_SCRIPT linux`"
|
FULL_VERSION = "`$$VERSION_SCRIPT linux`"
|
||||||
|
PRODVERSION_STRING = $$system("sh scripts/get-version win $$FULL_VERSION || $${VERSION}.0.0")
|
||||||
|
VERSION_STRING = $$system("sh scripts/get-version linux $$FULL_VERSION || $${VERSION}")
|
||||||
version_h.depends = $$VERSION_SCRIPT $$PWD/.git/$$system("GIT_DIR=$$PWD/.git git rev-parse --symbolic-full-name HEAD")
|
version_h.depends = $$VERSION_SCRIPT $$PWD/.git/$$system("GIT_DIR=$$PWD/.git git rev-parse --symbolic-full-name HEAD")
|
||||||
version_h.commands = echo \\$${LITERAL_HASH}define VERSION_STRING \\\"`GIT_DIR=$$PWD/.git $$VERSION_SCRIPT $$VER_OS`\\\" > ${QMAKE_FILE_OUT}
|
version_h.commands = echo \\$${LITERAL_HASH}define VERSION_STRING \\\"`GIT_DIR=$$PWD/.git $$VERSION_SCRIPT $$VER_OS`\\\" > ${QMAKE_FILE_OUT}
|
||||||
version_h.input = GIT_HEAD
|
version_h.input = GIT_HEAD
|
||||||
|
|
|
@ -41,6 +41,9 @@ mac {
|
||||||
# which libs we need.
|
# which libs we need.
|
||||||
# The only target is "make install", which copies everything into packaging/windows
|
# The only target is "make install", which copies everything into packaging/windows
|
||||||
WINDOWSSTAGING = packaging/windows
|
WINDOWSSTAGING = packaging/windows
|
||||||
|
NSIFILE = $$WINDOWSSTAGING/subsurface.nsi
|
||||||
|
NSIINPUTFILE = $$WINDOWSSTAGING/subsurface.nsi.in
|
||||||
|
MAKENSIS = /usr/bin/makensis
|
||||||
|
|
||||||
deploy.path = $$WINDOWSSTAGING
|
deploy.path = $$WINDOWSSTAGING
|
||||||
deploy.files += $$xslt.files $$doc.files
|
deploy.files += $$xslt.files $$doc.files
|
||||||
|
@ -58,7 +61,8 @@ mac {
|
||||||
#!equals($$QMAKE_HOST.os, "Windows"): dlls.commands += OBJDUMP=`$$QMAKE_CC -dumpmachine`-objdump
|
#!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 += 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
|
dlls.commands += perl $$PWD/scripts/win-ldd.pl
|
||||||
equals(QMAKE_HOST.os, "Windows"): EXE_SUFFIX = .exe
|
# equals(QMAKE_HOST.os, "Windows"): EXE_SUFFIX = .exe
|
||||||
|
EXE_SUFFIX = .exe
|
||||||
CONFIG(debug, debug|release): dlls.commands += $$PWD/debug/subsurface$$EXE_SUFFIX
|
CONFIG(debug, debug|release): dlls.commands += $$PWD/debug/subsurface$$EXE_SUFFIX
|
||||||
else: dlls.commands += $$PWD/release/$$TARGET$$EXE_SUFFIX
|
else: dlls.commands += $$PWD/release/$$TARGET$$EXE_SUFFIX
|
||||||
|
|
||||||
|
@ -70,7 +74,14 @@ mac {
|
||||||
dlls.commands += $$LIBS
|
dlls.commands += $$LIBS
|
||||||
dlls.commands += | while read name; do $(INSTALL_FILE) \$\$name $$PWD/$$WINDOWSSTAGING; done
|
dlls.commands += | while read name; do $(INSTALL_FILE) \$\$name $$PWD/$$WINDOWSSTAGING; done
|
||||||
dlls.depends += $(DESTDIR_TARGET)
|
dlls.depends += $(DESTDIR_TARGET)
|
||||||
install.depends += dlls
|
|
||||||
|
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.depends += dlls nsis installer
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
# Linux install rules
|
# Linux install rules
|
||||||
|
|
Loading…
Reference in a new issue