MinitScript  0.9.31 PRE-BETA
minitscriptmain-main.cpp
Go to the documentation of this file.
1 #include <cstdlib>
2 #include <string>
3 #include <vector>
4 
10 
11 using std::exit;
12 using std::string;
13 using std::to_string;
14 using std::vector;
15 
20 
21 int main(int argc, char** argv)
22 {
23  Console::printLine(string("minitscriptmain ") + Version::getVersion());
24  Console::printLine(Version::getCopyright());
25  Console::printLine();
26 
27  //
28  auto printUsage = []() -> void {
29  Console::printLine("Usage: minitscriptmain [--use-library] [--native-only] script_filename script_class_name main_filename");
30  };
31 
32  //
33  if (argc == 1) {
34  printUsage();
35  return EXIT_FAILURE;
36  }
37 
38  //
39  auto useLibrary = false;
40  auto nativeOnly = false;
41  auto i = 1;
42  for (; i < argc; i++) {
43  string argument = argv[i];
44  if (StringTools::startsWith(argument, "--") == false) break;
45  if (argument == "--use-library") {
46  useLibrary = true;
47  } else
48  if (argument == "--native-only") {
49  nativeOnly = true;
50  }
51  }
52  auto scriptURI = i < argc?string(argv[i++]):string();
53  auto className = i < argc?string(argv[i++]):string();
54  auto mainURI = i < argc?string(argv[i++]):string();
55 
56  //
57  if (i != argc) {
58  printUsage();
59  return EXIT_FAILURE;
60  }
61 
62  //
63  if (StringTools::endsWith(mainURI, "-main.cpp") == false) {
64  Console::printLine("An error occurred: main_filename must end with '-main.cpp'");
65  return EXIT_FAILURE;
66  }
67 
68  // generate
69  Generator::generateMain(scriptURI, className, mainURI, useLibrary, nativeOnly);
70 
71  //
72  return EXIT_SUCCESS;
73 }
MinitScript generator.
Definition: Generator.h:18
int main(int argc, char **argv)