summaryrefslogtreecommitdiff
path: root/modules/mono/build_scripts
AgeCommit message (Collapse)Author
2020-03-31Mono/C#: Add iOS supportIgnacio Etcheverry
Right now, games only work on devices when exported with FullAOT+Interpreter. There are some issues left that need to addressed for FullAOT alone. Right now, it's giving issues with the Godot.NativeCalls static constructor.
2020-03-31Mono/C#: Fix MinGW build not supporting `.lib` librariesIgnacio Etcheverry
MinGW should support both its own format `.a` and MSVC's format `.lib`, but Mono's module was only using the former. With this change it's now possible to build with MinGW and link the official Mono for Windows which is built with MSVC.
2020-03-30SCons: Format buildsystem files with psf/blackRémi Verschelde
Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
2020-03-26Multiple changes to DisplayServerX11Mateo Kuruk Miccino
- Travis: Change x11 to linuxbsd - SCons: Change x11 plataform to linuxbsd - Plugins: Remove ; to avoid fallthrough warning - DisplayServerX11: Implement set_icon - DisplayServerX11: Fix X11 bug when a window was erased from windows map, all the changes from that erased windows are sending to the main window - DisplayServerX11: Reorder create_window commands - DisplayServerX11: Change every Size2 to Size2i and Rect2 to Rect2i where it belongs + More X11 fixes which have been integrated directly back into reduz's original commits while rebasing the branch.
2020-03-25SCons: Drop support for Python 2Rémi Verschelde
We now require SCons 3.0+ (first version with Python 3 support), and we set min required Python 3 version to 3.5 (3.4 and earlier are EOL).
2020-03-17Fix C# bindings after recent breaking changesIgnacio Etcheverry
Implementation for new Variant types Callable, Signal, StringName. Added support for PackedInt64Array and PackedFloat64Array. Add generation of signal members as events, as well as support for user created signals as events. NOTE: As of now, raising such events will not emit the signal. As such, one must use `EmitSignal` instead of raising the event directly. Removed old ThreadLocal fallback class. It's safe to use thread_local now since it's supported on all minimum versions of compilers we support.
2020-03-05Mono: Fix detection of Apple platforms in build scriptRémi Verschelde
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2019-12-29Fix msbuild target argumentDan Kramer
2019-12-28Mono/C#: Re-structure API solution and GodotTools post-build targetIgnacio Etcheverry
Previously we had a placeholder solution called 'Managed' to benefit from tooling while editing the a part of the C# API. Later the bindings generator would create the final 'GodotSharp' solution including these C# files as well as the auto-generated C# API. Now we replaced the 'Managed' solution with the final 'GodotSharp' solution which is no longer auto-generated, and the bindings generator only takes care of the auto-generated C# API. This has the following benefits: - It's less confusing as there will no longer be two versions of the same file (the original and a generated copy of it). Now there's only one. - We no longer need placeholder for auto-generated API classes, like Node or Resource. We used them for benefiting from tooling. Now we can just use the auto-generated API itself. - Simplifies the build system and bindings generator. Removed lot of code that is not needed anymore. Also added a post-build target to the GodotTools project to copy the output to the data dir. This makes it easy to iterate when doing changes to GodotTools, as SCons doesn't have to be executed anymore just to copy these new files.
2019-12-18Mono: Copy native and btls libs on macOSRémi Verschelde
2019-12-11Support Rider as External EditorIvan Shakhov
2019-12-04Mono/C#: Several android fixesIgnacio Etcheverry
- Added correct config file for android dllmaps. - Fix __Internal DllImports with a dlopen fallback. - Add missing P/Invoke functions and internal calls expected by the monodroid BCL and our custom version of the 'Android.Runtime.AndroidEnvironment' class (this last one can be found in the godot-mono-builds repo). - Make sure to set 'btls' instead of 'legacy' as the default TLS provider on Android.
2019-11-29Mono/C#: Add option to export assemblies outside of PCKIgnacio Etcheverry
When using this options, assemblies will be saved in the Assemblies folder of the data directory: 'data_AppName/Assemblies/'.
2019-11-23Merge pull request #33828 from neikeq/貴様Rémi Verschelde
Mono/C#: Prevent SCons from building API solutions in parallel
2019-11-22Mono/C#: Prevent SCons from building API solutions in parallelIgnacio Etcheverry
2019-11-19Mono/C#: Bundle libmono-btls-shared.dll on Windows if it existsIgnacio Etcheverry
2019-11-13Mono/C#: WebAssembly supportIgnacio Etcheverry
2019-10-21Added the server platform checks to template dir and shared lib copyJoshLee0915
2019-09-04Split the Android platform java logic into an Android library module (`lib`) ↵fhuya
and an application module (`app`). The application module `app` serves double duties of providing the prebuilt Godot binaries ('android_debug.apk', 'android_release.apk') and the Godot custom build template ('android_source.zip').
2019-08-26Fix 'android_mono_config.gen.cpp' not compiled first time it's generatedIgnacio Etcheverry
2019-08-14Merge pull request #31347 from neikeq/monodevelop-addinRémi Verschelde
C#: Add Ide Connection library and server for the editor
2019-08-12Always use lists for `LIBS` in SConsHugo Locurcio
This closes #31288.
2019-08-04C#: Add Ide Connection library and server for the editorIgnacio Etcheverry
This will be used for communicating between the Godot editor and external IDEs/editors, for things like opening files, triggering hot-reload and running the game with a debugger attached.
2019-07-11Some small fixes to warnings in python scriptsunknown
2019-07-10Merge pull request #30489 from neikeq/fix-nullexc-on-gengameprojIgnacio Roldán Etcheverry
Mono: Fix null exception in GenerateGameProject
2019-07-10Mono: Fix null exception in GenerateGameProjectIgnacio Etcheverry
Also fix pdb files for GodotTools.*.dll assemblies not being copied to the output directory.
2019-07-10SCons no longer passes FrameworkPathOverride to MSBuildIgnacio Etcheverry
2019-07-09Make SCons check for System MSBuild before Mono'sIgnacio Etcheverry
2019-07-05Re-write mono module editor code in C#Ignacio Etcheverry
Make the build system automatically build the C# Api assemblies to be shipped with the editor. Make the editor, editor player and debug export templates use Api assemblies built with debug symbols. Always run MSBuild to build the editor tools and Api assemblies when building Godot. Several bugs fixed related to assembly hot reloading and restoring state. Fix StringExtensions internal calls not being registered correctly, resulting in MissingMethodException.
2019-07-03Merge pull request #30292 from neikeq/android_fixesRémi Verschelde
Mono: Android build and shared libraries fixes
2019-07-03Mono: Android build and shared libraries fixesIgnacio Etcheverry
Fix location of Mono's shared libraries. Fix build failing if the directory 'platform/android/java/libs/{target}/{abi}' doesn't exist.
2019-07-03SCons: Use CPPDEFINES instead of CPPFLAGS for pre-processor definesRémi Verschelde
It's the recommended way to set those, and is more portable (automatically prepends -D for GCC/Clang and /D for MSVC). We still use CPPFLAGS for some pre-processor flags which are not defines.
2019-06-08Merge pull request #29606 from neikeq/remove-unneeded-mono-patchesIgnacio Roldán Etcheverry
Remove obsolete mono patch for pthread_mutexattr_setprotocol
2019-06-08Remove obsolete mono patch for pthread_mutexattr_setprotocolIgnacio Etcheverry
This has already been fixed in Mono both master and 2019-06 (no other branch other than the skipped 2019-04 branch uses pthread_mutexattr_setprotocol).
2019-06-04Mono: Fix SCons options added to the wrong environmentIgnacio Etcheverry
2019-06-03Android build and export for the mono moduleIgnacio Etcheverry
2019-04-30SCons: Always use env.Prepend for CPPPATHRémi Verschelde
Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
2019-04-07Mono: Add compiler flags to env_mono instead of envIgnacio Etcheverry
This way we avoid possible conflicts with other modules. Specially with include paths.
2019-04-07Mono: Reorganize build scriptsIgnacio Etcheverry
All build scripts, other than config.py and SCSub, are now located in the build_scripts subdirectory.