Windows out of tree cross build: stage package in correct folder

When doing an out of tree build you don't want to stage the package with
the source but under your current directory. So let's make sure we
distinguish between source and target here... and instead of putting
things into packaging/windows they now end up in staging which is much
more consistent. And to make my life even easier, the installer .exe ends
up in the base dir in which you build the package.

Also, we link statically against libdivecomputer, so don't pack the dll.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-04-21 11:09:07 -07:00
parent 986309b108
commit d461780369
2 changed files with 12 additions and 11 deletions

View file

@ -26,7 +26,7 @@
# Installer name and filename # Installer name and filename
Name "Subsurface" Name "Subsurface"
Caption "Subsurface ${SUBSURFACE_VERSION} Setup" Caption "Subsurface ${SUBSURFACE_VERSION} Setup"
OutFile "subsurface-${SUBSURFACE_VERSION}.exe" OutFile "..\subsurface-${SUBSURFACE_VERSION}.exe"
# Icon to use for the installer # Icon to use for the installer
!define MUI_ICON "subsurface.ico" !define MUI_ICON "subsurface.ico"
@ -70,7 +70,7 @@
# Pages # Pages
# Installer pages # Installer pages
!insertmacro MUI_PAGE_LICENSE "..\..\gpl-2.0.txt" !insertmacro MUI_PAGE_LICENSE "gpl-2.0.txt"
!insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES
@ -105,7 +105,6 @@ Section
File /r Documentation File /r Documentation
File /r translations File /r translations
File iconv.dll File iconv.dll
File libdivecomputer-0.dll
File libpng16-16.dll File libpng16-16.dll
File libjpeg-*.dll File libjpeg-*.dll
File libusb-1.0.dll File libusb-1.0.dll

View file

@ -48,9 +48,10 @@ mac {
# We don't have a helpful tool like macdeployqt for Windows, so we hardcode # We don't have a helpful tool like macdeployqt for Windows, so we hardcode
# 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 = $$OUT_PWD/staging
NSIFILE = $$PWD/$$WINDOWSSTAGING/subsurface.nsi WINDOWSPACKAGING = $$PWD/packaging/windows
NSIINPUTFILE = $$PWD/$$WINDOWSSTAGING/subsurface.nsi.in NSIFILE = $$WINDOWSSTAGING/subsurface.nsi
NSIINPUTFILE = $$WINDOWSPACKAGING/subsurface.nsi.in
MAKENSIS = /usr/bin/makensis MAKENSIS = /usr/bin/makensis
doc.path = $$WINDOWSSTAGING/Documentation doc.path = $$WINDOWSSTAGING/Documentation
@ -63,11 +64,13 @@ mac {
translation.path = $$WINDOWSSTAGING/translations translation.path = $$WINDOWSSTAGING/translations
qttranslation.path = $$WINDOWSSTAGING/translations qttranslation.path = $$WINDOWSSTAGING/translations
INSTALLS += translation qttranslation package.files = $$PWD/gpl-2.0.txt $$WINDOWSPACKAGING/subsurface.ico
package.path = $$WINDOWSSTAGING
INSTALLS += translation qttranslation package
qt_conf.commands = echo \'[Paths]\' > $@ qt_conf.commands = echo \'[Paths]\' > $@
qt_conf.commands += $${nltab}echo \'Prefix=.\' >> $@ qt_conf.commands += $${nltab}echo \'Prefix=.\' >> $@
qt_conf.target = $$PWD/packaging/windows/qt.conf qt_conf.target = $$WINDOWSSTAGING/qt.conf
install.depends += qt_conf install.depends += qt_conf
# Plugin code # Plugin code
@ -108,9 +111,10 @@ mac {
else: dlls.commands += $$OUT_PWD/release/$$TARGET$$EXE_SUFFIX else: dlls.commands += $$OUT_PWD/release/$$TARGET$$EXE_SUFFIX
dlls.commands += $$ABS_DEPLOYMENT_PLUGIN $$LIBS dlls.commands += $$ABS_DEPLOYMENT_PLUGIN $$LIBS
dlls.commands += | while read name; do $(INSTALL_FILE) \$\$name $$PWD/$$WINDOWSSTAGING; done dlls.commands += | while read name; do $(INSTALL_FILE) \$\$name $$WINDOWSSTAGING; done
dlls.depends += $(DESTDIR_TARGET) dlls.depends += $(DESTDIR_TARGET)
nsis.commands += $(CHK_DIR_EXISTS) $$WINDOWSSTAGING;
nsis.commands += cat $$NSIINPUTFILE | sed -e \'s/VERSIONTOKEN/$$VERSION_STRING/;s/PRODVTOKEN/$${PRODVERSION_STRING}/\' > $$NSIFILE nsis.commands += cat $$NSIINPUTFILE | sed -e \'s/VERSIONTOKEN/$$VERSION_STRING/;s/PRODVTOKEN/$${PRODVERSION_STRING}/\' > $$NSIFILE
nsis.depends += $$NSIINPUTFILE nsis.depends += $$NSIINPUTFILE
nsis.target = $$NSISFILE nsis.target = $$NSISFILE
@ -143,8 +147,6 @@ mac {
QMAKE_EXTRA_TARGETS += dummy QMAKE_EXTRA_TARGETS += dummy
WINDOWSSTAGING = ./packaging/windows
target.path = /$(EXPORT_BINDIR) target.path = /$(EXPORT_BINDIR)
target.files = $$TARGET target.files = $$TARGET