MCPcopy Create free account
hub / github.com/Kitware/CMake / testCommandLineArguments

Function testCommandLineArguments

Source/kwsys/testCommandLineArguments.cxx:62–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62int testCommandLineArguments(int argc, char* argv[])
63{
64 // Example run: ./testCommandLineArguments --some-int-variable 4
65 // --another-bool-variable --some-bool-variable=yes
66 // --some-stl-string-variable=foobar --set-bool-arg1 --set-bool-arg2
67 // --some-string-variable=hello
68
69 int res = 0;
70 kwsys::CommandLineArguments arg;
71 arg.Initialize(argc, argv);
72
73 // For error handling
74 arg.SetClientData(random_ptr);
75 arg.SetUnknownArgumentCallback(unknown_argument);
76
77 int some_int_variable = 10;
78 double some_double_variable = 10.10;
79 char* some_string_variable = nullptr;
80 std::string some_stl_string_variable;
81 bool some_bool_variable = false;
82 bool some_bool_variable1 = false;
83 bool bool_arg1 = false;
84 int bool_arg2 = 0;
85
86 std::vector<int> numbers_argument;
87 int valid_numbers[] = { 5, 1, 8, 3, 7, 1, 3, 9, 7, 1 };
88
89 std::vector<double> doubles_argument;
90 double valid_doubles[] = { 12.5, 1.31, 22 };
91
92 std::vector<bool> bools_argument;
93 bool valid_bools[] = { true, true, false };
94
95 std::vector<char*> strings_argument;
96 char const* valid_strings[] = { "andy", "bill", "brad", "ken" };
97
98 std::vector<std::string> stl_strings_argument;
99 std::string valid_stl_strings[] = { "ken", "brad", "bill", "andy" };
100
101 using argT = kwsys::CommandLineArguments;
102
103 arg.AddArgument("--some-int-variable", argT::SPACE_ARGUMENT,
104 &some_int_variable, "Set some random int variable");
105 arg.AddArgument("--some-double-variable", argT::CONCAT_ARGUMENT,
106 &some_double_variable, "Set some random double variable");
107 arg.AddArgument("--some-string-variable", argT::EQUAL_ARGUMENT,
108 &some_string_variable, "Set some random string variable");
109 arg.AddArgument("--some-stl-string-variable", argT::EQUAL_ARGUMENT,
110 &some_stl_string_variable,
111 "Set some random stl string variable");
112 arg.AddArgument("--some-bool-variable", argT::EQUAL_ARGUMENT,
113 &some_bool_variable, "Set some random bool variable");
114 arg.AddArgument("--another-bool-variable", argT::NO_ARGUMENT,
115 &some_bool_variable1, "Set some random bool variable 1");
116 arg.AddBooleanArgument("--set-bool-arg1", &bool_arg1,
117 "Test AddBooleanArgument 1");
118 arg.AddBooleanArgument("--set-bool-arg2", &bool_arg2,
119 "Test AddBooleanArgument 2");

Callers

nothing calls this directly

Calls 8

SetClientDataMethod · 0.80
AddCallbackMethod · 0.80
GetHelpMethod · 0.80
InitializeMethod · 0.45
AddArgumentMethod · 0.45
ParseMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…