summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-02-19 23:56:16 +0100
committerGitHub <noreply@github.com>2018-02-19 23:56:16 +0100
commitad5ac052a447f5121e96f2c3964e14a880b397a7 (patch)
treeaac4eb9a616821320ceb41bb2d4ebc2cf04155f5 /main
parent1602e0cdb9b4f41faba330537f97f8ed8f381b80 (diff)
parent4bfb504c2f047660ce85fda96657d5cb27415f19 (diff)
Merge pull request #16098 from NathanWarden/ci_command_options
Added --quit and --build-solutions cmd line options to make CI pipelines possible
Diffstat (limited to 'main')
-rw-r--r--main/main.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/main/main.cpp b/main/main.cpp
index a4ef357543..4d7273b4e4 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -125,6 +125,8 @@ static bool editor = false;
static bool show_help = false;
static bool disable_render_loop = false;
static int fixed_fps = -1;
+static bool auto_build_solutions = false;
+static bool auto_quit = false;
static OS::ProcessID allow_focus_steal_pid = 0;
@@ -261,6 +263,7 @@ void Main::print_help(const char *p_binary) {
OS::get_singleton()->print(" --export-debug Use together with --export, enables debug mode for the template.\n");
OS::get_singleton()->print(" --doctool <path> Dump the engine API reference to the given <path> in XML format, merging if existing files are found.\n");
OS::get_singleton()->print(" --no-docbase Disallow dumping the base types (used with --doctool).\n");
+ OS::get_singleton()->print(" --build-solutions Builds the scripting solutions (IE. C#).\n");
#ifdef DEBUG_METHODS_ENABLED
OS::get_singleton()->print(" --gdnative-generate-json-api Generate JSON dump of the Godot API for GDNative bindings.\n");
#endif
@@ -526,6 +529,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
} else if (I->get() == "-p" || I->get() == "--project-manager") { // starts project manager
project_manager = true;
+ } else if (I->get() == "--build-solutions") { // Build the scripting solution such C#
+
+ auto_build_solutions = true;
#endif
} else if (I->get() == "--no-window") { // disable window creation, Windows only
@@ -552,6 +558,8 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
}
} else if (I->get() == "-u" || I->get() == "--upwards") { // scan folders upwards
upwards = true;
+ } else if (I->get() == "--quit" || I->get() == "-q") { // Auto quit at the end of the first main loop iteration
+ auto_quit = true;
} else if (I->get().ends_with("project.godot")) {
String path;
String file = I->get();
@@ -1848,7 +1856,16 @@ bool Main::iteration() {
target_ticks = MIN(MAX(target_ticks, current_ticks - time_step), current_ticks + time_step);
}
- return exit;
+#ifdef TOOLS_ENABLED
+ if (auto_build_solutions) {
+ auto_build_solutions = false;
+ if (!EditorNode::get_singleton()->call_build()) {
+ ERR_FAIL_V(true);
+ }
+ }
+#endif
+
+ return exit || auto_quit;
}
void Main::force_redraw() {