summaryrefslogtreecommitdiff
path: root/modules/mono/SCsub
AgeCommit message (Collapse)Author
2018-11-30C#: Improve tool script support and fix reloading issuesIgnacio Etcheverry
2018-10-25Fix msvc warnings in mono moduleIgnacio Etcheverry
- `modules\mono\csharp_script.cpp(576): warning C4099: 'CSharpScriptDepSort': type name first seen using 'class' now seen using 'struct'` - `modules\mono\signal_awaiter_utils.cpp(144): warning C4003: not enough actual parameters for macro 'ERR_FAIL_V'` - `modules\mono\editor\net_solution.cpp(101): warning C4129: '%': unrecognized character escape sequence` - (several) `modules\mono\glue\cs_compressed.gen.h(222): warning C4129: 'E': unrecognized character escape sequence`
2018-10-25Support globs in csproj includesIgnacio Etcheverry
2018-10-17C#: Optimize struct marshallingIgnacio Etcheverry
- We no longer box struct to return them from internal calls. - Use reinterpret_cast if the managed struct layout is the same as the native struct.
2018-10-03Mono: Editor and export template dependencies and fixesIgnacio Etcheverry
- Bundle editor dependencies: - 'GodotSharp': Root data directory for the editor - 'Tools': Editor dependencies. Only GodotSharp.dll for now. - 'Api': Prebuilt GodotSharp and GodotSharpEditor API assemblies. - 'Mono': Mono files to bundle with the editor. - 'bin': (Optional, not used for now) Mono bin directory. - 'etc': Mono configuration files. - 'lib': Mono dependency shared libraries. - 'lib/mono/4.5': Framework assemblies. - Added build option to copy the required files from the mono installation to 'GodotSharp/Mono'. Enable with 'copy_mono_root=yes'. Disabled by default. - Export template dependencies: - 'data_AppName'/'data_Godot': - 'Mono': Mono files to bundle with the game. - 'etc': Mono configuration files. - 'lib': Mono dependency shared libraries. - The data directory is generated when compiling and must be bundled with the export templates. In the case of OSX, the data directory must be placed inside the 'osx.zip' export template. - In OSX, alternative location for directories (needed for app bundles) are: - 'data_AppName/Mono/etc' --> '../Resources/GodotSharp/Mono/etc' - 'data_AppName/Mono/lib' --> '../Frameworks/GodotSharp/Mono/lib' - The editor can bundle prebuilt API assemblies. - Generate them with a tools build by running: `--generate-cs-core-api <GodotSharp_OutputDir> --generate-cs-editor-api <GodotSharpEditor_OutputDir> <GodotSharp_OutputDir>/bin/Release/GodotSharp.dll` (This command will be simplified in the future and both projects will be in the same solution) - Build the solutions and copy the output files to '#bin/GodotSharp/Api'. - Fixed API assembly being added twice during the export process.
2018-09-17Fix missing mono internal callIgnacio Etcheverry
- Also fixed uninitalized variable in buildscript
2018-09-12Move modules/mono/glue/cs_files to modules/mono/glue/Managed/FilesIgnacio Etcheverry
Added dummy MSBuild project and solution to get tooling help when editing these files.
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-09-12C#: Fix cs_files glue mismatch bugIgnacio Etcheverry
2018-09-12Allow special characters in C# glue filesIgnacio Etcheverry
Fixes #21139 - Surround the generated file modules/mono/glue/cs_compressed.gen.h with ifdef TOOLS_ENABLED
2018-09-12Cleanup of c# api files and bindings generatorIgnacio Etcheverry
- We no longer generate RID and NodePath C# classes. Both will be maintained manually. - We no longer generate C# declarations and runtime registration of internal calls for the following classes: RID, NodePath, String, GD, SignalAwaiter and Godot.Object (partial base). - We no longer auto-generate the base members of Godot.Object. They will be maintained manually as a partial class. This makes it easier to maintain these C# classes and their internal calls, as well as the bindings generator which no longer generates C# classes that don't derive from Godot Object, and it no longer generates the Godot.Object base members (which where unreadable in the bindings generator code). - Added missing 'RID(Object from)' constructor to the RID C# class. - Replaced MONO_GLUE_DISABLED constant macro with MONO_GLUE_ENABLED. - Add sources in module/mono/glue even if glue is disabled, but surround glue files with ifdef MONO_GLUE_ENABLED.
2018-08-17Mono: Improve C# core files (glue/cs_files) buildsystemIgnacio Etcheverry
- Search C# files recursively in 'glue/cs_files'. - Determine a version for the C# core files automatically. The latest modified time will do for now.
2018-07-27Running builder (content generator) functions in subprocesses on WindowsViktor Ferenczi
- Refactored all builder (make_*) functions into separate Python modules along to the build tree - Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere - Introduced stub to use the builders module as a stand alone script and invoke a selected function There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp) on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky builds. Running all such content generators in a new subprocess instead of directly inside the build script works around the issue. Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle. Suggested workaround did not fully work either. Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of running a cross-compilation on Windows they would still be used, but likely it will not happen in practice. What counts is that the build itself is running on which platform, not the target platform. Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
2018-07-10Added path for Mono installed through HomebrewMads Ynddal
On macOS, it is common to install packages like Mono through the third-party package-manager Homebrew. This commit simply adds an additional path to where Homebrew installs the Mono framework.
2018-07-04Mono: Pending exceptions and cleanupIgnacio Etcheverry
2018-06-22Mono: Module build improvementsIgnacio Etcheverry
- Add (Csc/Vbc/Fsc)ToolExe environment variables when running Mono's MSBuild. - Fix directory for the 'mono_assemblies_output_dir' argument being created with the '#' top level directory token as part of its name. - Allow to build with 'mono_static=yes' on Unix without specifying a mono prefix. The build script will try to find the mono prefix using the output from pkg-config.
2018-02-27Merge pull request #15641 from ↵Rémi Verschelde
neikeq/mono-is-picky-regarding-corlib-so-we-must-make-sure-to-ship-the-right-version-otherwise-something-bad-may-happen Mono: Buildsystem improvements
2018-02-25Mono: Better versioning and gracefully unloading of Godot API assembliesIgnacio Etcheverry
2018-02-10Add and use mono build variables with cloned environment.Jonathan Tinkham
2018-01-12Mono: Buildsystem improvementsIgnacio Etcheverry
- Bundle with mscorlib.dll to avoid compatibilities issues - Add build option 'mono_assemblies_output_dir' to specify the output directory where the assemblies will be copied to. '#bin' by default.
2017-12-12Mono: Build in cloned env.Andreas Haas
Use a cloned env, so that toggling glue_enabled doesn't force a full rebuild as mentioned in #14584.
2017-11-04Added for fallback msbuild.exe.BrainBlasted
Fixes #12613
2017-10-29Merge pull request #12491 from neikeq/waitasecond···Ignacio Etcheverry
Fix FrameworkPathOverride and assemblies path loop
2017-10-29Fix FrameworkPathOverride and assemblies path loopIgnacio Etcheverry
2017-10-29Mono: Fix Windows buildRémi Verschelde
2017-10-29Buildsystem improvements for the Mono moduleIgnacio Etcheverry
- Make sure to search the mono installation directory for the right architecture in the windows registry. - Do not build GodotSharpTools directly to #bin dir. Instead build to the default output path and copy it. This way we avoid MSBuild adding files we don't want to #bin. - Add hint path for MSBuild in OSX. - Copy shared library on Unix if not statically linking. - Use vswhere to search MSBuild and search for 14.0 tools version in the registry instead of 4.0. - SCons will only fallback xbuild when msbuild is not found if 'xbuild_fallback=yes' is passed to the command. - Use mono's assembly path as FrameworkPathOverride if using with system's MSBuild (not mono's fork). - Cleanup.
2017-10-07Fix Python 3 incompatibility in Mono buildMatthias Hoelzl
2017-10-03Added mono moduleIgnacio Etcheverry