1-week *ping* On Thu, Aug 24, 2023 at 11:47:06PM -0400, Thomas Frohwein wrote: > Hi, > > This is a bigger diff that (finally) enables the mono module for Godot > and allows running Godot projects with C# instead of Godot's own > GDScript language in the editor. As this has been a bigger endeavor, > I'm structuring this email a little more. > > Background > ---------- > > Upstream has a convoluted process for building Godot with mono [1], > basically in order to generate the C# glue. This process never > worked in ports tree, in part because a full godot binary needs to be > built first, then invoked with --generate-mono-glue which seems to > require openting an X11 window as part of the process. > > Methods > ------- > > I managed to build godot with mono module enabled by using pre-generated > mono glue code (see distfiles) that is plugged in. The reason why > upstream doesn't provide the generated code is likely that they want to > allow for systems with different mono and/or dotnet versions which > might generate different results. > > This also needs devel/msbuild, and a number of patches to teach Godot > where to find the files that it expects to be relative to its binary > which might be in any user directory. > > Results > ------- > > The port becomes a bit more complex. If built with mono, both bin/godot > and bin/godot-tools need to find the C# assemblies (mostly in the > GodotSharp directory) in order to launch. Therefore, I split the > assemblies out into a third package godot-sharp, meant to supply those > dependencies to -main and -tools. > > Non-C# projects including commercially distributed games based on > GDScript should continue to run as before (tested by me with Brotato). > I haven't found an example of a commercial game using C# with Godot to > test this with. > > The editor invokes msbuild for C# projects before running them. I > tested this with 2 of the demo projects for Godot 3.5 from [2], > "Dodge the Creeps with C#" and "2.5D Demo with C#". They work, but a > 1-line modification of a file in the user's nuget directory is needed > which I added to README-tools. This is likely because > TargetFrameworkFallbackSearchPaths isn't supported by our mono or > msbuild at this point. With this small modification, I can build and > run the Godot C# demo projects as expected. > > The addition of the library suffix for libmonosgen-2.0 in > mono_configure.py is a bit fragile, as it may need manual updating > should there be a bump in the mono library. I haven't figured out a > better approach so far. > > Summary > ------- > > This adds C#/mono support, but this will likely some more refinement. > > This effort deals with some weirdnesses that arise from how Godot games > are generally distributed, which is similar to other portable game > development and distribution frameworks/engines, like FNA, MonoGame, > Unity, LibGDX etc. The core game logic and the assets exist in platform > independent code. The developer ships the game with that plus all the > platform-specific native binaries and libraries together. It seems that > all the officially supported operating systems (Windows, Mac, Linux) > adhere to being able to run such binaries and libraries even if they > were compiled 10 years ago. > > As we don't do that on OpenBSD, things like file locations need to be > adjusted for a system install, as opposed to the locally contained > approach. For an eventual godot4 port, it looks like mono won't do > anymore and an eventual port of dotnet would be needed. > > In the future, we might be able with some more refinement to get rid of > at least some of the files in pkg/PLIST-sharp by pointing godot to the > correct location of the mono and msbuild files. > > The best way forward is probably to try to work with upstream on a new > install and runtime approach that uses binary and libraries installed in > conventional system directories. I have plans to propose such an scons > modality upstream after familiarizing myself with where Godot4 is at now. > > comments and ok's are welcome; given the complexity there might still > be benefit in adding this early to the port and working out some > refinements in-tree, with also more opportunity to hear of > unanticipated bugs. > > [1] > https://docs.godotengine.org/en/3.5/development/compiling/compiling_with_mono.html > [2] https://github.com/godotengine/godot-demo-projects
Index: Makefile =================================================================== RCS file: /cvs/ports/games/godot/Makefile,v retrieving revision 1.49 diff -u -p -r1.49 Makefile --- Makefile 14 Aug 2023 12:40:50 -0000 1.49 +++ Makefile 25 Aug 2023 02:44:30 -0000 @@ -2,12 +2,19 @@ BROKEN-powerpc = fails at runtime, the U COMMENT-main = 2D and 3D game engine COMMENT-tools= 2D and 3D game engine (with tools) +COMMENT-sharp= glue for mono/C# module of Godot + +ONLY_FOR_ARCHS = ${MONO_ARCHS} + +# WXNEEDED and NOBTCFI needed for module_mono_enabled=yes +USE_WXNEEDED = Yes +USE_NOBTCFI = Yes V = 3.5.2 GODOTSTEAM_V = v3.20 DISTNAME = godot-${V}-stable PKGNAME = godot-${V} -REVISION = 5 +REVISION = 6 CATEGORIES = games @@ -18,7 +25,7 @@ MAINTAINER = Omar Polo <o...@openbsd.org> # MIT PERMIT_PACKAGE = Yes -MULTI_PACKAGES = -main -tools +MULTI_PACKAGES = -main -tools -sharp WANTLIB += ${COMPILER_LIBCXX} BulletCollision BulletDynamics BulletSoftBody WANTLIB += GL LinearMath X11 X11-xcb Xau Xcursor Xdmcp Xext Xfixes @@ -28,23 +35,30 @@ WANTLIB += opusfile pcre2-32 sharpyuv sn WANTLIB += usbhid vorbis vorbisfile vpx webp xcb xcb-dri2 xcb-glx WANTLIB += zstd -WANTLIB-main = ${WANTLIB} Xss -WANTLIB-tools = ${WANTLIB} +# mono-native is dlopened when using the mono/C#/godot-sharp parts +WANTLIB-main = ${WANTLIB} Xss mono-native +WANTLIB-tools = ${WANTLIB} mono-native + +# needed by files in share/godot/GodotSharp/Mono/lib/ +WANTLIB-sharp = execinfo m pthread z # C++14 COMPILER = base-clang ports-gcc MASTER_SITES = https://downloads.tuxfamily.org/godotengine/${V}/ MASTER_SITES0 = https://github.com/CoaguCo-Industries/GodotSteam/archive/refs/tags/ +MASTER_SITES1 = https://thfr.info/distfiles/ DISTFILES = ${DISTNAME}${EXTRACT_SUFX} \ - ${GODOTSTEAM_V}.tar.gz:0 + ${GODOTSTEAM_V}.tar.gz:0 \ + godot-${V}-mono-glue.tar.gz:1 \ + godot-${V}-nuget-packages.tar.xz:1 EXTRACT_SUFX = .tar.xz DIST_SUBDIR = ${PKGNAME} MODULES = devel/scons -# Building with module_mono_enabled requires msbuild and to fix the -# sharedlib_ext in modules/mono/config.py to '.so.1.0' +MODSCONS_ENV += HOME=${NUGETHOME} \ + NUGET_PACKAGES=${NUGETHOME}/packages MODSCONS_FLAGS = CC="${CC}" \ CXX="${CXX}" \ CFLAGS="${CFLAGS}" \ @@ -64,6 +78,9 @@ MODSCONS_FLAGS = CC="${CC}" \ builtin_zlib=no \ builtin_zstd=no \ custom_modules=${WRKSRC}/godotsteam \ + module_mono_enabled=yes \ + mono_prefix=${LOCALBASE} \ + mono_static=yes \ progress=no \ pulseaudio=no \ verbose=yes \ @@ -80,6 +97,8 @@ MODSCONS_FLAGS += builtin_freetype=yes MODSCONS_FLAGS += module_raycast_enabled="false" .endif +BUILD_DEPENDS = devel/msbuild + LIB_DEPENDS = archivers/zstd \ audio/libvorbis \ audio/musepack \ @@ -89,12 +108,18 @@ LIB_DEPENDS = archivers/zstd \ devel/pcre2 \ games/goldberg_emulator \ graphics/libwebp \ + lang/mono \ multimedia/libtheora \ multimedia/libvpx \ net/enet \ security/polarssl +LIB_DEPENDS-sharp = -RUN_DEPENDS-tools = devel/desktop-file-utils +RUN_DEPENDS-sharp = +RUN_DEPENDS-main = games/godot,-sharp +RUN_DEPENDS-tools = devel/desktop-file-utils \ + devel/msbuild \ + games/godot,-sharp DEBUG_PACKAGES = ${BUILD_PACKAGES} NO_TEST = Yes @@ -116,30 +141,55 @@ WANTLIB += atomic .endif CFLAGS += -I${LOCALBASE}/include/goldberg_emulator +CXXFLAGS += -I${LOCALBASE}/include/goldberg_emulator + +GLUEDIR = ${WRKDIR}/godot-${V}-mono-glue +NUGETHOME = ${WRKDIR}/nugethome +SUBST_VARS += NUGETHOME -# copy over to allow patching GodotSteam post-extract: + @# install backends from FILESDIR cp -R ${FILESDIR}/sndio ${WRKDIST}/drivers cp ${FILESDIR}/ujoy/joypad_openbsd.{cpp,h} \ ${WRKDIST}/platform/x11/ + @# move GodotSteam into WRKSRC to allow patching mv ${WRKDIR}/GodotSteam-${GODOTSTEAM_V:S/v//} ${WRKSRC}/godotsteam + @# set up nuget package location + mkdir -p ${NUGETHOME} + mv ${WRKDIR}/godot-${V}-nuget-packages ${NUGETHOME}/packages + @# move pre-generated mono glue into place + mv ${GLUEDIR}/mono_glue.gen.cpp ${WRKSRC}/modules/mono/glue/ + mv ${GLUEDIR}/GodotSharp/GodotSharp/Generated \ + ${WRKSRC}/modules/mono/glue/GodotSharp/GodotSharp/ + mv ${GLUEDIR}/GodotSharp/GodotSharpEditor/Generated \ + ${WRKSRC}/modules/mono/glue/GodotSharp/GodotSharpEditor/ pre-configure: ${SUBST_CMD} ${WRKSRC}/misc/dist/linux/*.desktop + ${SUBST_CMD} ${WRKSRC}/modules/mono/build_scripts/solution_builder.py + ${SUBST_CMD} ${WRKSRC}/modules/mono/godotsharp_dirs.cpp do-build: + @# Export Template build @${MODSCONS_BUILD_TARGET} tools=no target=release \ CXXFLAGS="${CXXFLAGS} -Wno-deprecated-register -DSUSPEND_SCREENSAVER=1" \ LINKFLAGS="${LDFLAGS} -lintl -lmpcdec -lusbhid -lXss" + @# Editor build @${MODSCONS_BUILD_TARGET} tools=yes target=release_debug \ CXXFLAGS="${CXXFLAGS} -Wno-deprecated-register" \ LINKFLAGS="${LDFLAGS} -lintl -lmpcdec -lusbhid" do-install: - ${INSTALL_PROGRAM} ${WRKBUILD}/bin/godot.x11.opt.${BINSUFFIX} \ + @# Export Template files + @${INSTALL_PROGRAM} ${WRKBUILD}/bin/godot.x11.opt.${BINSUFFIX}.mono \ ${PREFIX}/bin/godot - ${INSTALL_PROGRAM} ${WRKBUILD}/bin/godot.x11.opt.tools.${BINSUFFIX} \ + @# Editor files + ${INSTALL_PROGRAM} ${WRKBUILD}/bin/godot.x11.opt.tools.${BINSUFFIX}.mono \ ${PREFIX}/bin/godot-tools + @# GodotSharp files + ${INSTALL_DATA_DIR} ${PREFIX}/share/godot + cp -R ${WRKBUILD}/bin/GodotSharp ${PREFIX}/share/godot/ + @# Rest: man pages, icons, desktop integration ${INSTALL_MAN_DIR} ${PREFIX}/man/man6 ${INSTALL_MAN} ${WRKSRC}/misc/dist/linux/godot.6 \ ${PREFIX}/man/man6 Index: distinfo =================================================================== RCS file: /cvs/ports/games/godot/distinfo,v retrieving revision 1.20 diff -u -p -r1.20 distinfo --- distinfo 11 Aug 2023 12:36:10 -0000 1.20 +++ distinfo 25 Aug 2023 02:44:30 -0000 @@ -1,4 +1,8 @@ +SHA256 (godot-3.5.2/godot-3.5.2-mono-glue.tar.gz) = ezUneQt2JzlsQPF4FvSCcNtJiYbdb3NEY4Lvjj/gz64= +SHA256 (godot-3.5.2/godot-3.5.2-nuget-packages.tar.xz) = RXlTjB1IgjZEP2ZJY05xoGQv8XTRKHxwPaMmiNdduQE= SHA256 (godot-3.5.2/godot-3.5.2-stable.tar.xz) = tDodaynqJby6+86/e6CEMmGqEjfic5SUU4oiANjHvmI= SHA256 (godot-3.5.2/v3.20.tar.gz) = FoAl3iZ+1CWwIPXwJZ9S7q3QMn//RslYT06tXkc38QU= +SIZE (godot-3.5.2/godot-3.5.2-mono-glue.tar.gz) = 1094618 +SIZE (godot-3.5.2/godot-3.5.2-nuget-packages.tar.xz) = 55742184 SIZE (godot-3.5.2/godot-3.5.2-stable.tar.xz) = 24047432 SIZE (godot-3.5.2/v3.20.tar.gz) = 253832 Index: patches/patch-modules_mono_build_scripts_mono_configure_py =================================================================== RCS file: patches/patch-modules_mono_build_scripts_mono_configure_py diff -N patches/patch-modules_mono_build_scripts_mono_configure_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_build_scripts_mono_configure_py 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,51 @@ +include a suffix argument for find_file_in_dir +use suffix argument to look for libmonosgen-2.0.so.1.0 +disable librt/libdl + +Index: modules/mono/build_scripts/mono_configure.py +--- modules/mono/build_scripts/mono_configure.py.orig ++++ modules/mono/build_scripts/mono_configure.py +@@ -31,15 +31,16 @@ def find_name_in_dir_files(directory, names, prefixes= + return "" + + +-def find_file_in_dir(directory, names, prefixes=[""], extensions=[""]): +- for extension in extensions: +- if extension and not extension.startswith("."): +- extension = "." + extension +- for prefix in prefixes: +- for curname in names: +- filename = prefix + curname + extension +- if os.path.isfile(os.path.join(directory, filename)): +- return filename ++def find_file_in_dir(directory, names, prefixes=[""], extensions=[""], suffix=[""]): ++ for sufx in suffix: ++ for extension in extensions: ++ if extension and not extension.startswith("."): ++ extension = "." + extension ++ for prefix in prefixes: ++ for curname in names: ++ filename = prefix + curname + extension + sufx ++ if os.path.isfile(os.path.join(directory, filename)): ++ return filename + return "" + + +@@ -335,7 +336,7 @@ def configure(env, env_mono): + elif is_javascript: + env.Append(LIBS=["m", "rt", "dl", "pthread"]) + else: +- env.Append(LIBS=["m", "rt", "dl", "pthread"]) ++ env.Append(LIBS=["m", "pthread"]) + + if not mono_static: + mono_so_file = find_file_in_dir( +@@ -358,7 +359,7 @@ def configure(env, env_mono): + tmpenv.ParseConfig("pkg-config monosgen-2 --libs-only-L") + + for hint_dir in tmpenv["LIBPATH"]: +- file_found = find_file_in_dir(hint_dir, mono_lib_names, prefixes=["lib"], extensions=[sharedlib_ext]) ++ file_found = find_file_in_dir(hint_dir, mono_lib_names, prefixes=["lib"], extensions=[sharedlib_ext], suffix=[".1.0"]) + if file_found: + mono_lib_path = hint_dir + mono_so_file = file_found Index: patches/patch-modules_mono_build_scripts_solution_builder_py =================================================================== RCS file: patches/patch-modules_mono_build_scripts_solution_builder_py diff -N patches/patch-modules_mono_build_scripts_solution_builder_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_build_scripts_solution_builder_py 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,28 @@ +point msbuild to the prepared nuget packages dir +supply NUGETHOME as home dir + +Index: modules/mono/build_scripts/solution_builder.py +--- modules/mono/build_scripts/solution_builder.py.orig ++++ modules/mono/build_scripts/solution_builder.py +@@ -89,11 +89,10 @@ def run_command(command, args, env_override=None, name + def cmd_args_to_str(cmd_args): + return " ".join([arg if not " " in arg else '"%s"' % arg for arg in cmd_args]) + +- args = [command] + args ++ args = ["env", "HOME=${NUGETHOME}"] + [command] + args + + if name is None: + name = os.path.basename(command) +- + if verbose: + print("Running '%s': %s" % (name, cmd_args_to_str(args))) + +@@ -142,7 +141,7 @@ def build_solution(env, solution_path, build_config, e + + # Build solution + +- msbuild_args += [solution_path, "/restore", "/t:Build", "/p:Configuration=" + build_config] ++ msbuild_args += [solution_path, "/restore", "/p:RestorePackagesPath=${NUGETHOME}/packages", "/t:Build", "/p:Configuration=" + build_config] + msbuild_args += extra_msbuild_args + + run_command(msbuild_path, msbuild_args, env_override=msbuild_env, name="msbuild") Index: patches/patch-modules_mono_csharp_script_cpp =================================================================== RCS file: patches/patch-modules_mono_csharp_script_cpp diff -N patches/patch-modules_mono_csharp_script_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_csharp_script_cpp 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,28 @@ +fix error: cannot initialize return object of type 'bool' with +an rvalue of type 'nullptr_t' + +Index: modules/mono/csharp_script.cpp +--- modules/mono/csharp_script.cpp.orig ++++ modules/mono/csharp_script.cpp +@@ -2310,7 +2310,7 @@ bool CSharpScript::_update_exports(PlaceHolderScriptIn + + GDMonoMethod *ctor = script_class->get_method(CACHED_STRING_NAME(dotctor), 0); + +- ERR_FAIL_NULL_V_MSG(ctor, NULL, ++ ERR_FAIL_NULL_V_MSG(ctor, false, + "Cannot construct temporary MonoObject because the class does not define a parameterless constructor: '" + get_path() + "'."); + + MonoException *ctor_exc = NULL; +@@ -2891,10 +2891,10 @@ bool CSharpScript::can_instance() const { + if (extra_cond && !script_class) { + if (GDMono::get_singleton()->get_project_assembly() == NULL) { + // The project assembly is not loaded +- ERR_FAIL_V_MSG(NULL, "Cannot instance script because the project assembly is not loaded. Script: '" + get_path() + "'."); ++ ERR_FAIL_V_MSG(false, "Cannot instance script because the project assembly is not loaded. Script: '" + get_path() + "'."); + } else { + // The project assembly is loaded, but the class could not found +- ERR_FAIL_V_MSG(NULL, "Cannot instance script because the class '" + name + "' could not be found. Script: '" + get_path() + "'."); ++ ERR_FAIL_V_MSG(false, "Cannot instance script because the class '" + name + "' could not be found. Script: '" + get_path() + "'."); + } + } + Index: patches/patch-modules_mono_glue_GodotSharp_GodotSharp_GodotSharp_csproj =================================================================== RCS file: patches/patch-modules_mono_glue_GodotSharp_GodotSharp_GodotSharp_csproj diff -N patches/patch-modules_mono_glue_GodotSharp_GodotSharp_GodotSharp_csproj --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_glue_GodotSharp_GodotSharp_GodotSharp_csproj 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,13 @@ +needs LangVersion 7.1 for 'default literal'; otherwise error CS8107 + +Index: modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj +--- modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj.orig ++++ modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj +@@ -7,6 +7,7 @@ + <TargetFramework>netstandard2.0</TargetFramework> + <DocumentationFile>$(OutputPath)/$(AssemblyName).xml</DocumentationFile> + <EnableDefaultItems>false</EnableDefaultItems> ++ <LangVersion>7.1</LangVersion> + </PropertyGroup> + <PropertyGroup> + <DefineConstants>$(DefineConstants);GODOT</DefineConstants> Index: patches/patch-modules_mono_godotsharp_dirs_cpp =================================================================== RCS file: patches/patch-modules_mono_godotsharp_dirs_cpp diff -N patches/patch-modules_mono_godotsharp_dirs_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_godotsharp_dirs_cpp 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,93 @@ +fix paths for our mono and godot install dirs +make data_editor_prebuilt_api_dir() available also when !TOOLS_ENABLED + +Index: modules/mono/godotsharp_dirs.cpp +--- modules/mono/godotsharp_dirs.cpp.orig ++++ modules/mono/godotsharp_dirs.cpp +@@ -97,6 +97,8 @@ class _GodotSharpDirs { (public) + String res_temp_assemblies_dir; + String mono_user_dir; + String mono_logs_dir; ++ String data_editor_tools_dir; ++ String data_editor_prebuilt_api_dir; + + #ifdef TOOLS_ENABLED + String mono_solutions_dir; +@@ -106,8 +108,6 @@ class _GodotSharpDirs { (public) + String sln_filepath; + String csproj_filepath; + +- String data_editor_tools_dir; +- String data_editor_prebuilt_api_dir; + #else + // Equivalent of res_assemblies_dir, but in the data directory rather than in 'res://'. + // Only defined on export templates. Used when exporting assemblies outside of PCKs. +@@ -177,20 +177,20 @@ class _GodotSharpDirs { (public) + #endif + + String exe_dir = OS::get_singleton()->get_executable_path().get_base_dir(); ++ String share_dir = "${LOCALBASE}/share/godot"; + +-#ifdef TOOLS_ENABLED +- +- String data_dir_root = exe_dir.plus_file("GodotSharp"); ++ String data_dir_root = share_dir.plus_file("GodotSharp"); + data_editor_tools_dir = data_dir_root.plus_file("Tools"); + data_editor_prebuilt_api_dir = data_dir_root.plus_file("Api"); + + String data_mono_root_dir = data_dir_root.plus_file("Mono"); +- data_mono_etc_dir = data_mono_root_dir.plus_file("etc"); ++ data_mono_etc_dir = "${SYSCONFDIR}"; ++#ifdef TOOLS_ENABLED + + #ifdef ANDROID_ENABLED + data_mono_lib_dir = gdmono::android::support::get_app_native_lib_dir(); + #else +- data_mono_lib_dir = data_mono_root_dir.plus_file("lib"); ++ data_mono_lib_dir = "${LOCALBASE}/lib"; + #endif + + #ifdef WINDOWS_ENABLED +@@ -214,6 +214,7 @@ class _GodotSharpDirs { (public) + + #else + ++ /* + String appname = ProjectSettings::get_singleton()->get("application/config/name"); + String appname_safe = OS::get_singleton()->get_safe_dir_name(appname); + String data_dir_root = exe_dir.plus_file("data_" + appname_safe); +@@ -223,11 +224,12 @@ class _GodotSharpDirs { (public) + + String data_mono_root_dir = data_dir_root.plus_file("Mono"); + data_mono_etc_dir = data_mono_root_dir.plus_file("etc"); ++ */ + + #ifdef ANDROID_ENABLED + data_mono_lib_dir = gdmono::android::support::get_app_native_lib_dir(); + #else +- data_mono_lib_dir = data_mono_root_dir.plus_file("lib"); ++ data_mono_lib_dir = "${LOCALBASE}/lib"; + data_game_assemblies_dir = data_dir_root.plus_file("Assemblies"); + #endif + +@@ -299,6 +301,10 @@ String get_mono_logs_dir() { + return _GodotSharpDirs::get_singleton().mono_logs_dir; + } + ++String get_data_editor_prebuilt_api_dir() { ++ return _GodotSharpDirs::get_singleton().data_editor_prebuilt_api_dir; ++} ++ + #ifdef TOOLS_ENABLED + String get_mono_solutions_dir() { + return _GodotSharpDirs::get_singleton().mono_solutions_dir; +@@ -324,9 +330,6 @@ String get_data_editor_tools_dir() { + return _GodotSharpDirs::get_singleton().data_editor_tools_dir; + } + +-String get_data_editor_prebuilt_api_dir() { +- return _GodotSharpDirs::get_singleton().data_editor_prebuilt_api_dir; +-} + #else + String get_data_game_assemblies_dir() { + return _GodotSharpDirs::get_singleton().data_game_assemblies_dir; Index: patches/patch-modules_mono_godotsharp_dirs_h =================================================================== RCS file: patches/patch-modules_mono_godotsharp_dirs_h diff -N patches/patch-modules_mono_godotsharp_dirs_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_godotsharp_dirs_h 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,23 @@ +make get_data_editor_prebuilt_api_dir() available for !TOOLS_ENABLED +build + +Index: modules/mono/godotsharp_dirs.h +--- modules/mono/godotsharp_dirs.h.orig ++++ modules/mono/godotsharp_dirs.h +@@ -47,6 +47,8 @@ String get_res_temp_assemblies_dir(); + String get_mono_user_dir(); + String get_mono_logs_dir(); + ++String get_data_editor_prebuilt_api_dir(); ++ + #ifdef TOOLS_ENABLED + String get_mono_solutions_dir(); + String get_build_logs_dir(); +@@ -56,7 +58,6 @@ String get_project_sln_path(); + String get_project_csproj_path(); + + String get_data_editor_tools_dir(); +-String get_data_editor_prebuilt_api_dir(); + #else + String get_data_game_assemblies_dir(); + #endif Index: patches/patch-modules_mono_mono_gd_gd_mono_cpp =================================================================== RCS file: patches/patch-modules_mono_mono_gd_gd_mono_cpp diff -N patches/patch-modules_mono_mono_gd_gd_mono_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-modules_mono_mono_gd_gd_mono_cpp 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,21 @@ +for _load_core_api_assembly, use the same load_assembly_from() approach for +TOOLS_ENABLED also if !TOOLS_ENABLED + +Index: modules/mono/mono_gd/gd_mono.cpp +--- modules/mono/mono_gd/gd_mono.cpp.orig ++++ modules/mono/mono_gd/gd_mono.cpp +@@ -830,7 +830,13 @@ bool GDMono::_load_core_api_assembly(LoadedApiAssembly + bool success = FileAccess::exists(assembly_path) && + load_assembly_from(CORE_API_ASSEMBLY_NAME, assembly_path, &r_loaded_api_assembly.assembly, p_refonly); + #else +- bool success = load_assembly(CORE_API_ASSEMBLY_NAME, &r_loaded_api_assembly.assembly, p_refonly); ++ // non-editor builds don't have Main namespace ++ String assembly_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config); ++ ++ String assembly_path = assembly_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); ++ ++ bool success = FileAccess::exists(assembly_path) && ++ load_assembly_from(CORE_API_ASSEMBLY_NAME, assembly_path, &r_loaded_api_assembly.assembly, p_refonly); + #endif + + if (success) { Index: pkg/DESCR-sharp =================================================================== RCS file: pkg/DESCR-sharp diff -N pkg/DESCR-sharp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/DESCR-sharp 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1 @@ +C# glue for using Godot with mono/C# Index: pkg/PLIST-sharp =================================================================== RCS file: pkg/PLIST-sharp diff -N pkg/PLIST-sharp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/PLIST-sharp 25 Aug 2023 02:44:30 -0000 @@ -0,0 +1,360 @@ +share/godot/ +share/godot/GodotSharp/ +share/godot/GodotSharp/Api/ +share/godot/GodotSharp/Api/Debug/ +share/godot/GodotSharp/Api/Debug/GodotSharp.dll +share/godot/GodotSharp/Api/Debug/GodotSharp.pdb +share/godot/GodotSharp/Api/Debug/GodotSharp.xml +share/godot/GodotSharp/Api/Debug/GodotSharpEditor.dll +share/godot/GodotSharp/Api/Debug/GodotSharpEditor.pdb +share/godot/GodotSharp/Api/Debug/GodotSharpEditor.xml +share/godot/GodotSharp/Api/Release/ +share/godot/GodotSharp/Api/Release/GodotSharp.dll +share/godot/GodotSharp/Api/Release/GodotSharp.pdb +share/godot/GodotSharp/Api/Release/GodotSharp.xml +share/godot/GodotSharp/Api/Release/GodotSharpEditor.dll +share/godot/GodotSharp/Api/Release/GodotSharpEditor.pdb +share/godot/GodotSharp/Api/Release/GodotSharpEditor.xml +share/godot/GodotSharp/Mono/ +share/godot/GodotSharp/Mono/etc/ +share/godot/GodotSharp/Mono/etc/mono/ +share/godot/GodotSharp/Mono/etc/mono/2.0/ +share/godot/GodotSharp/Mono/etc/mono/2.0/Browsers/ +share/godot/GodotSharp/Mono/etc/mono/2.0/Browsers/Compat.browser +share/godot/GodotSharp/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx +share/godot/GodotSharp/Mono/etc/mono/2.0/machine.config +share/godot/GodotSharp/Mono/etc/mono/2.0/settings.map +share/godot/GodotSharp/Mono/etc/mono/2.0/web.config +share/godot/GodotSharp/Mono/etc/mono/4.0/ +share/godot/GodotSharp/Mono/etc/mono/4.0/Browsers/ +share/godot/GodotSharp/Mono/etc/mono/4.0/Browsers/Compat.browser +share/godot/GodotSharp/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx +share/godot/GodotSharp/Mono/etc/mono/4.0/machine.config +share/godot/GodotSharp/Mono/etc/mono/4.0/settings.map +share/godot/GodotSharp/Mono/etc/mono/4.0/web.config +share/godot/GodotSharp/Mono/etc/mono/4.5/ +share/godot/GodotSharp/Mono/etc/mono/4.5/Browsers/ +share/godot/GodotSharp/Mono/etc/mono/4.5/Browsers/Compat.browser +share/godot/GodotSharp/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx +share/godot/GodotSharp/Mono/etc/mono/4.5/machine.config +share/godot/GodotSharp/Mono/etc/mono/4.5/settings.map +share/godot/GodotSharp/Mono/etc/mono/4.5/web.config +share/godot/GodotSharp/Mono/etc/mono/browscap.ini +share/godot/GodotSharp/Mono/etc/mono/config +share/godot/GodotSharp/Mono/etc/mono/mconfig/ +share/godot/GodotSharp/Mono/etc/mono/mconfig/config.xml +share/godot/GodotSharp/Mono/lib/ +@so share/godot/GodotSharp/Mono/lib/libMonoPosixHelper.so +@so share/godot/GodotSharp/Mono/lib/libMonoSupportW.so +@so share/godot/GodotSharp/Mono/lib/libmono-btls-shared.so +share/godot/GodotSharp/Mono/lib/mono/ +share/godot/GodotSharp/Mono/lib/mono/4.5/ +share/godot/GodotSharp/Mono/lib/mono/4.5/Accessibility.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Commons.Xml.Relaxng.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/CustomMarshalers.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/ +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.AccessControl.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.AppContext.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Collections.Concurrent.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Collections.NonGeneric.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Collections.Specialized.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Collections.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ComponentModel.Annotations.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ComponentModel.EventBasedAsync.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ComponentModel.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ComponentModel.TypeConverter.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ComponentModel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Console.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Data.Common.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Data.SqlClient.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.FileVersionInfo.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.Process.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.StackTrace.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.TextWriterTraceListener.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceEvent.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceSource.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tracing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Drawing.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Dynamic.Runtime.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Globalization.Calendars.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Globalization.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Globalization.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.Compression.ZipFile.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.AccessControl.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.DriveInfo.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Watcher.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.IsolatedStorage.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.MemoryMappedFiles.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.Pipes.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.UnmanagedMemoryStream.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.IO.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Linq.Expressions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Linq.Parallel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Linq.Queryable.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Linq.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.AuthenticationManager.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Cache.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Http.Rtc.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.HttpListener.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Mail.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.NameResolution.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.NetworkInformation.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Ping.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Requests.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Security.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.ServicePoint.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Sockets.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.Utilities.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.WebHeaderCollection.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.Client.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ObjectModel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.TypeExtensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Reflection.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Resources.Reader.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Resources.ReaderWriter.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Resources.Writer.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.CompilerServices.VisualC.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Handles.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.RuntimeInformation.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Numerics.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Formatters.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Json.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Xml.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Runtime.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.AccessControl.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Claims.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Algorithms.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Csp.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.DeriveBytes.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encoding.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.Aes.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDsa.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.Algorithms.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.ProtectedData.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RSA.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RandomNumberGenerator.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.X509Certificates.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Principal.Windows.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.Principal.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Security.SecureString.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceModel.Duplex.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceModel.Http.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceModel.NetTcp.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceModel.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceModel.Security.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ServiceProcess.ServiceController.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Text.Encoding.CodePages.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Text.Encoding.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Text.Encoding.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Text.RegularExpressions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.AccessControl.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.Overlapped.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.Parallel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.Thread.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.ThreadPool.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.Timer.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Threading.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.ValueTuple.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.ReaderWriter.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.XDocument.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.XPath.XDocument.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.XPath.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.XmlDocument.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.XmlSerializer.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/System.Xml.Xsl.Primitives.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Facades/netstandard.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.CJK.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.MidEast.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.Other.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.Rare.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.West.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/I18N.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/IBM.Data.DB2.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/ICSharpCode.SharpZipLib.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Build.Engine.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Build.Framework.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Build.Tasks.v4.0.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Build.Utilities.v4.0.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Build.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CSharp.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.VisualC.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Microsoft.Web.Infrastructure.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Btls.Interface.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.CSharp.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Cairo.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.CodeContracts.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.CompilerServices.SymbolWriter.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Data.Sqlite.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Data.Tds.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Debugger.Soft.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Http.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Management.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Messaging.RabbitMQ.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Messaging.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Parallel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Posix.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Profiler.Log.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Security.Win32.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Security.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Simd.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.Tasklets.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.WebBrowser.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Mono.XBuild.Tasks.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/Novell.Directory.Ldap.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/PEAPI.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/RabbitMQ.Client.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/SMDiagnostics.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Collections.Immutable.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ComponentModel.Composition.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ComponentModel.DataAnnotations.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Configuration.Install.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Configuration.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Core.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.DataSetExtensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.Entity.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.Linq.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.OracleClient.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.Services.Client.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.Services.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Data.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Deployment.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Design.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.DirectoryServices.Protocols.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.DirectoryServices.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Drawing.Design.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Drawing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Dynamic.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.EnterpriseServices.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.IO.Compression.FileSystem.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.IO.Compression.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.IdentityModel.Selectors.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.IdentityModel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Json.Microsoft.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Json.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Management.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Memory.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Messaging.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Net.Http.Formatting.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Net.Http.WebRequest.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Net.Http.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Net.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Numerics.Vectors.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Numerics.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Core.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Debugger.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Experimental.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Interfaces.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Linq.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Observable.Aliases.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.PlatformServices.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Providers.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Windows.Forms.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reactive.Windows.Threading.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reflection.Context.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Reflection.Metadata.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.Caching.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.CompilerServices.Unsafe.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.DurableInstancing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.Remoting.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.Serialization.Formatters.Soap.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Runtime.Serialization.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Security.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.Activation.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.Discovery.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.Internals.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.Routing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.Web.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceModel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.ServiceProcess.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Threading.Tasks.Dataflow.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Threading.Tasks.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Transactions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Abstractions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.ApplicationServices.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.DynamicData.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Extensions.Design.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Extensions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Http.SelfHost.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Http.WebHost.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Http.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Mobile.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Mvc.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Razor.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.RegularExpressions.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Routing.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.Services.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.WebPages.Deployment.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.WebPages.Razor.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.WebPages.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Web.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Windows.Forms.DataVisualization.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Windows.Forms.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Windows.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Workflow.Activities.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Workflow.ComponentModel.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Workflow.Runtime.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Xaml.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Xml.Linq.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Xml.Serialization.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.Xml.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/System.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/WebMatrix.Data.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/WindowsBase.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/cscompmgd.dll +share/godot/GodotSharp/Mono/lib/mono/4.5/mscorlib.dll +share/godot/GodotSharp/Tools/ +share/godot/GodotSharp/Tools/GodotTools.BuildLogger.dll +share/godot/GodotSharp/Tools/GodotTools.BuildLogger.pdb +share/godot/GodotSharp/Tools/GodotTools.Core.dll +share/godot/GodotSharp/Tools/GodotTools.Core.pdb +share/godot/GodotSharp/Tools/GodotTools.IdeMessaging.dll +share/godot/GodotSharp/Tools/GodotTools.ProjectEditor.dll +share/godot/GodotSharp/Tools/GodotTools.ProjectEditor.pdb +share/godot/GodotSharp/Tools/GodotTools.dll +share/godot/GodotSharp/Tools/GodotTools.pdb +share/godot/GodotSharp/Tools/MSBuild.exe +share/godot/GodotSharp/Tools/Microsoft.Build.Framework.dll +share/godot/GodotSharp/Tools/Microsoft.Build.dll +share/godot/GodotSharp/Tools/Microsoft.VisualStudio.Setup.Configuration.Interop.dll +share/godot/GodotSharp/Tools/Mono.Cecil.Mdb.dll +share/godot/GodotSharp/Tools/Mono.Cecil.Pdb.dll +share/godot/GodotSharp/Tools/Mono.Cecil.Rocks.dll +share/godot/GodotSharp/Tools/Mono.Cecil.dll +share/godot/GodotSharp/Tools/Newtonsoft.Json.dll +share/godot/GodotSharp/Tools/Semver.dll +share/godot/GodotSharp/Tools/System.Buffers.dll +share/godot/GodotSharp/Tools/System.Collections.Immutable.dll +share/godot/GodotSharp/Tools/System.Memory.dll +share/godot/GodotSharp/Tools/System.Numerics.Vectors.dll +share/godot/GodotSharp/Tools/System.Runtime.CompilerServices.Unsafe.dll +share/godot/GodotSharp/Tools/System.Threading.Tasks.Dataflow.dll Index: pkg/README-tools =================================================================== RCS file: /cvs/ports/games/godot/pkg/README-tools,v retrieving revision 1.1 diff -u -p -r1.1 README-tools --- pkg/README-tools 28 Apr 2022 22:18:01 -0000 1.1 +++ pkg/README-tools 25 Aug 2023 02:44:30 -0000 @@ -2,6 +2,18 @@ | Running ${PKGSTEM} on OpenBSD +------------------------------------------------------------------------------- +Using MSBuild/C#/Mono +===================== + +MSBuild is used by Godot to compile the assemblies for C# projects. In order +for it to run without error, you need to remove the following line from +~/.nuget/packages/godot.net.sdk/3.3.0/Sdk/Sdk.targets: + + TargetFrameworkFallbackSearchPaths="$(TargetFrameworkFallbackSearchPaths)" + +If the file doesn't exist, it hasn't been installed yet. You may need to run a +build with MSBuild in Godot first before the file is created. + Modules =======