From 20f881f6923f71c59b782367caa2ef606b954264 Mon Sep 17 00:00:00 2001 From: Henry Fredrick Schreiner Date: Wed, 22 Nov 2017 09:12:09 -0500 Subject: [PATCH] Adding better error messages, Xcode folders --- cmake/AddGoogletest.cmake | 6 +++--- include/CLI/App.hpp | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cmake/AddGoogletest.cmake b/cmake/AddGoogletest.cmake index cd80aa2..bd2c95c 100644 --- a/cmake/AddGoogletest.cmake +++ b/cmake/AddGoogletest.cmake @@ -50,16 +50,16 @@ macro(add_gtest TESTNAME) gtest_add_tests(TARGET ${TESTNAME} TEST_PREFIX "${TESTNAME}." TEST_LIST TmpTestList) - set_tests_properties(${TmpTestList} PROPERTIES FOLDER "Tests") else() gtest_discover_tests(${TESTNAME} TEST_PREFIX "${TESTNAME}." - PROPERTIES FOLDER "Tests") + ) + endif() else() add_test(${TESTNAME} ${TESTNAME}) - set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests") endif() + set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests") endmacro() diff --git a/include/CLI/App.hpp b/include/CLI/App.hpp index 209b5a4..cb7d81b 100644 --- a/include/CLI/App.hpp +++ b/include/CLI/App.hpp @@ -1105,8 +1105,16 @@ class App { // Verify required options for(const Option_p &opt : options_) { // Required - if(opt->get_required() && (static_cast(opt->count()) < opt->get_expected() || opt->count() == 0)) - throw RequiredError(opt->get_name()); + if(opt->get_required()) { + if(opt->count() == 0) { + throw RequiredError(opt->get_name() + " is required"); + } else if (static_cast(opt->count()) < opt->get_expected()) { + if(opt->get_expected() == 1) + throw RequiredError(opt->get_name() + " requires an argument"); + else + throw RequiredError(opt->get_name() + " requires at least " + std::to_string(opt->get_expected()) + " arguments"); + } + } // Requires for(const Option *opt_req : opt->requires_) if(opt->count() > 0 && opt_req->count() == 0) -- libgit2 0.21.4