diff --git a/marble.iss b/marble.iss new file mode 100644 index 000000000..50fa0e313 --- /dev/null +++ b/marble.iss @@ -0,0 +1,99 @@ +#define MyAppName "Marble" +#define MyAppVersion "1.13.90" +#define MyAppPublisher "KDE" +#define MyAppURL "https://marble.kde.org/" +#define MyAppExeName "marble-qt.exe" +#define MyArch "x64" +#define MyQtDir "C:\Qt\5.5\msvc2013_64" +#define MySrcDir "C:\marble\src" +#define MyBuildDir "C:\marble\export-64bit" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{E4E20D3E-4180-4747-A111-9A835A6FB1F0} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={pf}\{#MyAppName} +DisableProgramGroupPage=yes +LicenseFile={#MySrcDir}\LICENSE.txt +OutputBaseFilename={#MyAppName}-setup_{#MyAppVersion}_{#MyArch} +SetupIconFile={#MySrcDir}\data\ico\marble.ico +Compression=lzma +SolidCompression=yes +ChangesAssociations=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "{#MyBuildDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyQtDir}\bin\icudt54.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\icuin54.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\icuuc54.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5DBus.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Multimedia.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5MultimediaWidgets.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Network.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5OpenGL.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Positioning.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5PrintSupport.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Qml.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Quick.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Script.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Sensors.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Sql.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Svg.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5WebChannel.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5WebKit.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5WebKitWidgets.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\bin\Qt5Xml.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\platforms\qminimal.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\imageformats\qjpeg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\imageformats\qsvg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\imageformats\qtiff.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\imageformats\qgif.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\bearer\qgenericbearer.dll"; DestDir: "{app}\bearer"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\bearer\qnativewifibearer.dll"; DestDir: "{app}\bearer"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\printsupport\windowsprintersupport.dll"; DestDir: "{app}\printsupport"; Flags: ignoreversion +Source: "{#MyQtDir}\plugins\sqldrivers\qsqlite.dll"; DestDir: "{app}\sqldrivers"; Flags: ignoreversion + +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Tasks] +Name: kmlAssociation; Description: "Associate ""kml"" extension (KML files from e.g. Google Earth)"; GroupDescription: File extensions: +Name: kmzAssociation; Description: "Associate ""kmz"" extension (Compressed KML files from e.g. Google Earth)"; GroupDescription: File extensions: +Name: gpxAssociation; Description: "Associate ""gpx"" extension (GPS Exchange Format)"; GroupDescription: File extensions: +Name: jsonAssociation; Description: "Associate ""json"" extension (GeoJSON files)"; Flags: unchecked; GroupDescription: File extensions: +Name: geojsonAssociation; Description: "Associate ""geojson"" extension (GeoJSON files)"; GroupDescription: File extensions: + +[Registry] + +Root: HKCR; Subkey: ".kml"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Tasks: kmlAssociation +Root: HKCR; Subkey: ".kmz"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Tasks: kmzAssociation +Root: HKCR; Subkey: ".gpx"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Tasks: gpxAssociation +Root: HKCR; Subkey: ".json"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Tasks: jsonAssociation +Root: HKCR; Subkey: ".geojson"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Tasks: geojsonAssociation + +Root: HKCR; Subkey: "{#MyAppName}"; ValueData: "Program {#MyAppName}"; Flags: uninsdeletekey; ValueType: string; ValueName: "" +Root: HKCR; Subkey: "{#MyAppName}\DefaultIcon"; ValueData: "{app}\{#MyAppExeName},0"; ValueType: string; ValueName: "" +Root: HKCR; Subkey: "{#MyAppName}\shell\open\command"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; ValueType: string; ValueName: "" + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent diff --git a/marble.nsi b/marble.nsi deleted file mode 100644 index 152503d10..000000000 --- a/marble.nsi +++ /dev/null @@ -1,288 +0,0 @@ -; basic script template for NSIS installers -; -; Written by Philip Chu -; Copyright (c) 2004-2005 Technicat, LLC -; -; This software is provided 'as-is', without any express or implied warranty. -; In no event will the authors be held liable for any damages arising from the use of this software. - -; Permission is granted to anyone to use this software for any purpose, -; including commercial applications, and to alter it ; and redistribute -; it freely, subject to the following restrictions: - -; 1. The origin of this software must not be misrepresented; you must not claim that -; you wrote the original software. If you use this software in a product, an -; acknowledgment in the product documentation would be appreciated but is not required. - -; 2. Altered source versions must be plainly marked as such, and must not be -; misrepresented as being the original software. - -; 3. This notice may not be removed or altered from any source distribution. - -!include "FileAssociation.nsh" - -!define architecture "x86" ; 32 or 64 bit build? x86 or x64 - -!define version "1.11.3" ; current Marble version -!define VCREDIST_DIR "C:\marble" ; where do visual studio redistributable packages lie? - -!define setup "marble-setup_${version}_${architecture}.exe" -!define VCREDIST_FILE "vcredist_${architecture}.exe" - -!define company "KDE" -!define prodname "Marble" -!define exec "marble-qt.exe" - -; x64 -; !define qtdir "C:\Qt\5.5\msvc2013_64" -; !define srcdir "C:\marble\export-64bit" ; where did you install Marble (CMAKE_INSTALL_PREFIX)? -; InstallDir "$PROGRAMFILES64\${prodname}" -; x86 - !define qtdir "C:\Qt\5.5\msvc2013" - !define srcdir "C:\marble\export-32bit" ; where did you install Marble (CMAKE_INSTALL_PREFIX)? - InstallDir "$PROGRAMFILES\${prodname}" - -; optional stuff - -; license text file -!define licensefile LICENSE.txt - -; icons must be Microsoft .ICO files -; !define icon "icon.ico" - -; installer background screen -; !define screenimage background.bmp - -; registry stuff - -!define regkey "Software\${company}\${prodname}" -!define uninstkey "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" - -!define startmenu "$SMPROGRAMS\${prodname}" -!define uninstaller "uninstall.exe" - -;-------------------------------- - -;XPStyle on -ShowInstDetails hide -ShowUninstDetails hide - -Name "${prodname}" -Caption "${prodname}" - -!ifdef icon -Icon "${icon}" -!endif - -OutFile "${setup}" - -SetDateSave on -SetDatablockOptimize on -CRCCheck on -SilentInstall normal - -InstallDirRegKey HKLM "${regkey}" "" - -!ifdef licensefile -LicenseText "License" -LicenseData "${srcdir}\data\${licensefile}" -!endif - -; pages -; we keep it simple - leave out selectable installation types - -!ifdef licensefile -Page license -!endif - -; Page components -Page directory -Page instfiles - -UninstPage uninstConfirm -UninstPage instfiles - -;-------------------------------- - -AutoCloseWindow false -;ShowInstDetails show - -!ifdef screenimage - -; set up background image -; uses BgImage plugin - -Function .onGUIInit - ; extract background BMP into temp plugin directory - InitPluginsDir - File /oname=$PLUGINSDIR\1.bmp "${screenimage}" - - BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\1.bmp - BgImage::Redraw /NOUNLOAD -FunctionEnd - -Function .onGUIEnd - ; Destroy must not have /NOUNLOAD so NSIS will be able to unload and delete BgImage before it exits - BgImage::Destroy -FunctionEnd - -!endif - -; beginning (invisible) section -Section - - WriteRegStr HKLM "${regkey}" "Install_Dir" "$INSTDIR" - ; write uninstall strings - WriteRegStr HKLM "${uninstkey}" "DisplayName" "${prodname} (remove only)" - WriteRegStr HKLM "${uninstkey}" "UninstallString" '"$INSTDIR\${uninstaller}"' - -!ifdef filetype - WriteRegStr HKCR "${filetype}" "" "${prodname}" -!endif - - WriteRegStr HKCR "${prodname}\Shell\open\command\" "" '"$INSTDIR\${exec} "%1"' - ${registerExtension} "$INSTDIR\${exec}" ".kml" "Keyhole Markup Language (KML)" - ${registerExtension} "$INSTDIR\${exec}" ".kmz" "Keyhole Markup Language (KML)" - ${registerExtension} "$INSTDIR\${exec}" ".gpx" "GPS Exchange Format (GPX)" - -!ifdef icon - WriteRegStr HKCR "${prodname}\DefaultIcon" "" "$INSTDIR\${icon}" -!endif - - SetOutPath $INSTDIR - -ReadRegDword $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A749D8E6-B613-3BE3-8F5F-045C84EBA29B}" "Version" -IntCmp $0 0 0 +3 - File "${VCREDIST_DIR}\${VCREDIST_FILE}" - ExecWait '"$INSTDIR\${VCREDIST_FILE}" /q /norestart' - -; package all files, recursively, preserving attributes -; assume files are in the correct places - -File /a /r \ - /x "*.nsi" \ - /x "${setup}" \ - /x "marble-touch.exe" \ - /x "marble-mobile.exe" \ - /x "RoutinoPlugin.dll" \ - "${srcdir}\*.*" - -File /a /r \ - "${qtdir}\bin\ICUDT54.DLL" \ - "${qtdir}\bin\ICUIN54.DLL" \ - "${qtdir}\bin\ICUUC54.DLL" \ - "${qtdir}\bin\QT5CORE.DLL" \ - "${qtdir}\bin\QT5GUI.DLL" \ - "${qtdir}\bin\QT5MULTIMEDIA.DLL" \ - "${qtdir}\bin\QT5MULTIMEDIAWIDGETS.DLL" \ - "${qtdir}\bin\QT5NETWORK.DLL" \ - "${qtdir}\bin\QT5OPENGL.DLL" \ - "${qtdir}\bin\QT5POSITIONING.DLL" \ - "${qtdir}\bin\QT5PRINTSUPPORT.DLL" \ - "${qtdir}\bin\QT5QML.DLL" \ - "${qtdir}\bin\QT5QUICK.DLL" \ - "${qtdir}\bin\QT5SCRIPT.DLL" \ - "${qtdir}\bin\QT5SENSORS.DLL" \ - "${qtdir}\bin\QT5SQL.DLL" \ - "${qtdir}\bin\QT5SVG.DLL" \ - "${qtdir}\bin\QT5WEBCHANNEL.DLL" \ - "${qtdir}\bin\QT5WEBKIT.DLL" \ - "${qtdir}\bin\QT5WEBKITWIDGETS.DLL" \ - "${qtdir}\bin\QT5WIDGETS.DLL" \ - "${qtdir}\bin\QT5XML.DLL" - - -SetOutPath $INSTDIR\platforms -File /a "${qtdir}\plugins\platforms\qminimal.dll" \ - "${qtdir}\plugins\platforms\qwindows.dll" -SetOutPath $INSTDIR\imageformats -File /a "${qtdir}\plugins\imageformats\qjpeg.dll" \ - "${qtdir}\plugins\imageformats\qsvg.dll" \ - "${qtdir}\plugins\imageformats\qtiff.dll" \ - "${qtdir}\plugins\imageformats\qgif.dll" -SetOutPath $INSTDIR\bearer -File /a "${qtdir}\plugins\bearer\qgenericbearer.dll" \ - "${qtdir}\plugins\bearer\qnativewifibearer.dll" -SetOutPath $INSTDIR\printsupport -File /a "${qtdir}\plugins\printsupport\windowsprintersupport.dll" -SetOutPath $INSTDIR\sqldrivers -File /a "${qtdir}\plugins\sqldrivers\qsqlite.dll" -SetOutPath $INSTDIR - -!ifdef licensefile -File /a "${srcdir}\data\${licensefile}" -!endif - -!ifdef notefile -File /a "${srcdir}\${notefile}" -!endif - -!ifdef icon -File /a "${srcdir}\${icon}" -!endif - -; any application-specific files -!ifdef files -include "${files}" -!endif - - WriteUninstaller "${uninstaller}" - -SectionEnd - -; create shortcuts -Section - - CreateDirectory "${startmenu}" - SetOutPath $INSTDIR ; for working directory - CreateShortCut "${startmenu}\${prodname}.lnk" "$INSTDIR\${exec}" - CreateShortCut "${startmenu}\Uninstall.lnk" $INSTDIR\uninstall.exe" - -!ifdef licensefile - CreateShortCut "${startmenu}\LICENSE.lnk "$INSTDIR\${licensefile}" -!endif - -!ifdef notefile - CreateShortCut "${startmenu}\Release Notes.lnk "$INSTDIR\${notefile}" -!endif - -!ifdef helpfile - CreateShortCut "${startmenu}\Documentation.lnk "$INSTDIR\${helpfile}" -!endif - -!ifdef website -WriteINIStr "${startmenu}\web site.url" "InternetShortcut" "URL" ${website} - ; CreateShortCut "${startmenu}\Web Site.lnk "${website}" "URL" -!endif - -!ifdef notefile -ExecShell "open" "$INSTDIR\${notefile}" -!endif - -SectionEnd - -; Uninstaller -; All section names prefixed by "Un" will be in the uninstaller - -UninstallText "This will uninstall ${prodname}." - -!ifdef icon -UninstallIcon "${icon}" -!endif - -Section "Uninstall" - -DeleteRegKey HKLM "${uninstkey}" -DeleteRegKey HKLM "${regkey}" -${unregisterExtension} ".kml" "Keyhole Markup Language (KML)" -${unregisterExtension} ".kmz" "Keyhole Markup Language (KML)" -${unregisterExtension} ".gpx" "GPS Exchange Format (GPX)" - -RMDir /r "${startmenu}" -RMDir /r "$INSTDIR" - -; generated on runtime -DeleteRegKey HKCU "Software\${company}\Marble Desktop Globe" -RMDir /r "$%USERPROFILE%\.marble" - -SectionEnd