/src/CMake/Source/cmCMakePresetsArgs.h
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 | | #pragma once |
4 | | |
5 | | #include <string> |
6 | | |
7 | | class cmCMakePresetsArgsBase |
8 | | { |
9 | | public: |
10 | 35 | virtual ~cmCMakePresetsArgsBase() = default; |
11 | | |
12 | 35 | virtual bool HasPresetsArg() const { return !this->PresetName.empty(); }; |
13 | 0 | virtual void Clear() { this->PresetName.clear(); } |
14 | | |
15 | | std::string PresetName; |
16 | | std::string PresetsFile; |
17 | | |
18 | | protected: |
19 | 35 | cmCMakePresetsArgsBase() = default; |
20 | | }; |
21 | | |
22 | | class cmCMakePresetsArgs : public cmCMakePresetsArgsBase |
23 | | { |
24 | | public: |
25 | | bool HasPresetsArg() const override |
26 | 0 | { |
27 | 0 | return this->cmCMakePresetsArgsBase::HasPresetsArg() || this->ListPresets; |
28 | 0 | } |
29 | | |
30 | | void Clear() override |
31 | 0 | { |
32 | 0 | this->cmCMakePresetsArgsBase::Clear(); |
33 | 0 | this->ListPresets = false; |
34 | 0 | } |
35 | | |
36 | | bool ListPresets = false; |
37 | | }; |
38 | | |
39 | | class cmCMakePresetsConfigureArgs : public cmCMakePresetsArgsBase |
40 | | { |
41 | | public: |
42 | | enum class ListPresetsOption |
43 | | { |
44 | | None, |
45 | | Configure, |
46 | | Build, |
47 | | Test, |
48 | | Package, |
49 | | Workflow, |
50 | | All, |
51 | | }; |
52 | | |
53 | | bool HasPresetsArg() const override |
54 | 35 | { |
55 | 35 | return this->cmCMakePresetsArgsBase::HasPresetsArg() || |
56 | 35 | this->ListPresets != ListPresetsOption::None; |
57 | 35 | } |
58 | | |
59 | | void Clear() override |
60 | 0 | { |
61 | 0 | this->cmCMakePresetsArgsBase::Clear(); |
62 | 0 | this->ListPresets = ListPresetsOption::None; |
63 | 0 | } |
64 | | |
65 | | ListPresetsOption ListPresets = ListPresetsOption::None; |
66 | | }; |
67 | | |
68 | | class cmCMakePresetsWorkflowArgs : public cmCMakePresetsArgs |
69 | | { |
70 | | public: |
71 | | void Clear() override |
72 | 0 | { |
73 | 0 | this->cmCMakePresetsArgs::Clear(); |
74 | 0 | this->Fresh = false; |
75 | 0 | } |
76 | | |
77 | | bool Fresh = false; |
78 | | }; |