From e8f2dd30383048b3c8cadab5365dc02f0bde83c1 Mon Sep 17 00:00:00 2001 From: natureh 510 Date: Sun, 30 Jun 2013 19:19:34 +0200 Subject: [PATCH] Issue 1904: "Setup script for Windows" with InnoSetyup, waiting for a better one with Wix widgets. --- rtdata/CMakeLists.txt | 26 + rtdata/win/InnoSetup/WindowsInnoSetup.iss.in | 126 ++++ rtdata/win/InnoSetup/installerStrip.bmp | Bin 0 -> 154542 bytes rtdata/win/InnoSetup/installerStrip.svg | 671 +++++++++++++++++++ rtdata/win/readme.txt | 14 + 5 files changed, 837 insertions(+) create mode 100644 rtdata/win/InnoSetup/WindowsInnoSetup.iss.in create mode 100644 rtdata/win/InnoSetup/installerStrip.bmp create mode 100644 rtdata/win/InnoSetup/installerStrip.svg create mode 100644 rtdata/win/readme.txt diff --git a/rtdata/CMakeLists.txt b/rtdata/CMakeLists.txt index 93aad1c70..fdbda3a2a 100644 --- a/rtdata/CMakeLists.txt +++ b/rtdata/CMakeLists.txt @@ -17,6 +17,28 @@ else (WIN32) set(OPTIONSFILE "options/options.lin") endif (WIN32) +if (WIN32) + find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../) + # Fail if Mercurial is not installed + if (HG_CMD STREQUAL HG_CMD-NOTFOUND) + message(FATAL_ERROR "hg command not found!") + else (HG_CMD STREQUAL HG_CMD-NOTFOUND) + message(STATUS "hg command found: ${HG_CMD}") + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE) + endif (HG_CMD STREQUAL HG_CMD-NOTFOUND) + + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + set(BUILD_BIT_DEPTH 32) + set(ARCHITECTURE_ALLOWED x86) + elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BUILD_BIT_DEPTH 64) + set(ARCHITECTURE_ALLOWED x64) + endif (CMAKE_SIZEOF_VOID_P EQUAL 4) + configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_CURRENT_BINARY_DIR}/WindowsInnoSetup.iss") + install (FILES "${CMAKE_CURRENT_BINARY_DIR}/WindowsInnoSetup.iss" DESTINATION ${BINDIR}) +endif (WIN32) + if (UNIX) configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/icons/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop") install (FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) @@ -40,6 +62,10 @@ install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.png") install (FILES ${OPTIONSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME options) +if (WIN32) + install (FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") +endif (WIN32) + if (APPLE) # CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE='. set (MACOSX_BUNDLE_COMMAND DUMMY_VARIABLE= diff --git a/rtdata/win/InnoSetup/WindowsInnoSetup.iss.in b/rtdata/win/InnoSetup/WindowsInnoSetup.iss.in new file mode 100644 index 000000000..a5a142491 --- /dev/null +++ b/rtdata/win/InnoSetup/WindowsInnoSetup.iss.in @@ -0,0 +1,126 @@ +; Script initially generated by the Inno Setup Script Wizard +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + + + +; This script has to be used by "INNO Setup" (http://www.jrsoftware.org/) to create a setup executable. +; When the "make install" process ends, you can double click on this file to load it into +; INNO Setup, then execute it to create the archive. It expect to find all the dependency libs +; in the root destination folder (the one of the 'make install' process), and the usual 'lib' directory. +; Please note that all *.dll files will be added, so be carefull on which dll are present in the directory +; before compiling the INNO Setup script. +; +; It also search for and bundles all "rawtherapee*.exe" files, which mean that you can bundle a Release and +; a Debug build at the same time (for conveniency), but official downloads must only contain the Release +; version. +; +; In all cases, you have to bundle at least one file named "rawtherapee.exe", which INNO Setup will require +; as a default executable to run. +; +; This script is configured to check that the operating system's bit depth is the same than the executable file. +; Please note that the ia64 architecture is not supported (is it really necessary?) + + + +#define MyAppName "RawTherapee" +#define MyAppVersion "${HG_VERSION}" +#define MyAppFullVersion "${HG_VERSION}.${HG_TAGDISTANCE}" +#define MyAppPublisher "rawtherapee.com" +#define MyAppURL "http://www.rawtherapee.com/" +#define MyAppExeName "rawtherapee.exe" +#define MyBuildBasePath "${CMAKE_INSTALL_PREFIX}" +#define MySourceBasePath "${PROJECT_SOURCE_DIR}" +#define MyBitDepth "${BUILD_BIT_DEPTH}" +#define MyTargetArchitecture "${ARCHITECTURE_ALLOWED}" + +[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={{128459AB-59A7-430A-8BD0-3D8803D50400} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +VersionInfoVersion={#MyAppFullVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={pf}\{#MyAppName} {#MyAppFullVersion} +DefaultGroupName={#MyAppName} {#MyAppFullVersion} +AllowNoIcons=yes +LicenseFile={#MyBuildBasePath}\LICENSE.txt +OutputDir={#MyBuildBasePath}\..\ +OutputBaseFilename={#MyAppName}{#MyAppVersion}-Win{#MyBitDepth} +SetupIconFile={#MySourceBasePath}\rtgui\RT.ico +WizardImageFile={#MySourceBasePath}\rtdata\win\InnoSetup\installerStrip.bmp +WizardImageBackColor=$2A2A2A +Compression=lzma +SolidCompression=yes +ArchitecturesAllowed={#MyTargetArchitecture} +ArchitecturesInstallIn64BitMode=x64 + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" +Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" +Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl" +Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl" +Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" +Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl" +Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" +Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "nepali"; MessagesFile: "compiler:Languages\Nepali.islu" +Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl" +Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" +Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl" +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "serbiancyrillic"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl" +Name: "serbianlatin"; MessagesFile: "compiler:Languages\SerbianLatin.isl" +Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +;Name: "desktopicon\common"; Description: "For all users"; GroupDescription: "Additional icons:"; Flags: exclusive +;Name: "desktopicon\user"; Description: "For the current user only"; GroupDescription: "Additional icons:"; Flags: exclusive unchecked +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1 + +[Files] +Source: "{#MyBuildBasePath}\rawtherapee.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\dcpprofiles\*"; DestDir: "{app}\dcpprofiles\"; Flags: ignoreversion recursesubdirs createallsubdirs +;Source: "{#MyBuildBasePath}\etc\*"; DestDir: "{app}\etc\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\iccprofiles\*"; DestDir: "{app}\iccprofiles\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\images\*"; DestDir: "{app}\images\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\languages\*"; DestDir: "{app}\languages\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\lib\*"; DestDir: "{app}\lib\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\profiles\*"; DestDir: "{app}\profiles\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\sounds\*"; DestDir: "{app}\sounds\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\themes\*"; DestDir: "{app}\themes\"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#MyBuildBasePath}\AboutThisBuild.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\AUTHORS.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\RELEASE_NOTES.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\options"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\gspawn-win{#MyBitDepth}-helper.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#MyBuildBasePath}\gspawn-win{#MyBitDepth}-helper-console.exe"; DestDir: "{app}"; Flags: ignoreversion +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\{#MyAppName} {#MyAppFullVersion}"; Filename: "{app}\{#MyAppExeName}" +Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" +Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\{#MyAppName}{#MyAppFullVersion}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName} {#MyAppFullVersion}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/rtdata/win/InnoSetup/installerStrip.bmp b/rtdata/win/InnoSetup/installerStrip.bmp new file mode 100644 index 0000000000000000000000000000000000000000..032414c264e022a63718953b6412ec0aa7098c6e GIT binary patch literal 154542 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/win/readme.txt b/rtdata/win/readme.txt new file mode 100644 index 000000000..f32cdb50a --- /dev/null +++ b/rtdata/win/readme.txt @@ -0,0 +1,14 @@ + +INSTALLER SCRIPTS +----------------- + +This "win" directory includes installer setup mechanisms for Windows 32/64. + +As requested in issue 1904 ( http://code.google.com/p/rawtherapee/issues/detail?id=1904 ), +the preferred choice of setup mechanism is Wix widgets. However an InnoSetup script has been +created before the definitive choice and has been added to the source tree, for convenience. + +Once the Wix setup mechanism will be operational, the InnoSetup can be supressed from the source +tree. + +All discussion about the present document and the setup scripts has to be done in issue 1904. \ No newline at end of file