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
diff --git a/main/main.cpp b/main/main.cpp
index 2326e519bf..dddcae0be2 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -156,10 +156,10 @@ static bool editor = false;
 static bool project_manager = false;
 static bool cmdline_tool = false;
 static String locale;
-static bool show_help = false;
 static bool auto_quit = false;
 static OS::ProcessID editor_pid = 0;
 #ifdef TOOLS_ENABLED
+static bool show_help = false;
 static bool found_project = false;
 static bool auto_build_solutions = false;
 static String debug_server_uri;
@@ -302,6 +302,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");
@@ -435,6 +436,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
@@ -679,7 +681,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.
@@ -774,6 +778,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
@@ -1315,18 +1328,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();
@@ -1348,7 +1358,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;
@@ -1848,9 +1858,11 @@ error:
 	args.clear();
 	main_args.clear();
 
+#ifdef TOOLS_ENABLED
 	if (show_help) {
 		print_help(execpath);
 	}
+#endif
 
 	EngineDebugger::deinitialize();
 
@@ -1897,7 +1909,7 @@ error:
 
 Error Main::setup2(Thread::ID p_main_tid_override) {
 	// 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");