This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  0ff5bdd4c99824bb6e4b1c19f6f9f9e47ee96088 (commit)
       via  0618f8b3ed690275c87e5494084f33a6d3a07be7 (commit)
       via  7b2e9b5537af2977e6096d0c2cad1a2b94e11002 (commit)
       via  9d8bb7bc4e09131055a1ff542f655a4168cda9ca (commit)
       via  ef86e8991b6b9b2d4b25f98a95ba950f9ba19485 (commit)
       via  a43c25a2e3aa2ad32af99850b55240ce088f0483 (commit)
       via  bae7a82ffab7350ae55a104d85d91b5d36347cae (commit)
       via  30908fa0ee965a67c6dbdc554c67038d14bca7d6 (commit)
       via  0ce8a5c08de0852f22f9be595c6f08a4a6c865e9 (commit)
       via  9457c95aa033aa192b0fbe2796e3a660a660d0ad (commit)
       via  68b5af65fa09c90278826898f199d289c049a01d (commit)
       via  77a01c398f20bf41921d73082f469acf6c9e0acf (commit)
       via  d5d5ba3f7fe7dd5a52e6671387128cb9a901ec1e (commit)
       via  005aba29a1b5774b778bb65f4751a572d628589f (commit)
       via  93b66735ac2092675eec7a636625df84ff306fdc (commit)
      from  48d3b83b9dd3a97874f560660a21b7af8e10ffff (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0ff5bdd4c99824bb6e4b1c19f6f9f9e47ee96088
commit 0ff5bdd4c99824bb6e4b1c19f6f9f9e47ee96088
Merge: 0618f8b3ed d5d5ba3f7f
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:29:12 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:29:22 2019 -0500

    Merge topic 'ccmake_colored_values'
    
    d5d5ba3f7f ccmake: Identify the current cache entry
    005aba29a1 ccmake: Improve display of the key controls
    93b66735ac ccmake: Use type-based colors to display cache values
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3955


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0618f8b3ed690275c87e5494084f33a6d3a07be7
commit 0618f8b3ed690275c87e5494084f33a6d3a07be7
Merge: 7b2e9b5537 68b5af65fa
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:27:56 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:28:05 2019 -0500

    Merge topic 'cpack-nsis-welcome-finish-title'
    
    68b5af65fa CPack/NSIS: Add options for custom welcome/finish titles + 
display on 3 lines
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3980


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7b2e9b5537af2977e6096d0c2cad1a2b94e11002
commit 7b2e9b5537af2977e6096d0c2cad1a2b94e11002
Merge: 9d8bb7bc4e ef86e8991b
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:25:34 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:25:43 2019 -0500

    Merge branch 'release-3.16'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9d8bb7bc4e09131055a1ff542f655a4168cda9ca
commit 9d8bb7bc4e09131055a1ff542f655a4168cda9ca
Merge: a43c25a2e3 77a01c398f
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:25:34 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:25:43 2019 -0500

    Merge topic 'FindBoost-meta-component-ALL'
    
    77a01c398f FindBoost: Prevent warning due to new meta-component "ALL" of 
Boost 1.73
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3996


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a43c25a2e3aa2ad32af99850b55240ce088f0483
commit a43c25a2e3aa2ad32af99850b55240ce088f0483
Merge: 30908fa0ee bae7a82ffa
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:23:47 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:23:56 2019 -0500

    Merge branch 'release-3.16'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=30908fa0ee965a67c6dbdc554c67038d14bca7d6
commit 30908fa0ee965a67c6dbdc554c67038d14bca7d6
Merge: 48d3b83b9d 0ce8a5c08d
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Nov 6 14:23:47 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Wed Nov 6 09:23:56 2019 -0500

    Merge topic 'xcode-restore-CMakeLists'
    
    0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
    9457c95aa0 cmGlobalXCodeGenerator: Mark known source locations
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3999


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=68b5af65fa09c90278826898f199d289c049a01d
commit 68b5af65fa09c90278826898f199d289c049a01d
Author:     Johnny Jazeix <jaz...@gmail.com>
AuthorDate: Tue Nov 5 20:09:53 2019 +0100
Commit:     Johnny Jazeix <jaz...@gmail.com>
CommitDate: Tue Nov 5 20:09:53 2019 +0100

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

diff --git a/Help/cpack_gen/nsis.rst b/Help/cpack_gen/nsis.rst
index 38676c4659..dc6524938c 100644
--- a/Help/cpack_gen/nsis.rst
+++ b/Help/cpack_gen/nsis.rst
@@ -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.
diff --git a/Help/release/dev/cpack-nsis-welcome-finish-page-title.rst 
b/Help/release/dev/cpack-nsis-welcome-finish-page-title.rst
new file mode 100644
index 0000000000..8091d31e6e
--- /dev/null
+++ b/Help/release/dev/cpack-nsis-welcome-finish-page-title.rst
@@ -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.
diff --git a/Modules/Internal/CPack/NSIS.template.in 
b/Modules/Internal/CPack/NSIS.template.in
index c1db769aca..23bb001838 100644
--- a/Modules/Internal/CPack/NSIS.template.in
+++ b/Modules/Internal/CPack/NSIS.template.in
@@ -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
diff --git a/Source/CPack/cmCPackNSISGenerator.cxx 
b/Source/CPack/cmCPackNSISGenerator.cxx
index adea8ecd15..f90a740ef7 100644
--- a/Source/CPack/cmCPackNSISGenerator.cxx
+++ b/Source/CPack/cmCPackNSISGenerator.cxx
@@ -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", "");

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d5d5ba3f7fe7dd5a52e6671387128cb9a901ec1e
commit d5d5ba3f7fe7dd5a52e6671387128cb9a901ec1e
Author:     Sylvain Joubert <joubert...@gmail.com>
AuthorDate: Wed Oct 30 14:10:33 2019 +0100
Commit:     Sylvain Joubert <joubert...@gmail.com>
CommitDate: Mon Nov 4 20:06:51 2019 +0100

    ccmake: Identify the current cache entry

diff --git a/Source/CursesDialog/cmCursesMainForm.cxx 
b/Source/CursesDialog/cmCursesMainForm.cxx
index 4385ddc395..ffc9528966 100644
--- a/Source/CursesDialog/cmCursesMainForm.cxx
+++ b/Source/CursesDialog/cmCursesMainForm.cxx
@@ -447,6 +447,15 @@ void cmCursesMainForm::UpdateStatusBar(const char* message)
 
   bar[width] = '\0';
 
+  // Highlight the current label
+  // Fields are grouped by 3, the first one being the label
+  // so start at 0 and move up by 3 avoiding the last null entry
+  using size_type = decltype(this->Fields)::size_type;
+  for (size_type index = 0; index < this->Fields.size() - 1; index += 3) {
+    bool currentLabel = index == static_cast<size_type>(findex - 2);
+    set_field_fore(this->Fields[index], currentLabel ? A_STANDOUT : A_NORMAL);
+  }
+
   // Display CMake version info on the next line
   // We want to display this on the right
   char version[cmCursesMainForm::MAX_WIDTH];

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=005aba29a1b5774b778bb65f4751a572d628589f
commit 005aba29a1b5774b778bb65f4751a572d628589f
Author:     Sylvain Joubert <joubert...@gmail.com>
AuthorDate: Wed Oct 30 14:08:42 2019 +0100
Commit:     Sylvain Joubert <joubert...@gmail.com>
CommitDate: Mon Nov 4 18:59:20 2019 +0100

    ccmake: Improve display of the key controls
    
    Reduce space usage and add the key to display the output

diff --git a/Source/CursesDialog/cmCursesLongMessageForm.cxx 
b/Source/CursesDialog/cmCursesLongMessageForm.cxx
index 41fceee3c6..a69fdee894 100644
--- a/Source/CursesDialog/cmCursesLongMessageForm.cxx
+++ b/Source/CursesDialog/cmCursesLongMessageForm.cxx
@@ -86,7 +86,7 @@ void cmCursesLongMessageForm::PrintKeys()
     return;
   }
   char firstLine[512];
-  sprintf(firstLine, "Press [e] to exit help");
+  sprintf(firstLine, "Press [e] to exit screen");
 
   char fmt_s[] = "%s";
   curses_move(y - 2, 0);
diff --git a/Source/CursesDialog/cmCursesMainForm.cxx 
b/Source/CursesDialog/cmCursesMainForm.cxx
index 972509f65f..4385ddc395 100644
--- a/Source/CursesDialog/cmCursesMainForm.cxx
+++ b/Source/CursesDialog/cmCursesMainForm.cxx
@@ -322,25 +322,25 @@ void cmCursesMainForm::PrintKeys(int process /* = 0 */)
     } else {
       if (this->OkToGenerate) {
         sprintf(firstLine,
-                "Press [c] to configure       Press [g] to generate and exit");
+                "      [l] Show log output   [c] Configure"
+                "       [g] Generate        ");
       } else {
         sprintf(firstLine,
-                "Press [c] to configure                                     ");
+                "      [l] Show log output   [c] Configure"
+                "                           ");
       }
       {
         const char* toggleKeyInstruction =
-          "Press [t] to toggle advanced mode (Currently %s)";
+          "      [t] Toggle advanced mode (currently %s)";
         sprintf(thirdLine, toggleKeyInstruction,
-                this->AdvancedMode ? "On" : "Off");
+                this->AdvancedMode ? "on" : "off");
       }
       sprintf(secondLine,
-              "Press [h] for help           "
-              "Press [q] to quit without generating");
+              "      [h] Help              [q] Quit without generating");
     }
 
     curses_move(y - 4, 0);
-    char fmt[512] =
-      "Press [enter] to edit option Press [d] to delete an entry";
+    char fmt[512] = "Keys: [enter] Edit an entry [d] Delete an entry";
     if (process) {
       memset(fmt, ' ', 57);
     }

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93b66735ac2092675eec7a636625df84ff306fdc
commit 93b66735ac2092675eec7a636625df84ff306fdc
Author:     Sylvain Joubert <joubert...@gmail.com>
AuthorDate: Sun Oct 27 18:25:41 2019 +0100
Commit:     Sylvain Joubert <joubert...@gmail.com>
CommitDate: Mon Nov 4 18:59:20 2019 +0100

    ccmake: Use type-based colors to display cache values
    
    The colors are based on the entry type (or value for booleans),
    paths and filepaths sharing the same color.

diff --git a/Help/release/dev/ccmake-colored-values.rst 
b/Help/release/dev/ccmake-colored-values.rst
new file mode 100644
index 0000000000..b00885dfc0
--- /dev/null
+++ b/Help/release/dev/ccmake-colored-values.rst
@@ -0,0 +1,5 @@
+ccmake-colored-values
+---------------------
+
+* :manual:`ccmake(1)` now displays cache values using colors
+  based on the entry type if the terminal supports color.
diff --git a/Source/CursesDialog/CMakeLists.txt 
b/Source/CursesDialog/CMakeLists.txt
index a9e46fd58f..c24ee76216 100644
--- a/Source/CursesDialog/CMakeLists.txt
+++ b/Source/CursesDialog/CMakeLists.txt
@@ -5,6 +5,7 @@ add_executable(ccmake
   ccmake.cxx
   cmCursesBoolWidget.cxx
   cmCursesCacheEntryComposite.cxx
+  cmCursesColor.cxx
   cmCursesDummyWidget.cxx
   cmCursesFilePathWidget.cxx
   cmCursesForm.cxx
@@ -17,21 +18,41 @@ add_executable(ccmake
   cmCursesWidget.cxx
   )
 target_include_directories(ccmake PRIVATE ${CURSES_INCLUDE_PATH})
+set(CMAKE_REQUIRED_INCLUDES ${CURSES_INCLUDE_PATH})
 target_link_libraries(ccmake CMakeLib)
 if(CMAKE_USE_SYSTEM_FORM)
   find_path(CURSES_FORM_INCLUDE_DIR NAMES form.h HINTS ${CURSES_INCLUDE_PATH} 
${CURSES_INCLUDE_PATH}/ncurses)
   if(CURSES_FORM_INCLUDE_DIR)
     target_include_directories(ccmake PRIVATE ${CURSES_FORM_INCLUDE_DIR})
+    list(APPEND CMAKE_REQUIRED_INCLUDES ${CURSES_FORM_INCLUDE_DIR})
   endif()
   target_link_libraries(ccmake
     ${CURSES_FORM_LIBRARY}
     ${CURSES_LIBRARY}
   )
+  set(CMAKE_REQUIRED_LIBRARIES
+    ${CURSES_FORM_LIBRARY}
+    ${CURSES_LIBRARY}
+  )
   if(CURSES_EXTRA_LIBRARY)
     target_link_libraries(ccmake ${CURSES_EXTRA_LIBRARY})
+    list(APPEND CMAKE_REQUIRED_LIBRARIES ${CURSES_EXTRA_LIBRARY})
   endif()
 else()
   target_link_libraries(ccmake cmForm)
+  get_target_property(cmFormIncludeDirs cmForm INTERFACE_INCLUDE_DIRECTORIES)
+  list(APPEND CMAKE_REQUIRED_INCLUDES ${cmFormIncludeDirs})
+  get_target_property(cmFormLibraries cmForm INTERFACE_LINK_LIBRARIES)
+  set(CMAKE_REQUIRED_LIBRARIES ${cmFormLibraries})
+endif()
+
+include(CheckSymbolExists)
+check_symbol_exists(use_default_colors
+  "form.h"
+  HAVE_CURSES_USE_DEFAULT_COLORS)
+if(HAVE_CURSES_USE_DEFAULT_COLORS)
+  set_source_files_properties(cmCursesColor.cxx
+    PROPERTIES COMPILE_DEFINITIONS HAVE_CURSES_USE_DEFAULT_COLORS)
 endif()
 
 if(CMake_JOB_POOL_LINK_BIN)
diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx
index 9e9dfbd195..7732105085 100644
--- a/Source/CursesDialog/ccmake.cxx
+++ b/Source/CursesDialog/ccmake.cxx
@@ -9,6 +9,7 @@
 
 #include "cmsys/Encoding.hxx"
 
+#include "cmCursesColor.h"
 #include "cmCursesForm.h"
 #include "cmCursesMainForm.h"
 #include "cmCursesStandardIncludes.h"
@@ -126,6 +127,7 @@ int main(int argc, char const* const* argv)
   noecho();             /* Echo off */
   cbreak();             /* nl- or cr not needed */
   keypad(stdscr, true); /* Use key symbols as KEY_DOWN */
+  cmCursesColor::InitColors();
 
   signal(SIGWINCH, onsig);
 
diff --git a/Source/CursesDialog/cmCursesBoolWidget.cxx 
b/Source/CursesDialog/cmCursesBoolWidget.cxx
index 97b0811288..c4dbed8350 100644
--- a/Source/CursesDialog/cmCursesBoolWidget.cxx
+++ b/Source/CursesDialog/cmCursesBoolWidget.cxx
@@ -4,6 +4,7 @@
 
 #include <string>
 
+#include "cmCursesColor.h"
 #include "cmCursesWidget.h"
 #include "cmStateTypes.h"
 
@@ -12,8 +13,10 @@ cmCursesBoolWidget::cmCursesBoolWidget(int width, int 
height, int left,
   : cmCursesWidget(width, height, left, top)
 {
   this->Type = cmStateEnums::BOOL;
-  set_field_fore(this->Field, A_NORMAL);
-  set_field_back(this->Field, A_STANDOUT);
+  if (!cmCursesColor::HasColors()) {
+    set_field_fore(this->Field, A_NORMAL);
+    set_field_back(this->Field, A_STANDOUT);
+  }
   field_opts_off(this->Field, O_STATIC);
   this->SetValueAsBool(false);
 }
@@ -42,8 +45,16 @@ void cmCursesBoolWidget::SetValueAsBool(bool value)
 {
   if (value) {
     this->SetValue("ON");
+    if (cmCursesColor::HasColors()) {
+      set_field_fore(this->Field, COLOR_PAIR(cmCursesColor::BoolOn));
+      set_field_back(this->Field, COLOR_PAIR(cmCursesColor::BoolOn));
+    }
   } else {
     this->SetValue("OFF");
+    if (cmCursesColor::HasColors()) {
+      set_field_fore(this->Field, COLOR_PAIR(cmCursesColor::BoolOff));
+      set_field_back(this->Field, COLOR_PAIR(cmCursesColor::BoolOff));
+    }
   }
 }
 
diff --git a/Source/CursesDialog/cmCursesColor.cxx 
b/Source/CursesDialog/cmCursesColor.cxx
new file mode 100644
index 0000000000..641d48ccec
--- /dev/null
+++ b/Source/CursesDialog/cmCursesColor.cxx
@@ -0,0 +1,29 @@
+/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+   file Copyright.txt or https://cmake.org/licensing for details.  */
+#include "cmCursesColor.h"
+
+#include "cmCursesStandardIncludes.h"
+
+bool cmCursesColor::HasColors()
+{
+#ifdef HAVE_CURSES_USE_DEFAULT_COLORS
+  return has_colors();
+#else
+  return false;
+#endif
+}
+
+void cmCursesColor::InitColors()
+{
+#ifdef HAVE_CURSES_USE_DEFAULT_COLORS
+  if (HasColors()) {
+    start_color();
+    use_default_colors();
+    init_pair(cmCursesColor::BoolOff, COLOR_RED, -1);
+    init_pair(cmCursesColor::BoolOn, COLOR_GREEN, -1);
+    init_pair(cmCursesColor::String, COLOR_BLUE, -1);
+    init_pair(cmCursesColor::Path, COLOR_YELLOW, -1);
+    init_pair(cmCursesColor::Options, COLOR_MAGENTA, -1);
+  }
+#endif
+}
diff --git a/Source/CursesDialog/cmCursesColor.h 
b/Source/CursesDialog/cmCursesColor.h
new file mode 100644
index 0000000000..78ca52cbb1
--- /dev/null
+++ b/Source/CursesDialog/cmCursesColor.h
@@ -0,0 +1,24 @@
+/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+   file Copyright.txt or https://cmake.org/licensing for details.  */
+#ifndef cmCursesColor_h
+#define cmCursesColor_h
+
+class cmCursesColor
+{
+public:
+  enum Color
+  {
+    // Default color is pair 0
+    BoolOff = 1,
+    BoolOn,
+    String,
+    Path,
+    Options
+  };
+
+  static bool HasColors();
+
+  static void InitColors();
+};
+
+#endif // cmCursesColor_h
diff --git a/Source/CursesDialog/cmCursesOptionsWidget.cxx 
b/Source/CursesDialog/cmCursesOptionsWidget.cxx
index eb773ad0fb..a15241faed 100644
--- a/Source/CursesDialog/cmCursesOptionsWidget.cxx
+++ b/Source/CursesDialog/cmCursesOptionsWidget.cxx
@@ -2,6 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmCursesOptionsWidget.h"
 
+#include "cmCursesColor.h"
 #include "cmCursesWidget.h"
 #include "cmStateTypes.h"
 
@@ -15,8 +16,13 @@ cmCursesOptionsWidget::cmCursesOptionsWidget(int width, int 
height, int left,
   // there is no option type, and string type causes ccmake to cast
   // the widget into a string widget at some point.  BOOL is safe for
   // now.
-  set_field_fore(this->Field, A_NORMAL);
-  set_field_back(this->Field, A_STANDOUT);
+  if (cmCursesColor::HasColors()) {
+    set_field_fore(this->Field, COLOR_PAIR(cmCursesColor::Options));
+    set_field_back(this->Field, COLOR_PAIR(cmCursesColor::Options));
+  } else {
+    set_field_fore(this->Field, A_NORMAL);
+    set_field_back(this->Field, A_STANDOUT);
+  }
   field_opts_off(this->Field, O_STATIC);
 }
 
diff --git a/Source/CursesDialog/cmCursesPathWidget.cxx 
b/Source/CursesDialog/cmCursesPathWidget.cxx
index bb3808e89c..8ed42dee75 100644
--- a/Source/CursesDialog/cmCursesPathWidget.cxx
+++ b/Source/CursesDialog/cmCursesPathWidget.cxx
@@ -4,6 +4,7 @@
 
 #include <vector>
 
+#include "cmCursesColor.h"
 #include "cmCursesMainForm.h"
 #include "cmCursesStringWidget.h"
 #include "cmStateTypes.h"
@@ -16,6 +17,13 @@ cmCursesPathWidget::cmCursesPathWidget(int width, int 
height, int left,
   this->Type = cmStateEnums::PATH;
   this->Cycle = false;
   this->CurrentIndex = 0;
+  if (cmCursesColor::HasColors()) {
+    set_field_fore(this->Field, COLOR_PAIR(cmCursesColor::Path));
+    set_field_back(this->Field, COLOR_PAIR(cmCursesColor::Path));
+  } else {
+    set_field_fore(this->Field, A_NORMAL);
+    set_field_back(this->Field, A_STANDOUT);
+  }
 }
 
 void cmCursesPathWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW* w)
diff --git a/Source/CursesDialog/cmCursesStringWidget.cxx 
b/Source/CursesDialog/cmCursesStringWidget.cxx
index 6296af20ba..c62947836c 100644
--- a/Source/CursesDialog/cmCursesStringWidget.cxx
+++ b/Source/CursesDialog/cmCursesStringWidget.cxx
@@ -4,6 +4,7 @@
 
 #include <cstdio>
 
+#include "cmCursesColor.h"
 #include "cmCursesForm.h"
 #include "cmCursesMainForm.h"
 #include "cmCursesStandardIncludes.h"
@@ -21,8 +22,13 @@ cmCursesStringWidget::cmCursesStringWidget(int width, int 
height, int left,
 {
   this->InEdit = false;
   this->Type = cmStateEnums::STRING;
-  set_field_fore(this->Field, A_NORMAL);
-  set_field_back(this->Field, A_STANDOUT);
+  if (cmCursesColor::HasColors()) {
+    set_field_fore(this->Field, COLOR_PAIR(cmCursesColor::String));
+    set_field_back(this->Field, COLOR_PAIR(cmCursesColor::String));
+  } else {
+    set_field_fore(this->Field, A_NORMAL);
+    set_field_back(this->Field, A_STANDOUT);
+  }
   field_opts_off(this->Field, O_STATIC);
 }
 

-----------------------------------------------------------------------

Summary of changes:
 Help/cpack_gen/nsis.rst                            | 16 ++++++++++
 Help/release/dev/ccmake-colored-values.rst         |  5 +++
 .../dev/cpack-nsis-welcome-finish-page-title.rst   | 10 ++++++
 Modules/FindBoost.cmake                            |  3 ++
 Modules/Internal/CPack/NSIS.template.in            |  4 +++
 Source/CPack/cmCPackNSISGenerator.cxx              | 37 ++++++++++++++++++----
 Source/CursesDialog/CMakeLists.txt                 | 21 ++++++++++++
 Source/CursesDialog/ccmake.cxx                     |  2 ++
 Source/CursesDialog/cmCursesBoolWidget.cxx         | 15 +++++++--
 Source/CursesDialog/cmCursesColor.cxx              | 29 +++++++++++++++++
 Source/CursesDialog/cmCursesColor.h                | 24 ++++++++++++++
 Source/CursesDialog/cmCursesLongMessageForm.cxx    |  2 +-
 Source/CursesDialog/cmCursesMainForm.cxx           | 25 ++++++++++-----
 Source/CursesDialog/cmCursesOptionsWidget.cxx      | 10 ++++--
 Source/CursesDialog/cmCursesPathWidget.cxx         |  8 +++++
 Source/CursesDialog/cmCursesStringWidget.cxx       | 10 ++++--
 Source/cmGlobalXCodeGenerator.cxx                  | 24 ++++++++------
 ...-check.cmake => ImplicitCMakeLists-check.cmake} |  4 +--
 .../RunCMake/XcodeProject/ImplicitCMakeLists.cmake |  0
 Tests/RunCMake/XcodeProject/RunCMakeTest.cmake     |  1 +
 20 files changed, 217 insertions(+), 33 deletions(-)
 create mode 100644 Help/release/dev/ccmake-colored-values.rst
 create mode 100644 Help/release/dev/cpack-nsis-welcome-finish-page-title.rst
 create mode 100644 Source/CursesDialog/cmCursesColor.cxx
 create mode 100644 Source/CursesDialog/cmCursesColor.h
 copy Tests/RunCMake/XcodeProject/{ExplicitCMakeLists-check.cmake => 
ImplicitCMakeLists-check.cmake} (80%)
 copy Modules/IntelVSImplicitPath/hello.f => 
Tests/RunCMake/XcodeProject/ImplicitCMakeLists.cmake (100%)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
https://cmake.org/mailman/listinfo/cmake-commits

Reply via email to