/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&); |