79 {
80 impl_->cli_app_.allow_extras();
81
82
83 auto* tpetra_opt = impl_->cli_app_.add_flag("--use_tpetra", impl_->use_tpetra_, "Use TPetra solvers")
84 ->check([](const std::string&) -> std::string {
85#ifdef NIMBLE_HAVE_TRILINOS
86 return {};
87#else
88 return "NimbleSM was not built with Trilinos support";
89#endif
90 });
91
92 impl_->cli_app_.add_flag("--use_vt", impl_->use_vt_, "Use DARMA/vt for asynchronous distributed contact tasking")
93 ->check([](const std::string&) -> std::string {
94#ifdef NIMBLE_HAVE_VT
95 return {};
96#else
97 return "NimbleSM was not built with DARMA/vt support";
98#endif
99 });
100
101 impl_->cli_app_.add_flag("--use_uq", impl_->use_vt_, "Use UQ capability")->check([](const std::string&) -> std::string {
102#ifdef NIMBLE_HAVE_UQ
103 return {};
104#else
105 return "NimbleSM was not built with UQ support";
106#endif
107 });
108
109 impl_->cli_app_.add_option( "INPUT_FILE", impl_->input_filename_)->required()->check(CLI::ExistingFile);
110}