stamenStatic Menu Generator |
git clone git://git.dimitrijedobrota.com/stamen.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
commit | 316d0c2ac122a1273e2ecc6a466138be95af78d6 |
parent | 8a69123b6fdd0d7a58517c5e5e2afb30406ba1ff |
author | Dimitrije Dobrota < mail@dimitrijedobrota.com > |
date | Fri, 6 Jun 2025 16:43:29 +0200 |
Use the latest version of poafloc
M | CMakeLists.txt | | | +++ --- |
M | CMakePresets.json | | | + - |
M | source/generate.cpp | | | +++++++++++++++++++++ ------------------------------------------------ |
M | vcpkg.json | | | + - |
4 files changed, 26 insertions(+), 53 deletions(-)
diff --git a/ CMakeLists.txt b/ CMakeLists.txt
@@ -4,7 +4,7 @@
include(cmake/prelude.cmake)
project(
stamen
VERSION 1.3.1
VERSION 1.3.2
DESCRIPTION "Static menu generator"
HOMEPAGE_URL "https://git.dimitrijedobrota.com/stamen"
LANGUAGES C CXX
@@ -62,8 +62,8 @@
target_compile_features(stamen_stamen PUBLIC cxx_std_20)
add_executable(stamen_exe source/generate.cpp)
add_executable(stamen::exe ALIAS stamen_exe)
find_package(poafloc 1.2 CONFIG REQUIRED)
find_package(cemplate 0.2 CONFIG REQUIRED)
find_package(poafloc 2.0 CONFIG REQUIRED)
find_package(cemplate 0.3 CONFIG REQUIRED)
target_link_libraries(stamen_exe PRIVATE stamen::stamen poafloc::poafloc cemplate::cemplate)
set_property(TARGET stamen_exe PROPERTY OUTPUT_NAME stamen)
diff --git a/ CMakePresets.json b/ CMakePresets.json
@@ -112,7 +112,7 @@
"cacheVariables": {
"ENABLE_COVERAGE": "ON",
"CMAKE_BUILD_TYPE": "Coverage",
"CMAKE_CXX_FLAGS_COVERAGE": "-Og -g --coverage -fkeep-inline-functions -fkeep-static-functions",
"CMAKE_CXX_FLAGS_COVERAGE": "-O0 -g --coverage -fkeep-inline-functions -fkeep-static-functions",
"CMAKE_EXE_LINKER_FLAGS_COVERAGE": "--coverage",
"CMAKE_SHARED_LINKER_FLAGS_COVERAGE": "--coverage",
"CMAKE_MAP_IMPORTED_CONFIG_COVERAGE": "Coverage;RelWithDebInfo;Release;Debug;"
diff --git a/ source/generate.cpp b/ source/generate.cpp
@@ -116,59 +116,32 @@
void generate_source(std::ostream& ost,
prog.namespace_close(args.nspace);
}
int parse_opt(int key, const char* arg, poafloc::Parser* parser)
{
auto* arguments = static_cast<arguments_t*>(parser->input());
switch (key)
{
case 'n':
arguments->nspace = arg;
break;
case poafloc::ARG:
if (!arguments->config.empty())
{
poafloc::failure(parser, 0, 0, "Too many arguments");
poafloc::help(parser, stderr, poafloc::STD_USAGE);
}
arguments->config = arg;
break;
case poafloc::NO_ARGS:
poafloc::failure(parser, 0, 0, "Missing an argument");
poafloc::help(parser, stderr, poafloc::STD_USAGE);
break;
default:
break;
}
return 0;
}
} // namespace
// clang-format off
static const poafloc::option_t options[] {
{ nullptr, 0, nullptr, 0, "Output settings", 2},
{"namespace", 'n', "name", 0, "Name of the nemespace to generate in"},
{ nullptr, 0, nullptr, 0, "Informational Options", -1},
{ nullptr},
};
// clang-format on
static const poafloc::arg_t arg {
options,
parse_opt,
"config_file",
"",
};
int main(int argc, char* argv[])
int main(int argc, const char* argv[])
{
using namespace poafloc; // NOLINT
arguments_t args;
if (poafloc::parse(&arg, argc, argv, 0, &args) != 0)
{
std::cerr << "There was an error while parsing arguments";
return 1;
}
auto program = parser<arguments_t> {
positional {
argument {
"config",
&arguments_t::config,
},
},
group {
"Configuration options",
direct {
"n namespace",
&arguments_t::nspace,
"NAME output namespace",
},
},
};
program(args, argc, argv);
std::ifstream ifs(args.config);
const stamen::Stamen inst(ifs);
diff --git a/ vcpkg.json b/ vcpkg.json
@@ -8,7 +8,7 @@
},
{
"name": "poafloc",
"version>=": "1.2.0"
"version>=": "2.0.0"
}
],
"default-features": [],