mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
CPack/NSIS: Add option for setting branding text
See https://nsis.sourceforge.io/Reference/BrandingText for more information. Fixes: #21479
This commit is contained in:
@@ -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.
|
||||
|
||||
7
Help/release/dev/cpack-nsis-branding-text.rst
Normal file
7
Help/release/dev/cpack-nsis-branding-text.rst
Normal file
@@ -0,0 +1,7 @@
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user