7 #include <openssl/applink.c>
21 using std::make_unique;
23 using std::unique_ptr;
34 int main(
int argc,
char** argv)
38 auto printInformation = [&]() ->
void {
39 Console::printLine(
string(
"minitscriptbuild ") + Version::getVersion());
40 Console::printLine(Version::getCopyright());
42 Console::printLine(
"Usage: minitscriptbuild [--help] [--application|--library] [--native-only] main-script.tscript [additional-script1.tscript] [additional-script2.tscript] [additional-scriptN.tscript]");
52 vector<string> scriptURIs;
55 for (
auto i = 1; i < argc; i++) {
56 string argument = argv[i];
57 if (argument ==
"--help") {
64 MinitScript::initialize();
66 auto context = make_unique<Context>();
67 auto script = make_unique<MinitScript>();
71 vector<string> argumentValues;
72 argumentValues.push_back(argv[0]);
73 for (
auto i = 1; i < argc; i++) {
74 string argumentValue(argv[i]);
76 if (argumentValue ==
"--help")
continue;
77 if (argumentValue ==
"--application") {
78 argumentValues.push_back(argumentValue);
81 if (argumentValue ==
"--library") {
82 argumentValues.push_back(argumentValue);
85 if (argumentValue ==
"--native-only") {
86 argumentValues.push_back(argumentValue);
90 argumentValue = StringTools::replace(argumentValue,
"\\",
"/");
92 argumentValue = FileSystem::getCanonicalURI(FileSystem::getPathName(argumentValue), FileSystem::getFileName(argumentValue));
94 if (FileSystem::exists(argumentValue) ==
false) {
99 argumentValues.push_back(argumentValue);
102 context->setArgumentValues(argumentValues);
104 auto pathToScript =
MINITSCRIPT_DATA +
"/resources/minitscript/scripts/build.tscript";
105 script = make_unique<MinitScript>();
106 script->setContext(context.get());
108 FileSystem::getPathName(pathToScript),
109 FileSystem::getFileName(pathToScript)
112 if (script->isValid() ==
false) {
113 Console::printLine(pathToScript +
": Build script not valid. Exiting!");
117 Network::initialize();
119 #if defined(_MSC_VER)
123 auto scriptPtr = script.get();
124 context->push(scriptPtr);
125 context->addScript(
"application", script.release());
127 while (scriptPtr->isRunning() ==
true) {
128 scriptPtr->execute();
134 return context->getExitCode();
static void printLine()
Print newline to console.
int main(int argc, char **argv)
std::exception Exception
Exception base class.