| 176 | extern const char *msvcRuntimeTypeNames[msvc_last]; |
| 177 | |
| 178 | struct Project { |
| 179 | const Project *parent; |
| 180 | |
| 181 | // This is the CMake version required to use all cmkr versions. |
| 182 | std::string cmake_version = "3.15"; |
| 183 | std::string cmkr_include = "cmkr.cmake"; |
| 184 | std::string build_dir = "build"; |
| 185 | std::string generator; |
| 186 | std::string config; |
| 187 | bool allow_in_tree = false; |
| 188 | Condition<std::vector<std::string>> project_subdirs; |
| 189 | std::vector<std::string> cppflags; |
| 190 | std::vector<std::string> cflags; |
| 191 | std::vector<std::string> linkflags; |
| 192 | std::vector<std::string> gen_args; |
| 193 | std::vector<std::string> build_args; |
| 194 | std::string project_name; |
| 195 | std::string project_version; |
| 196 | std::string project_description; |
| 197 | ConditionVector project_languages; |
| 198 | bool project_allow_unknown_languages = false; |
| 199 | MsvcRuntimeType project_msvc_runtime = msvc_last; |
| 200 | Condition<std::string> cmake_before; |
| 201 | Condition<std::string> cmake_after; |
| 202 | ConditionVector include_before; |
| 203 | ConditionVector include_after; |
| 204 | std::vector<Variable> variables; |
| 205 | std::vector<Option> options; |
| 206 | std::vector<Package> packages; |
| 207 | Vcpkg vcpkg; |
| 208 | std::vector<Content> contents; |
| 209 | std::vector<Template> templates; |
| 210 | std::vector<Target> targets; |
| 211 | std::vector<Test> tests; |
| 212 | std::vector<Install> installs; |
| 213 | tsl::ordered_map<std::string, std::string> conditions; |
| 214 | std::vector<Subdir> subdirs; |
| 215 | |
| 216 | Project(const Project *parent, const std::string &path, bool build); |
| 217 | const Project *root() const; |
| 218 | bool cmake_minimum_version(int major, int minor) const; |
| 219 | static bool is_condition_name(const std::string &name); |
| 220 | }; |
| 221 | |
| 222 | bool is_root_path(const std::string &path); |
| 223 |
nothing calls this directly
no outgoing calls
no test coverage detected