The latter:
* uses a type-safe representation of text attributes,
* works with `StdIo::Console` to print arbitrary UTF-8 text in color, and
* writes VT100 sequences to Windows Consoles when supported, eliminating
racy console text attribute changes in parallel `make` output.
Fixes: #22450, #26689, #26924
Abstract over VT100 sequences and Windows Console text attributes.
This will replace KWSys Terminal, which does not integrate with C++
streams.
Issue: #26924
- Updated and synced module documentation with other similar find
modules.
- Renamed "functions" to more general word "commands". Knowing if some
module command is a function or a macro is from the user PoV mostly
irrelevant and it also fits nicer with the rest of the modules.
- Reworded descriptions to make this module slightly clearer to
understand.
- Moved examples section after commands and added example descriptions.
On Windows, the only reliable way to read/write Unicode text from/to a
Console is to use `ReadConsoleW` and `WriteConsoleW` and convert from/to
wide-character encoding. When `cin`, `cout`, and/or `cerr` are attached
to a Windows Console, use a custom C++ `streambuf` to handle the I/O.
This will replace KWSys ConsoleBuf, whose implementation is more complex
to support narrow output streams on Windows non-UTF-8 narrow encodings.
We only need to support UTF-8.
Issue: #26924
Provide a useful warning if an invalid UUID is given in a
`CMAKE_EXPERIMENTAL_` variable. This can occur if a different CMake
version is used than the one that the feature was implemented with, or
if there is a simple typo in the value. It should reduce confusion with
the use of experimental features.
Co-authored-by: Brad King <brad.king@kitware.com>
As outlined in the CUDA 12.9 release notes sm_5X, sm_6X, and sm_70
are being removed in CUDA 13:
> Maxwell, Pascal, and Volta architectures are now feature-complete with
> no further enhancements planned. While CUDA Toolkit 12.x series will
> continue to support building applications for these architectures,
> offline compilation and library support will be removed in the next
> major CUDA Toolkit version release.
- Added intro code block with find_package() showing how to find the
package using this module.
- Used "commands" instead of "macros".
- Synced one missed SUBVERSION_FOUND variable in code to
Subversion_FOUND (available as of CMake 3.3.).
- Synced few descriptions with other similar find modules.
- Added intro code block with find_package() showing how to find the
package with this module.
- Used "command" instead of "macro".
- Synced descriptions with other similar find modules.
- Added intro code block with include() showing how to load this module.
- Used "command" instead of "macro".
- Removed duplicate mention of CMakeDependentOption module in the
option() documentation.
- Synced captions in examples.
Changes:
- Added info how to load this module to the module introduction.
- Renamed "function" to "command" to be synced with other similar CMake
modules.
- Restructured command description.
- Extended examples to make the two examples more related to each other.
- Simplified links to "Find Modules".