From 4bbfd20aa9bebc3ccdec04e156bfcb1711febe7d Mon Sep 17 00:00:00 2001 From: Raul Santos Date: Fri, 18 Mar 2022 17:28:48 +0100 Subject: [PATCH] Ignore PhysicsServer3DExtension class in C# PhysicsServer3DExtension inherits from PhysicsServer3D which is a singleton class, since singleton classes are generated as static in C# it would generate invalid C# so for now we'll be ignoring PhysicsServer3DExtension. --- .github/workflows/linux_builds.yml | 36 +++++++++++----------- modules/mono/editor/bindings_generator.cpp | 9 ++++++ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml index 04b2452a9a5..0776dc77eba 100644 --- a/.github/workflows/linux_builds.yml +++ b/.github/workflows/linux_builds.yml @@ -18,16 +18,16 @@ jobs: fail-fast: false matrix: include: -# - name: Editor w/ Mono (target=release_debug, tools=yes, tests=yes) -# cache-name: linux-editor-mono -# target: release_debug -# tools: true -# tests: false # Disabled due freeze caused by mix Mono build and CI -# sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no -# doc-test: true -# bin: "./bin/godot.linuxbsd.opt.tools.64.mono" -# build-mono: true -# artifact: true + - name: Editor w/ Mono (target=release_debug, tools=yes, tests=yes) + cache-name: linux-editor-mono + target: release_debug + tools: true + tests: false # Disabled due freeze caused by mix Mono build and CI + sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no + doc-test: true + bin: "./bin/godot.linuxbsd.opt.tools.64.mono" + build-mono: true + artifact: true - name: Editor with doubles and sanitizers (target=debug, tools=yes, float=64, tests=yes, use_asan=yes, use_ubsan=yes) cache-name: linux-editor-double-sanitizers @@ -42,14 +42,14 @@ jobs: # Skip 2GiB artifact speeding up action. artifact: false -# - name: Template w/ Mono (target=release, tools=no) -# cache-name: linux-template-mono -# target: release -# tools: false -# tests: false -# sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no debug_symbols=no -# build-mono: false -# artifact: true + - name: Template w/ Mono (target=release, tools=no) + cache-name: linux-template-mono + target: release + tools: false + tests: false + sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no debug_symbols=no + build-mono: false + artifact: true - name: Minimal Template (target=release, tools=no, everything disabled) cache-name: linux-template-minimal diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp index 272283432df..eea7ed89cc3 100644 --- a/modules/mono/editor/bindings_generator.cpp +++ b/modules/mono/editor/bindings_generator.cpp @@ -100,6 +100,9 @@ #define BINDINGS_GENERATOR_VERSION UINT32_C(13) +// Types that will be ignored by the generator and won't be available in C#. +const Vector ignored_types = { "PhysicsServer3DExtension" }; + const char *BindingsGenerator::TypeInterface::DEFAULT_VARARG_C_IN("\t%0 %1_in = %1;\n"); static String fix_doc_description(const String &p_bbcode) { @@ -2645,6 +2648,12 @@ bool BindingsGenerator::_populate_object_type_interfaces() { continue; } + if (ignored_types.has(type_cname)) { + _log("Ignoring type '%s' because it's in the list of ignored types\n", String(type_cname).utf8().get_data()); + class_list.pop_front(); + continue; + } + if (!ClassDB::is_class_exposed(type_cname)) { _log("Ignoring type '%s' because it's not exposed\n", String(type_cname).utf8().get_data()); class_list.pop_front();