CPack/NSIS: Add options for custom welcome/finish titles + display on 3 lines

Fixes: #11275
This commit is contained in:
Johnny Jazeix 2019-11-05 20:09:53 +01:00
parent 60e7e5b605
commit 68b5af65fa
4 changed files with 61 additions and 6 deletions

View File

@ -133,3 +133,19 @@ on Windows Nullsoft Scriptable Install System.
Specify the name of the program to uninstall the version.
Default is ``Uninstall``.
.. variable:: CPACK_NSIS_WELCOME_TITLE
The title to display on the top of the page for the welcome page.
.. variable:: CPACK_NSIS_WELCOME_TITLE_3LINES
Display the title in the welcome page on 3 lines instead of 2.
.. variable:: CPACK_NSIS_FINISH_TITLE
The title to display on the top of the page for the finish page.
.. variable:: CPACK_NSIS_FINISH_TITLE_3LINES
Display the title in the finish page on 3 lines instead of 2.

View File

@ -0,0 +1,10 @@
cpack-nsis-welcome-finish-page-title
------------------------------------
* The :cpack_gen:`CPack NSIS Generator` now supports
:variable:`CPACK_NSIS_WELCOME_TITLE` and :variable:`CPACK_NSIS_WELCOME_TITLE_3LINES`.
These can be used to specify the welcome page title and display it in 3 lines.
* The :cpack_gen:`CPack NSIS Generator` now supports
:variable:`CPACK_NSIS_FINISH_TITLE` and :variable:`CPACK_NSIS_FINISH_TITLE_3LINES`.
These can be used to specify the finish page title and display it in 3 lines.

View File

@ -542,6 +542,8 @@ FunctionEnd
;--------------------------------
;Pages
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE@
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
@ -557,6 +559,8 @@ FunctionEnd
@CPACK_NSIS_PAGE_COMPONENTS@
!insertmacro MUI_PAGE_INSTFILES
@CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE@
@CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM

View File

@ -129,14 +129,13 @@ int cmCPackNSISGenerator::PackageFiles()
this->IsSet("CPACK_NSIS_MUI_UNIICON")) {
std::string installerIconCode;
if (this->IsSet("CPACK_NSIS_MUI_ICON")) {
installerIconCode += "!define MUI_ICON \"";
installerIconCode += this->GetOption("CPACK_NSIS_MUI_ICON");
installerIconCode += "\"\n";
installerIconCode += cmStrCat(
"!define MUI_ICON \"", this->GetOption("CPACK_NSIS_MUI_ICON"), "\"\n");
}
if (this->IsSet("CPACK_NSIS_MUI_UNIICON")) {
installerIconCode += "!define MUI_UNICON \"";
installerIconCode += this->GetOption("CPACK_NSIS_MUI_UNIICON");
installerIconCode += "\"\n";
installerIconCode +=
cmStrCat("!define MUI_UNICON \"",
this->GetOption("CPACK_NSIS_MUI_UNIICON"), "\"\n");
}
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_MUI_ICON_CODE",
installerIconCode.c_str());
@ -174,6 +173,32 @@ int cmCPackNSISGenerator::PackageFiles()
installerRunCode.c_str());
}
if (this->IsSet("CPACK_NSIS_WELCOME_TITLE")) {
std::string welcomeTitleCode =
cmStrCat("!define MUI_WELCOMEPAGE_TITLE \"",
this->GetOption("CPACK_NSIS_WELCOME_TITLE"), "\"");
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE",
welcomeTitleCode.c_str());
}
if (this->IsSet("CPACK_NSIS_WELCOME_TITLE_3LINES")) {
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE",
"!define MUI_WELCOMEPAGE_TITLE_3LINES");
}
if (this->IsSet("CPACK_NSIS_FINISH_TITLE")) {
std::string finishTitleCode =
cmStrCat("!define MUI_FINISHPAGE_TITLE \"",
this->GetOption("CPACK_NSIS_FINISH_TITLE"), "\"");
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE",
finishTitleCode.c_str());
}
if (this->IsSet("CPACK_NSIS_FINISH_TITLE_3LINES")) {
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE",
"!define MUI_FINISHPAGE_TITLE_3LINES");
}
// Setup all of the component sections
if (this->Components.empty()) {
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLATION_TYPES", "");