#include "elna/cli/cl.hpp" #include #include #include int main(int argc, char **argv) { boost::program_options::options_description visible{ "Allowed options" }; boost::program_options::options_description description; boost::program_options::positional_options_description positional; boost::program_options::variables_map variables_map; visible.add_options() ("help", "Print this help message") ("output,o", boost::program_options::value(), "Output object file") ; description.add_options() ("input", boost::program_options::value()->required()) ; description.add(visible); positional.add("input", 1); auto parsed = boost::program_options::command_line_parser(argc, argv) .options(description).positional(positional) .run(); boost::program_options::store(parsed, variables_map); boost::program_options::notify(variables_map); if (variables_map.count("help")) { std::cout << description << std::endl; return 0; } const auto in_file = variables_map["input"].as(); std::filesystem::path out_file; if (variables_map.count("output")) { out_file = variables_map["output"].as(); } else { out_file = in_file.filename().replace_extension(".o"); } return elna::cli::compile(in_file, out_file); }