Commit 18fa819e authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic '21479-branding-name-cpack-nsis'

0aabeb0c

 CPack/NSIS: Add option for setting branding text
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !5784
parents 54f15cbb 0aabeb0c
Pipeline #213486 canceled with stages
in 58 seconds
......@@ -180,3 +180,16 @@ on Windows Nullsoft Scriptable Install System.
.. versionadded:: 3.18
If set, declares that the installer is DPI-aware.
.. variable:: CPACK_NSIS_BRANDING_TEXT
.. versionadded:: 3.20
If set, updates the text at the bottom of the install window.
To set the string to blank, use a space (" ").
.. variable:: CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION
.. versionadded:: 3.20
If set, trim down the size of the control to the size of the branding text string.
cpack-nsis-branding-text
------------------------
* The :cpack_gen:`CPack NSIS Generator` gained new variables
:variable:`CPACK_NSIS_BRANDING_TEXT` and
:variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` to change the
text at the bottom of the install window and change its trim position
......@@ -42,6 +42,7 @@
@CPACK_NSIS_DEFINES@
@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
@CPACK_NSIS_BRANDING_TEXT_CODE@
!include Sections.nsh
......
......@@ -209,6 +209,25 @@ int cmCPackNSISGenerator::PackageFiles()
"ManifestDPIAware true");
}
if (this->IsSet("CPACK_NSIS_BRANDING_TEXT")) {
// Default position to LEFT
std::string brandingTextPosition = "LEFT";
if (this->IsSet("CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION")) {
std::string wantedPosition =
this->GetOption("CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION");
const std::set<std::string> possiblePositions{ "CENTER", "LEFT",
"RIGHT" };
if (possiblePositions.find(wantedPosition) != possiblePositions.end()) {
brandingTextPosition = wantedPosition;
}
}
std::string brandingTextCode =
cmStrCat("BrandingText /TRIM", brandingTextPosition, " \"",
this->GetOption("CPACK_NSIS_BRANDING_TEXT"), "\"\n");
this->SetOptionIfNotSet("CPACK_NSIS_BRANDING_TEXT_CODE",
brandingTextCode.c_str());
}
// Setup all of the component sections
if (this->Components.empty()) {
this->SetOptionIfNotSet("CPACK_NSIS_INSTALLATION_TYPES", "");
......
......@@ -17,5 +17,7 @@ set(CPACK_NSIS_MUI_UNIICON "${PROJECT_SOURCE_DIR}\\\\uninstall.ico")
set(CPACK_GENERATOR "NSIS")
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MANIFEST_DPI_AWARE ON)
set(CPACK_NSIS_BRANDING_TEXT "CMake branding text")
set(CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION "RIGHT")
include(CPack)
......@@ -52,3 +52,11 @@ if("${output_index}" EQUAL "-1")
else()
message(STATUS "Found DPI-aware")
endif()
file(STRINGS "${project_file}" line REGEX "^BrandingText /TRIMRIGHT \"CMake branding text\"")
string(FIND "${line}" "TRIMRIGHT" output_index)
if("${output_index}" EQUAL "-1")
message(FATAL_ERROR "BrandingText not found in the project")
else()
message(STATUS "Found BrandingText")
endif()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment