summaryrefslogtreecommitdiffstats
path: root/Source/CursesDialog
Commit message (Collapse)AuthorAgeFilesLines
* ccmake: Check that getmaxyx result width is non-negativeBrad King2020-05-191-1/+1
| | | | | Otherwise GCC 10.1 issues a `-Wstringop-overflow=` diagnostic when we use the width for indexing.
* ccmake: Improve coloring, allow customizationMatthew Woehlke2020-04-242-5/+57
| | | | | | | | | | Change the default color for strings from BLUE (which is nearly illegible on any terminals using the standard color palette which has been around since at least CGA, almost 40 years ago) to CYAN. Add ability to customize the colors via an environment variable (inspired by LS_COLORS and using similar syntax). Fixes: #20596
* ccmake: Rename cmCursesColor::{Options => Choice}Matthew Woehlke2020-04-243-4/+4
| | | | | Rename the internal name for the color applied to multiple-choice options to avoid use of the overloaded term 'option'.
* cmCursesLongMessageForm: avoid unnecessary string allocationBen Boeckel2020-04-091-1/+2
| | | | | The addition makes a temporary string and then drops it after adding it to `this->Messages`. Instead, just incrementally append.
* Merge topic 'ccmake_incremental_log_display'Brad King2020-04-094-19/+48
|\ | | | | | | | | | | | | | | | | 60bfaa8fe6 ccmake: Use incremental rendering for the logs e9b36731e9 cmCursesLongMessageForm: Factor out helper to draw message to form Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Robert Maynard <robert.maynard@kitware.com> Merge-request: !4573
| * ccmake: Use incremental rendering for the logsSylvain Joubert2020-04-084-11/+33
| | | | | | | | | | | | | | | | | | This should avoid an exponential slowdown in the display time for projects with lots of output. This is still slower than cmake due to the ncurses drawing, but it should now be O(L) in total and not O(L^2) wrt to output length. Fixes: #20535
| * cmCursesLongMessageForm: Factor out helper to draw message to formBrad King2020-04-082-8/+15
| |
* | Merge topic 'cmprop-state'Brad King2020-03-272-6/+7
|\ \ | | | | | | | | | | | | | | | | | | a7f2ff16a4 cmState::GetCacheEntryProperty: return cmProp Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4522
| * | cmState::GetCacheEntryProperty: return cmPropVitaly Stakhovsky2020-03-252-6/+7
| | |
* | | replace "std::string::find(x) == 0" with cmHasPrefix()Rolf Eike Beer2020-03-231-2/+3
|/ /
* | cmState::GetCacheEntryValue: return cmPropVitaly Stakhovsky2020-03-172-14/+14
|/
* ccmake: Fix crash with cache entries almost the size of the windowSylvain Joubert2019-11-192-86/+43
| | | | | | | | | | | | | | | The previous code: if (curFieldLen < width) { ... strncpy(bar + curFieldLen + 2, help, width - curFieldLen - 2); was not correctly guarded against cache entries whose size were exactly 1 or 2 characters short of the window size. "if (curFieldLen - 2 < width)" would have prevented a copy of negative/max_int characters and a subsequent crash. The whole method was modernized with std::string instead of char*
* ccmake: Fix rendering on window resizeSylvain Joubert2019-11-181-12/+8
| | | | | | | | | Repro steps: configure (without errors), the logs are displayed then the cache is displayed again, resize the window up -> the logs are redisplayed after resize instead of the cache The 'CurrentForm' pointer were left pointed to the last log message form, this resets it to the main form when configure or generate is done
* ccmake: redirect stdout/stderr to the displayed logsSylvain Joubert2019-11-164-33/+50
| | | | | | | | | | | | | | | | | Use cmSystemTools to report some messages. These should now be caught and displayed properly, both in ccmake and cmake-gui Avoid log display flickering during processing - Don't clear the screen each time the long message form is rendered. It always renders the whole screen again so clearing it only causes flickering. - Add scroll down capabilities to the long message form so that it can draw itself directly in the correct state. This removes the need to programatically scroll down just after that also caused flickering. Fixes #19882 Fixes #13288
* ccmake: Identify the current cache entrySylvain Joubert2019-11-041-0/+9
|
* ccmake: Improve display of the key controlsSylvain Joubert2019-11-042-9/+9
| | | | Reduce space usage and add the key to display the output
* ccmake: Use type-based colors to display cache valuesSylvain Joubert2019-11-048-6/+113
| | | | | The colors are based on the entry type (or value for booleans), paths and filepaths sharing the same color.
* ccmake: Don't overwrite the last character of the titleSylvain Joubert2019-10-252-7/+7
|
* ccmake: Display output during configure and generateSylvain Joubert2019-10-254-22/+61
|
* ccmake: Use the error display for all the logsSylvain Joubert2019-10-253-23/+36
|
* ccmake: Display an ASCII progress bar in the status barSylvain Joubert2019-10-251-16/+12
| | | | | | | | The status bar is now only used to display the progress. The status log are not shown anymore since for the most cases they went by too quickly to be read. As for cases when a process is long enough to display and read a log, it would probably be a previous unrelated message.
* Merge topic 'ccmake-clear-help'Brad King2019-10-211-1/+1
|\ | | | | | | | | | | | | 9276beae5e ccmake: Fully clear the 1st help line when processing Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3937
| * ccmake: Fully clear the 1st help line when processingSylvain Joubert2019-10-201-1/+1
| |
* | Add option to configure Ninja link job pool for CMake's own binariesBrad King2019-10-101-0/+4
|/ | | | | Create an undocumented `CMake_JOB_POOL_LINK_BIN` option that builders can set to avoid linking too many of our binaries at once.
* Revise include order using clang-format-6.0Kitware Robot2019-10-0115-50/+51
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* cmCursesMainForm: change Entries to object vectorTushar Maheshwari2019-09-273-47/+49
| | | | | | - Add move constructor and move assignment operator for `cmCursesCacheEntryComposite`. - Transfer ownership of Entries objects to std::vector.
* cmCursesStringWidget: remove manual deleteTushar Maheshwari2019-09-272-24/+13
| | | | - Relpace `char*` operations with `std::string`
* cmCursesCacheEntryComposite: default destructorTushar Maheshwari2019-09-263-37/+42
|
* cmCursesMainForm: cleanup manual allocationTushar Maheshwari2019-09-264-107/+69
|
* CursesDialog: modernize CMake usageTushar Maheshwari2019-09-261-20/+16
|
* clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-166-10/+10
|
* Source sweep: Replace cmExpandList with the shorter cmExpandedListSebastian Holtermann2019-08-231-2/+1
| | | | | | | | | | | | This replaces the code pattern ``` std::vector<std::string> args; cmExpandList(valueStr, args, ...) ``` with ``` std::vector<std::string> args = cmExpandedList(valueStr, ...) ```
* Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is generated by a python script that uses regular expressions to search for string concatenation patterns of the kind ``` std::string str = <ARG0>; str += <ARG1>; str += <ARG2>; ... ``` and replaces them with a single `cmStrCat` call ``` std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...); ``` If any `<ARGX>` is itself a concatenated string of the kind ``` a + b + c + ...; ``` then `<ARGX>` is split into multiple arguments for the `cmStrCat` call. If there's a sequence of literals in the `<ARGX>`, then all literals in the sequence are concatenated and merged into a single literal argument for the `cmStrCat` call. Single character strings are converted to single char arguments for the `cmStrCat` call. `std::to_string(...)` wrappings are removed from `cmStrCat` arguments, because it supports numeric types as well as string types. `arg.substr(x)` arguments to `cmStrCat` are replaced with `cm::string_view(arg).substr(x)`
* Merge topic 'isolate-declarations'Brad King2019-08-224-14/+28
|\ | | | | | | | | | | | | d331021255 clang-tidy: isolate declarations for readability Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3704
| * clang-tidy: isolate declarations for readabilityRegina Pfeifer2019-08-204-14/+28
| |
* | Merge topic 'ccmake-find-system-form-header'Brad King2019-08-211-0/+4
|\ \ | |/ |/| | | | | | | | | 66654135c1 ccmake: Fix form.h include with CMAKE_USE_SYSTEM_FORM Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3683
| * ccmake: Fix form.h include with CMAKE_USE_SYSTEM_FORMChristoph GrĂ¼ninger2019-08-201-0/+4
| | | | | | | | | | | | | | Some distributions have form.h in ncurses/ next to the ncurses.h found by FindCurses. Fixes: #19589
* | Merge topic 'ccmake-crash-on-empty-strings-property'Brad King2019-08-201-0/+3
|\ \ | | | | | | | | | | | | | | | | | | 154c5f7949 ccmake: handle cache entries with empty STRINGS property Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3678
| * | ccmake: handle cache entries with empty STRINGS propertyM Furkan USLU2019-08-201-0/+3
| |/ | | | | | | Fixes: #19585
* | Source sweep: Use cmIsOn instead of cmSystemTools::IsOnSebastian Holtermann2019-08-172-2/+3
| | | | | | | | | | | | | | | | | | This replaces invocations of - `cmSystemTools::IsInternallyOn` with `cmIsInternallyOn` - `cmSystemTools::IsNOTFOUND` with `cmIsNOTFOUND` - `cmSystemTools::IsOn` with `cmIsOn` - `cmSystemTools::IsOff` with `cmIsOff`
* | Source code: Use cmExpandList instead of cmSystemTools::ExpandListArgumentSebastian Holtermann2019-08-141-1/+2
|/
* cmSystemTools::Error(): remove const char* overloadVitaly Stakhovsky2019-05-221-1/+1
|
* Ensure stdin, stdout, and stderr pipes are always openBrad King2019-05-021-0/+1
| | | | | | | | | | | | | On non-Windows platforms libuv assumes that file descriptors 0-2 are always used for standard pipes and never for anything else. Otherwise, libuv may re-use one of these descriptors and then fail an assertion when closing it. Similarly, On Windows platforms our ConsoleBuf implementation assumes that the standard handles are always open. If CMake is run with any standard pipes closed, open them with `/dev/null` or `NUL` to satisfy these assumptions. Fixes: #19219
* ccmake: fix curses dialog broken by refactoringFelix Schwitzer2019-03-041-1/+1
| | | | | | | | | During refactoring in commit f6291eee25 (cmCursesMainForm: Modernize with STL and ranged-for loops, 2019-02-10) a transformation of a loop went wrong and editing the cmake cache with ccmake no longer works. Make ccmake work again. Fixes: #19008
* cmCursesMainForm: Fix lambda return type deducing warningArtur Ryt2019-02-121-5/+6
| | | | | It was issued by sparc compiler on Solaris system See !2947
* Merge topic 'progress-stdstring'Brad King2019-02-122-6/+10
|\ | | | | | | | | | | | | 950c099d83 cmake: Progress functions use `std::string` param Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2948
| * cmake: Progress functions use `std::string` paramVitaly Stakhovsky2019-02-112-6/+10
| |
* | Merge topic 'modernize-cmCursesMainForm'Brad King2019-02-121-62/+48
|\ \ | |/ |/| | | | | | | | | f6291eee25 cmCursesMainForm: Modernize with STL and ranged-for loops Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2947
| * cmCursesMainForm: Modernize with STL and ranged-for loopsArtur Ryt2019-02-101-62/+48
| |
* | Merge topic 'modernize-for-loops'Brad King2019-02-112-14/+8
|\ \ | |/ |/| | | | | | | | | | | | | 01b2d6ab74 Modernize: Use ranged for-loops when possible 15bdbec017 cmAlgorithms: Make cmRange advance/retreat safe for rvalues Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Merge-request: !2901