builds godot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
diff --git a/main/main.cpp b/main/main.cpp
index 5e0187cc7f..f57985fb32 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -166,10 +166,10 @@ static bool editor = false;
 static bool project_manager = false;
 static bool cmdline_tool = false;
 static String locale;
-static bool show_help = false;
-static uint64_t quit_after = 0;
 static OS::ProcessID editor_pid = 0;
 #ifdef TOOLS_ENABLED
+static uint64_t quit_after = 0;
+static bool show_help = false;
 static bool found_project = false;
 static bool auto_build_solutions = false;
 static String debug_server_uri;
@@ -331,6 +331,7 @@ void finalize_theme_db() {
 #define MAIN_PRINT(m_txt)
 #endif
 
+#ifdef TOOLS_ENABLED
 void Main::print_help(const char *p_binary) {
 	print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - " + String(VERSION_WEBSITE));
 	OS::get_singleton()->print("Free and open source software under the terms of the MIT license.\n");
@@ -468,6 +469,7 @@ void Main::print_help(const char *p_binary) {
 #endif
 	OS::get_singleton()->print("\n");
 }
+#endif
 
 #ifdef TESTS_ENABLED
 // The order is the same as in `Main::setup()`, only core and some editor types
@@ -721,7 +723,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 	List<String> args;
 	List<String> main_args;
 	List<String> user_args;
+#ifdef TOOLS_ENABLED
 	bool adding_user_args = false;
+#endif
 	List<String> platform_args = OS::get_singleton()->get_cmdline_platform_args();
 
 	// Add command line arguments.
@@ -816,6 +820,19 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 		}
 #endif
 
+#ifndef TOOLS_ENABLED
+		if (I->get() == "--main-pack") {
+			if (I->next()) {
+				main_pack = I->next()->get();
+				N = I->next()->next();
+			} else {
+				OS::get_singleton()->print("Missing path to main pack file, aborting.\n");
+				goto error;
+			};
+		} else {
+			user_args.push_back(I->get());
+		}
+#else
 		if (adding_user_args) {
 			user_args.push_back(I->get());
 		} else if (I->get() == "-h" || I->get() == "--help" || I->get() == "/?") { // display help
@@ -1370,18 +1387,15 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 		} else {
 			main_args.push_back(I->get());
 		}
-
+#endif
 		I = N;
 	}
-
 #ifdef TOOLS_ENABLED
 	if (editor && project_manager) {
 		OS::get_singleton()->print(
 				"Error: Command line arguments implied opening both editor and project manager, which is not possible. Aborting.\n");
 		goto error;
 	}
-#endif
-
 	// Network file system needs to be configured before globals, since globals are based on the
 	// 'project.godot' file which will only be available through the network if this is enabled
 	FileAccessNetwork::configure();
@@ -1403,7 +1417,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 
 		FileAccess::make_default<FileAccessNetwork>(FileAccess::ACCESS_RESOURCES);
 	}
-
+#endif
 	if (globals->setup(project_path, main_pack, upwards, editor) == OK) {
 #ifdef TOOLS_ENABLED
 		found_project = true;
@@ -1910,9 +1924,11 @@ error:
 	args.clear();
 	main_args.clear();
 
+#ifdef TOOLS_ENABLED
 	if (show_help) {
 		print_help(execpath);
 	}
+#endif
 
 	EngineDebugger::deinitialize();
 
@@ -1961,7 +1977,7 @@ Error Main::setup2() {
 	Thread::make_main_thread(); // Make whatever thread call this the main thread.
 
 	// Print engine name and version
-	print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - " + String(VERSION_WEBSITE));
+	print_line("v" + get_full_version_string());
 
 	engine->startup_benchmark_begin_measure("servers");
 
@@ -3311,9 +3327,11 @@ bool Main::iteration() {
 		movie_writer->add_frame(vp_tex);
 	}
 
+#ifdef TOOLS_ENABLED
 	if ((quit_after > 0) && (Engine::get_singleton()->_process_frames >= quit_after)) {
 		exit = true;
 	}
+#endif
 
 	if (fixed_fps != -1) {
 		return exit;