Explorar el Código

CPack: Validate and document NSIS branding text trim positions

Craig Scott hace 4 años
padre
commit
a6a5256395
Se han modificado 2 ficheros con 12 adiciones y 3 borrados
  1. 2 0
      Help/cpack_gen/nsis.rst
  2. 10 3
      Source/CPack/cmCPackNSISGenerator.cxx

+ 2 - 0
Help/cpack_gen/nsis.rst

@@ -193,3 +193,5 @@ on Windows Nullsoft Scriptable Install System.
  .. versionadded:: 3.20
 
  If set, trim down the size of the control to the size of the branding text string.
+ Allowed values for this variable are ``LEFT``, ``CENTER`` or ``RIGHT``.
+ If not specified, the default behavior is ``LEFT``.

+ 10 - 3
Source/CPack/cmCPackNSISGenerator.cxx

@@ -215,9 +215,16 @@ int cmCPackNSISGenerator::PackageFiles()
     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()) {
+      if (!wantedPosition.empty()) {
+        const std::set<std::string> possiblePositions{ "CENTER", "LEFT",
+                                                       "RIGHT" };
+        if (possiblePositions.find(wantedPosition) ==
+            possiblePositions.end()) {
+          cmCPackLogger(cmCPackLog::LOG_ERROR,
+                        "Unsupported branding text trim position "
+                          << wantedPosition << std::endl);
+          return false;
+        }
         brandingTextPosition = wantedPosition;
       }
     }