CPGen
C++ project generator
Loading...
Searching...
No Matches
Classes | Enumerations
Config.hpp File Reference

Project configuration types produced by the CLI and consumed by the resolvers. More...

#include <cstdint>
#include <optional>
#include <string>
#include <vector>
Include dependency graph for Config.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ToolingConfig
 Groups all optional tooling flags that can be enabled for a project. More...
 
struct  ProjectConfig
 Fully parsed project configuration produced by CLI::parse. More...
 

Enumerations

enum class  TargetType : std::uint8_t { Library , Executable , Test }
 Describes the CMake target kind to generate for a build target. More...
 
enum class  CppStandard : std::uint8_t { Cpp17 , Cpp20 , Cpp23 }
 Selects the C++ language standard to pass to the compiler. More...
 

Detailed Description

Project configuration types produced by the CLI and consumed by the resolvers.

Author
Darleanow

Enumeration Type Documentation

◆ CppStandard

enum class CppStandard : std::uint8_t
strong

Selects the C++ language standard to pass to the compiler.

Enumerator
Cpp17 

ISO C++17 (-std=c++17 / CMAKE_CXX_STANDARD 17).

Cpp20 

ISO C++20 (-std=c++20 / CMAKE_CXX_STANDARD 20). Default.

Cpp23 

ISO C++23 (-std=c++23 / CMAKE_CXX_STANDARD 23).

◆ TargetType

enum class TargetType : std::uint8_t
strong

Describes the CMake target kind to generate for a build target.

Enumerator
Library 

A static or shared library target (add_library).

Executable 

A standalone executable target (add_executable).

Test 

A test executable wired into CTest via a testing framework.