add cxxopts example and update lua (#73)

* add cxxopts example

* use new tags for lua

* update readme

* update readme

* update lua

* typo
This commit is contained in:
Lars Melchior
2019-07-24 11:48:50 +02:00
committed by GitHub
parent 64f5fe37cd
commit a6bc65a76c
6 changed files with 67 additions and 19 deletions

View File

@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
# ---- Options ----
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
# ---- Dependencies ----
include(../../cmake/CPM.cmake)
CPMAddPackage(
NAME cxxopts
GITHUB_REPOSITORY jarro2783/cxxopts
VERSION 2.2.0
OPTIONS
"CXXOPTS_BUILD_EXAMPLES Off"
"CXXOPTS_BUILD_TESTS Off"
)
# ---- Create binary ----
add_executable(CPMExampleCXXOpts main.cpp)
target_link_libraries(CPMExampleCXXOpts cxxopts)
set_target_properties(CPMExampleCXXOpts PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")

23
examples/cxxopts/main.cpp Normal file
View File

@@ -0,0 +1,23 @@
#include <cxxopts.hpp>
#include <iostream>
int main(int argc, char ** argv) {
cxxopts::Options options("MyProgram", "One line description of MyProgram");
options.add_options()
("h,help", "Show help")
("d,debug", "Enable debugging")
("f,file", "File name", cxxopts::value<std::string>());
auto result = options.parse(argc, argv);
if (result["help"].as<bool>()) {
std::cout << options.help() << std::endl;
return 0;
}
for (auto arg: result.arguments()) {
std::cout << "option: " << arg.key() << ": " << arg.value() << std::endl;
}
return 0;
}