Coverage Report

Created: 2026-04-29 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmCMakePresetsGraphResolve.cxx
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst or https://cmake.org/licensing for details.  */
3
#include <cassert>
4
#include <map>
5
#include <string>
6
7
#include <cm/optional>
8
9
#include "cmCMakePresetsGraph.h"
10
#include "cmStringAlgorithms.h"
11
12
template <class T>
13
cmCMakePresetsGraph::PresetResolveResult<T> cmCMakePresetsGraph::ResolvePreset(
14
  std::string const& presetName,
15
  std::map<std::string, PresetPair<T>> const& presets) const
16
0
{
17
0
  using Result = PresetResolveResult<T>;
18
0
  Result result;
19
20
0
  auto presetPair = presets.find(presetName);
21
0
  if (presetPair == presets.end()) {
22
0
    result.StatusCode = Result::Status::NotFound;
23
0
    result.ErrorPresetName = presetName;
24
0
    return result;
25
0
  }
26
0
  if (presetPair->second.Unexpanded.Hidden) {
27
0
    result.StatusCode = Result::Status::Hidden;
28
0
    result.ErrorPresetName = presetName;
29
0
    return result;
30
0
  }
31
0
  if (!presetPair->second.Expanded) {
32
0
    result.StatusCode = Result::Status::InvalidMacroExpansion;
33
0
    result.ErrorPresetName = presetName;
34
0
    return result;
35
0
  }
36
0
  if (!presetPair->second.Expanded->ConditionResult) {
37
0
    result.StatusCode = Result::Status::Disabled;
38
0
    result.ErrorPresetName = presetName;
39
0
    return result;
40
0
  }
41
42
0
  result.Preset = &*presetPair->second.Expanded;
43
0
  return result;
44
0
}
Unexecuted instantiation: cmCMakePresetsGraph::PresetResolveResult<cmCMakePresetsGraph::ConfigurePreset> cmCMakePresetsGraph::ResolvePreset<cmCMakePresetsGraph::ConfigurePreset>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::ConfigurePreset>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::ConfigurePreset> > > > const&) const
Unexecuted instantiation: cmCMakePresetsGraph::PresetResolveResult<cmCMakePresetsGraph::BuildPreset> cmCMakePresetsGraph::ResolvePreset<cmCMakePresetsGraph::BuildPreset>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::BuildPreset>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::BuildPreset> > > > const&) const
Unexecuted instantiation: cmCMakePresetsGraph::PresetResolveResult<cmCMakePresetsGraph::TestPreset> cmCMakePresetsGraph::ResolvePreset<cmCMakePresetsGraph::TestPreset>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::TestPreset>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::TestPreset> > > > const&) const
Unexecuted instantiation: cmCMakePresetsGraph::PresetResolveResult<cmCMakePresetsGraph::PackagePreset> cmCMakePresetsGraph::ResolvePreset<cmCMakePresetsGraph::PackagePreset>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::PackagePreset>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cmCMakePresetsGraph::PresetPair<cmCMakePresetsGraph::PackagePreset> > > > const&) const
45
46
// Explicit template instantiations
47
template cmCMakePresetsGraph::PresetResolveResult<
48
  cmCMakePresetsGraph::ConfigurePreset>
49
cmCMakePresetsGraph::ResolvePreset(
50
  std::string const&,
51
  std::map<std::string,
52
           PresetPair<cmCMakePresetsGraph::ConfigurePreset>> const&) const;
53
54
template cmCMakePresetsGraph::PresetResolveResult<
55
  cmCMakePresetsGraph::BuildPreset>
56
cmCMakePresetsGraph::ResolvePreset(
57
  std::string const&,
58
  std::map<std::string, PresetPair<cmCMakePresetsGraph::BuildPreset>> const&)
59
  const;
60
61
template cmCMakePresetsGraph::PresetResolveResult<
62
  cmCMakePresetsGraph::TestPreset>
63
cmCMakePresetsGraph::ResolvePreset(
64
  std::string const&,
65
  std::map<std::string, PresetPair<cmCMakePresetsGraph::TestPreset>> const&)
66
  const;
67
68
template cmCMakePresetsGraph::PresetResolveResult<
69
  cmCMakePresetsGraph::PackagePreset>
70
cmCMakePresetsGraph::ResolvePreset(
71
  std::string const&,
72
  std::map<std::string, PresetPair<cmCMakePresetsGraph::PackagePreset>> const&)
73
  const;
74
75
template <class T>
76
cm::optional<std::string> cmCMakePresetsGraph::FormatPresetError(
77
  PresetResolveStatus status, std::string const& errorPresetName,
78
  std::string const& directory)
79
0
{
80
0
  using Status = PresetResolveStatus;
81
0
  switch (status) {
82
0
    case Status::NotFound:
83
0
      return cmStrCat("No such ", T::kind(), " preset in ", directory, ": \"",
84
0
                      errorPresetName, '"');
85
0
    case Status::Hidden:
86
0
      return cmStrCat("Cannot use hidden ", T::kind(), " preset in ",
87
0
                      directory, ": \"", errorPresetName, '"');
88
0
    case Status::InvalidMacroExpansion:
89
0
      return cmStrCat("Could not evaluate ", T::kind(), " preset \"",
90
0
                      errorPresetName, "\": Invalid macro expansion");
91
0
    case Status::Disabled:
92
0
      return cmStrCat("Cannot use disabled ", T::kind(), " preset in ",
93
0
                      directory, ": \"", errorPresetName, '"');
94
0
    case Status::Success:
95
0
      return cm::nullopt;
96
0
  }
97
0
  assert(false && "Unreachable.");
98
0
  return cm::nullopt;
99
0
}
Unexecuted instantiation: std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::ConfigurePreset>(cmCMakePresetsGraph::PresetResolveStatus, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::BuildPreset>(cmCMakePresetsGraph::PresetResolveStatus, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::TestPreset>(cmCMakePresetsGraph::PresetResolveStatus, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::PackagePreset>(cmCMakePresetsGraph::PresetResolveStatus, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
100
101
// Explicit template instantiations for FormatPresetError
102
template cm::optional<std::string>
103
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::ConfigurePreset>(
104
  PresetResolveStatus, std::string const&, std::string const&);
105
106
template cm::optional<std::string>
107
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::BuildPreset>(
108
  PresetResolveStatus, std::string const&, std::string const&);
109
110
template cm::optional<std::string>
111
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::TestPreset>(
112
  PresetResolveStatus, std::string const&, std::string const&);
113
114
template cm::optional<std::string>
115
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::PackagePreset>(
116
  PresetResolveStatus, std::string const&, std::string const&);