diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-04-21 09:55:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-21 09:55:36 +0200 |
commit | 7343ec13d9d32cedb2511db0ab5d1ed454404d65 (patch) | |
tree | fb642956e458f8d4c12bf09abdc8756ed6b4a7e5 | |
parent | 40b2aea222807ab50a31c7ca718bfca76080caa0 (diff) | |
parent | b30014f93f85303e01e32f7c2b87b1bd4c909bdc (diff) |
Merge pull request #38047 from akien-mga/mono-docdata-hack
DocData: Keep Mono properties on non-Mono builds
-rw-r--r-- | editor/doc_data.cpp | 20 | ||||
-rw-r--r-- | main/main.cpp | 14 |
2 files changed, 34 insertions, 0 deletions
diff --git a/editor/doc_data.cpp b/editor/doc_data.cpp index a71427d6fc..dd9bacaa80 100644 --- a/editor/doc_data.cpp +++ b/editor/doc_data.cpp @@ -40,6 +40,9 @@ #include "core/version.h" #include "scene/resources/theme.h" +// Used for a hack preserving Mono properties on non-Mono builds. +#include "modules/modules_enabled.gen.h" + void DocData::merge_from(const DocData &p_data) { for (Map<String, ClassDoc>::Element *E = class_list.front(); E; E = E->next()) { @@ -154,6 +157,23 @@ void DocData::merge_from(const DocData &p_data) { break; } } + +#ifndef MODULE_MONO_ENABLED + // The Mono module defines some properties that we want to keep when + // re-generating docs with a non-Mono build, to prevent pointless diffs + // (and loss of descriptions) depending on the config of the doc writer. + // We use a horrible hack to force keeping the relevant properties, + // hardcoded below. At least it's an ad hoc hack... ¯\_(ツ)_/¯ + // Don't show this to your kids. + if (c.name == "@GlobalScope") { + // Retrieve GodotSharp singleton. + for (int j = 0; j < cf.properties.size(); j++) { + if (cf.properties[j].name == "GodotSharp") { + c.properties.push_back(cf.properties[j]); + } + } + } +#endif } } diff --git a/main/main.cpp b/main/main.cpp index 4897e1f20e..ad8e8dadfe 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -55,6 +55,7 @@ #include "main/splash.gen.h" #include "main/splash_editor.gen.h" #include "main/tests/test_main.h" +#include "modules/modules_enabled.gen.h" #include "modules/register_module_types.h" #include "platform/register_platform_apis.h" #include "scene/main/scene_tree.h" @@ -1599,6 +1600,19 @@ bool Main::start() { DirAccessRef da = DirAccess::open(doc_tool); ERR_FAIL_COND_V_MSG(!da, false, "Argument supplied to --doctool must be a base Godot build directory."); } + +#ifndef MODULE_MONO_ENABLED + // Hack to define Mono-specific project settings even on non-Mono builds, + // so that we don't lose their descriptions and default values in DocData. + // Default values should be synced with mono_gd/gd_mono.cpp. + GLOBAL_DEF("mono/debugger_agent/port", 23685); + GLOBAL_DEF("mono/debugger_agent/wait_for_debugger", false); + GLOBAL_DEF("mono/debugger_agent/wait_timeout", 3000); + GLOBAL_DEF("mono/profiler/args", "log:calls,alloc,sample,output=output.mlpd"); + GLOBAL_DEF("mono/profiler/enabled", false); + GLOBAL_DEF("mono/unhandled_exception_policy", 0); +#endif + DocData doc; doc.generate(doc_base); |