#pragma once #include #include #include namespace cmkr::cmake { struct Option { std::string name; std::string comment; bool val; }; struct Package { std::string name; std::string version; bool required = true; std::vector components; }; struct Bin { std::string name; std::string type; std::vector sources; std::vector include_dirs; std::vector features; std::vector defines; std::vector link_libs; std::string alias; }; struct Test { std::string name; std::string cmd; std::vector args; }; struct CMake { std::string cmake_version = "3.14"; std::string bin_dir = "bin"; std::string generator; std::vector subdirs; std::vector cppflags; std::vector cflags; std::vector linkflags; std::vector gen_args; std::vector build_args; std::string proj_name; std::string proj_version; std::vector