CMakePresets.json: Fix formatting of --list-presets=all

Only print an extra newline after a section if that section was
actually printed.
This commit is contained in:
Kyle Edwards 2022-08-31 09:41:42 -04:00
parent 8bcc84283e
commit 215b9148eb
7 changed files with 90 additions and 14 deletions

View File

@ -1067,6 +1067,16 @@ void cmCMakePresetsGraph::ClearPresets()
this->Files.clear();
}
void cmCMakePresetsGraph::printPrecedingNewline(PrintPrecedingNewline* newline)
{
if (newline) {
if (*newline == PrintPrecedingNewline::True) {
std::cout << std::endl;
}
*newline = PrintPrecedingNewline::True;
}
}
void cmCMakePresetsGraph::PrintPresets(
const std::vector<const cmCMakePresetsGraph::Preset*>& presets)
{
@ -1095,13 +1105,16 @@ void cmCMakePresetsGraph::PrintPresets(
}
}
void cmCMakePresetsGraph::PrintConfigurePresetList() const
void cmCMakePresetsGraph::PrintConfigurePresetList(
PrintPrecedingNewline* newline) const
{
PrintConfigurePresetList([](const ConfigurePreset&) { return true; });
PrintConfigurePresetList([](const ConfigurePreset&) { return true; },
newline);
}
void cmCMakePresetsGraph::PrintConfigurePresetList(
const std::function<bool(const ConfigurePreset&)>& filter) const
const std::function<bool(const ConfigurePreset&)>& filter,
PrintPrecedingNewline* newline) const
{
std::vector<const cmCMakePresetsGraph::Preset*> presets;
for (auto const& p : this->ConfigurePresetOrder) {
@ -1114,12 +1127,14 @@ void cmCMakePresetsGraph::PrintConfigurePresetList(
}
if (!presets.empty()) {
printPrecedingNewline(newline);
std::cout << "Available configure presets:\n\n";
cmCMakePresetsGraph::PrintPresets(presets);
}
}
void cmCMakePresetsGraph::PrintBuildPresetList() const
void cmCMakePresetsGraph::PrintBuildPresetList(
PrintPrecedingNewline* newline) const
{
std::vector<const cmCMakePresetsGraph::Preset*> presets;
for (auto const& p : this->BuildPresetOrder) {
@ -1132,12 +1147,14 @@ void cmCMakePresetsGraph::PrintBuildPresetList() const
}
if (!presets.empty()) {
printPrecedingNewline(newline);
std::cout << "Available build presets:\n\n";
cmCMakePresetsGraph::PrintPresets(presets);
}
}
void cmCMakePresetsGraph::PrintTestPresetList() const
void cmCMakePresetsGraph::PrintTestPresetList(
PrintPrecedingNewline* newline) const
{
std::vector<const cmCMakePresetsGraph::Preset*> presets;
for (auto const& p : this->TestPresetOrder) {
@ -1150,6 +1167,7 @@ void cmCMakePresetsGraph::PrintTestPresetList() const
}
if (!presets.empty()) {
printPrecedingNewline(newline);
std::cout << "Available test presets:\n\n";
cmCMakePresetsGraph::PrintPresets(presets);
}
@ -1157,9 +1175,8 @@ void cmCMakePresetsGraph::PrintTestPresetList() const
void cmCMakePresetsGraph::PrintAllPresets() const
{
this->PrintConfigurePresetList();
std::cout << std::endl;
this->PrintBuildPresetList();
std::cout << std::endl;
this->PrintTestPresetList();
PrintPrecedingNewline newline = PrintPrecedingNewline::False;
this->PrintConfigurePresetList(&newline);
this->PrintBuildPresetList(&newline);
this->PrintTestPresetList(&newline);
}

View File

@ -383,13 +383,22 @@ public:
return "";
}
enum class PrintPrecedingNewline
{
False,
True,
};
static void printPrecedingNewline(PrintPrecedingNewline* p);
static void PrintPresets(
const std::vector<const cmCMakePresetsGraph::Preset*>& presets);
void PrintConfigurePresetList() const;
void PrintConfigurePresetList(
const std::function<bool(const ConfigurePreset&)>& filter) const;
void PrintBuildPresetList() const;
void PrintTestPresetList() const;
PrintPrecedingNewline* newline = nullptr) const;
void PrintConfigurePresetList(
const std::function<bool(const ConfigurePreset&)>& filter,
PrintPrecedingNewline* newline = nullptr) const;
void PrintBuildPresetList(PrintPrecedingNewline* newline = nullptr) const;
void PrintTestPresetList(PrintPrecedingNewline* newline = nullptr) const;
void PrintAllPresets() const;
private:

View File

@ -0,0 +1,8 @@
^Not searching for unused variables given on the command line.
Available configure presets:
"default"
Available test presets:
"default"$

View File

@ -0,0 +1,14 @@
{
"version": 3,
"configurePresets": [
{
"name": "default"
}
],
"testPresets": [
{
"name": "default",
"configurePreset": "default"
}
]
}

View File

@ -0,0 +1,8 @@
^Not searching for unused variables given on the command line.
Available configure presets:
"default"
Available build presets:
"default"$

View File

@ -0,0 +1,14 @@
{
"version": 3,
"configurePresets": [
{
"name": "default"
}
],
"buildPresets": [
{
"name": "default",
"configurePreset": "default"
}
]
}

View File

@ -304,6 +304,12 @@ unset(RunCMake_TEST_BINARY_DIR)
run_cmake_presets(ListPresetsNoSuchPreset)
run_cmake_presets(ListPresetsHidden)
set(CMakePresets_FILE "${RunCMake_SOURCE_DIR}/ListAllPresetsNoBuild.json.in")
run_cmake_presets(ListAllPresetsNoBuild --list-presets=all)
set(CMakePresets_FILE "${RunCMake_SOURCE_DIR}/ListAllPresetsNoTest.json.in")
run_cmake_presets(ListAllPresetsNoTest --list-presets=all)
# Test warning and error flags
set(CMakePresets_FILE "${RunCMake_SOURCE_DIR}/Warnings.json.in")
set(CMakePresets_WARN_UNUSED_CLI 1)