Commit graph

2266 commits

Author SHA1 Message Date
Ignacio Etcheverry
119a910bc6 Mono: Add properties support in scripts 2018-01-04 21:16:22 +01:00
Rémi Verschelde
b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Ignacio Etcheverry
fe391393d4 Mono: Change BindingsGenerator singleton to avoid StringName leaks 2018-01-01 03:05:19 +01:00
Ignacio Etcheverry
b271aa48e4 Mono: Script lifetime fixes
- alloc_language_binding: Use strong GC handle as well for references. Fixes #15138
- Set the native instance field of Godot.Object to IntPtr.Zero when it's freed.
- Create weak handles without tracking resurrection (that was causing trouble). This means we have to call notification predelete before queueing a native Object for deletion, and use the MonoObject* passed by the finalizer because the weak GC handle target will return NULL at this point.
2018-01-01 03:05:13 +01:00
Ignacio Etcheverry
e350a56efd Mono: Bindings no longer relie on DocData for accessors 2017-12-29 02:18:46 +01:00
Noshyaar
ab444a8ca9
Merge pull request #14996 from neikeq/enums-mono
Mono: Make the bindings generator output enums
2017-12-27 10:29:00 +07:00
Ignacio Etcheverry
8b0ad17b76
Merge pull request #14997 from neikeq/issue-14988
Marshal NULL MonoString* as empty Godot string
2017-12-24 17:50:28 +01:00
Ignacio Etcheverry
0a0a44da8d Mono: Make the bindings generator output enums
- Switch to PascalCase for constants names
2017-12-24 04:20:41 +01:00
Ignacio Etcheverry
6e3d4ee9a6 Marshal NULL MonoString* as empty Godot string 2017-12-24 03:32:40 +01:00
geequlim
52ad2e5418 Add more translatable text for editor plugins. 2017-12-23 22:40:15 +08:00
PJB3005
7368a0e0f0 Fix fatal mono logs not getting logged to disk.
They aborted the application without flushing the log file.

Also there was a typo.
2017-12-19 17:36:33 +01:00
Andreas Haas
e7c1255b06
Mono: Build in cloned env.
Use a cloned env, so that toggling glue_enabled doesn't force a full rebuild as mentioned in #14584.
2017-12-12 16:20:34 +01:00
Rémi Verschelde
13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Unknown
fd1b94e307 Improve slang, especially in user-visible parts 2017-12-05 15:41:38 +01:00
Nathan Warden
0c22447ebe Exported variables now show in the correct order. 2017-12-02 21:01:58 -05:00
Rémi Verschelde
aa5f7e0ff2 Fix mono build after bc2e8d99 2017-11-25 12:16:58 +01:00
Rémi Verschelde
bc75fae579 doc: Update header version for 3.0-beta 2017-11-24 09:16:52 +01:00
Andreas Haas
e69dd3c712
Mono: Use PascalCase in core types. 2017-11-21 23:32:40 +01:00
pablotato
054a2ac579 Add cartesian to polar conversion functions 2017-11-20 23:34:40 +01:00
Rémi Verschelde
ecf80fbbba
Merge pull request #12988 from akien-mga/xdg-home-paths
Add support for XDG Base Directory spec
2017-11-20 00:42:51 +01:00
Rémi Verschelde
32c12a92a5 Add initial support for the XDG Base Directory spec
Spec version 0.7 from https://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
(latest as of this commit).

Three virtual methods are added to OS for the various XDG paths we will use:
- OS::get_data_path gives XDG_DATA_HOME, or if missing:
  ~/.local/share on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_config_path gives XDG_CONFIG_HOME, or if missing:
  ~/.config on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_cache_path gives XDG_CACHE_HOME, or if missing:
  ~/.cache on X11, ~/Library/Caches on macOS and %APPDATA% on Windows

So for Windows there are no changes, for Linux we follow the full split spec
and for macOS stuff will move from ~/.godot to ~/Library/Application Support/Godot.

Support for system-wide installation of templates on Unix was removed for now,
as it's a bit hackish and I don't think anyone uses it.

user:// will still be OS::get_data_path() + "/godot/app_userdata/$name" by
default, but when using the application/config/use_shared_user_dir option
it will now use XDG_DATA_HOME/$name, e.g. ~/.local/share/MyGame.

For now everything still goes in EditorSettings::get_settings_dir(), but
this will be changed in a later commit to make use of the new splitting
where relevant.

Part of #3513.
2017-11-19 20:54:24 +01:00
Ignacio Etcheverry
b51b3dc030 Mono: Fix compiler error with Variant::operator AABB() 2017-11-18 18:13:57 +01:00
Rémi Verschelde
ad199c3964 EditorSettings: Rename settings_path to settings_dir
Also to prepare for upcoming refactoring for XDG support.
2017-11-17 20:55:09 +01:00
Rémi Verschelde
73049d115e Rename OS::get_data_dir to OS::get_user_data_dir
Will be needed to avoid confusion with system data path (XDG_DATA_HOME)
and editor data dir in upcoming refactoring.
2017-11-17 20:55:09 +01:00
Ferenc Arn
d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Rémi Verschelde
677e95d8d1 doc: Make all module docs self-contained 2017-11-15 21:29:33 +01:00
Rémi Verschelde
e7701bb2de doc: Rename "@Global Scope" to "@GlobalScope"
Spaces in filenames are evil.
2017-11-15 20:41:16 +01:00
Rémi Verschelde
967bfb0c4a doc: Remove revision.module_config from version string
It is now "3.0-alpha" instead of "3.0.alpha.custom_build{,.mono}",
limits unnecessary diffs.
2017-11-15 20:41:16 +01:00
Leon Krause
9b7b46143d Move singleton management from ProjectSettings to Engine 2017-11-14 15:15:13 +01:00
Matthias Hoelzl
1f6d766332 Remove preprocessor directives from macro arguments
Preprocessor directives within macro arguments lead to undefined
behavior, and VC++ actually rejects them as compiler errors.
2017-11-10 10:14:04 +01:00
Daniel J. Ramirez
c57fc8ee7d Fixed editor settings disappearing.
Some items that are no longer defined may disappear, but thats expected i guess.
2017-11-09 22:10:48 -06:00
Rémi Verschelde
9a78efc7c2
Merge pull request #12642 from BrainBlasted/fix_msbuild_unix
Added fallback for msbuild.exe.
2017-11-05 11:54:26 +01:00
Rémi Verschelde
5bc2cf257b Convert DOS line endings to Unix line endings
Should fix issues some of us have with `misc/dist/uwp_template/AppxManifest.xml`
always showing up as modified.
Might cause issues on Windows due to the removal of BOMs or change of line endings
in some of the Mono, UWP or gradlew.bat files, we will test and adapt if need be.
2017-11-05 11:37:59 +01:00
BrainBlasted
8e2a756eb8 Added for fallback msbuild.exe.
Fixes #12613
2017-11-04 21:05:22 -04:00
Juan Linietsky
79f81b77e2 -Modules can now add custom version info (added it for Mono)
-Version string takes this version info
-Ability to download templates from the interweb (listing does not work yet)
2017-11-01 23:13:27 -03:00
Ignacio Etcheverry
3c97a9543d
Merge pull request #12549 from neikeq/seriously-do-they
Mono cleanup fixes
2017-11-01 01:56:16 +01:00
Ignacio Etcheverry
cb3ef3c7e6
Merge pull request #12546 from neikeq/do-people-read-these
Use mono_gc_wbarrier_set_arrayref for Array marshalling
2017-11-01 01:52:42 +01:00
Ignacio Etcheverry
a018cbaee1 Fix thread checking to queue instances for deletion 2017-11-01 01:51:12 +01:00
Ignacio Etcheverry
06ea441564 Make sure gchandle bindings are released before cleanup 2017-11-01 01:48:47 +01:00
Ignacio Etcheverry
0525b63421 Use mono_gc_wbarrier_set_arrayref for Array marshalling 2017-11-01 00:17:34 +01:00
Andreas Haas
f3218c24c7
Mono: support custom script templates.
Also fixes a bug that prevented methods like `duplicate()` from copying the source code. (Copied from GDScript implementation)
2017-10-31 15:46:30 +01:00
Ignacio Etcheverry
157fa55e34
Merge pull request #12535 from neikeq/wtf···
Fix msbuild hint paths returning only the directory
2017-10-31 15:19:25 +01:00
Ignacio Etcheverry
32ee3ecce4 Fix msbuild hint paths returning only the directory 2017-10-31 15:15:42 +01:00
Rémi Verschelde
f021b00389
Merge pull request #12525 from neikeq/wololo
Remove Visual Studio for now from the external editors list
2017-10-30 23:47:34 +01:00
Ignacio Etcheverry
ad194f81b6 Remove Visual Studio for now from the external editors list 2017-10-30 23:43:26 +01:00
Ignacio Etcheverry
9290fd2a42 Fix 'which' returning file without extension on Windows 2017-10-30 21:09:59 +01:00
Ignacio Etcheverry
619e4eb23d
Merge pull request #12491 from neikeq/waitasecond···
Fix FrameworkPathOverride and assemblies path loop
2017-10-29 22:33:27 +01:00
Ignacio Etcheverry
aa5a0b550f Fix FrameworkPathOverride and assemblies path loop 2017-10-29 22:22:38 +01:00
Matthias Hoelzl
a6d53effa5 Fix build with Python 3 on Windows 2017-10-29 19:27:12 +01:00
Rémi Verschelde
23740c8a91 Mono: Fix Windows build 2017-10-29 17:28:53 +01:00
Rémi Verschelde
c193286186
Merge pull request #12475 from neikeq/ohuiii
Fix regression from #12473 and #12388
2017-10-29 11:32:00 +01:00
Rémi Verschelde
6ea8ffc12f
Merge pull request #12474 from neikeq/s
Mono: Add build project button and reload interval
2017-10-29 11:09:49 +01:00
Ignacio Etcheverry
15e30187ee Fix regression from #12473 and #12388 2017-10-29 10:11:20 +01:00
Ignacio Etcheverry
8fca54fb0d
Merge pull request #12473 from neikeq/Alpha2?-Let'sDoThis
BindingsGenerator cleanup and improved error messages
2017-10-29 05:58:26 +01:00
Ignacio Etcheverry
27b7fb8e66 Mono: Add build project button and reload interval 2017-10-29 05:57:38 +01:00
Ignacio Etcheverry
09a1e11765
Merge pull request #12388 from neikeq/r
Buildsystem improvements for the Mono module
2017-10-29 04:28:36 +01:00
Ignacio Etcheverry
9f469887fc Buildsystem improvements for the Mono module
- 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-29 04:26:13 +01:00
Ignacio Etcheverry
452313ffb1 BindingsGenerator cleanup and improved error messages
If there is an error generating a property or a method, the error message will include the member and class names.
2017-10-29 02:37:13 +01:00
Unknown
a2247d45fc Mono: Use "UnnamedProject" if application/config/name is empty 2017-10-27 21:22:54 +02:00
Rémi Verschelde
d135008acf Merge pull request #12405 from Jerome67000/clean_getnodetype
Removes Script::get_node_type()

[ci skip]
2017-10-26 08:49:38 +02:00
Przmk
2ae23c9f97 Fix default C# script 2017-10-25 22:43:06 +02:00
Jerome67000
2609cc9ef4 Removes Script::get_node_type()
used before GDScript, with squirrel apparently
2017-10-25 20:11:30 +02:00
Rémi Verschelde
847c55bcb1 Merge pull request #12365 from neikeq/p
Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
2017-10-24 18:59:26 +02:00
Ignacio Etcheverry
63f58da054 Exit after generating mono glue 2017-10-24 16:18:47 +02:00
Ignacio Etcheverry
e218a13a64 Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
- Make ScriptCreateDialog disable the built-in script checked button if the language does not support it.
- ScriptLanguage's get_template and make_template now receive the script path as class name if the the script language does not have named classes.
2017-10-24 15:48:58 +02:00
Ignacio Etcheverry
a897f7f606 Merge pull request #12364 from neikeq/o
Mono: Fix and cleanup build start errors
2017-10-24 01:17:36 +02:00
Ignacio Etcheverry
9905002fa6 Mono: Fix and cleanup build start errors 2017-10-24 00:49:44 +02:00
Rémi Verschelde
8ef79ffe68 Merge pull request #12320 from mhilbrunner/issue-11994
Add _process(delta) to new script templates. Closes #11994.
2017-10-23 23:18:14 +02:00
Ignacio Etcheverry
45e5e23ee8 Mono: Prevent raising exceptions in native code
For now we will just print the exceptions we catch. Later, we should use something similar to 'mono_set_pending_exception(ex)'.
2017-10-23 00:35:14 +02:00
Ignacio Etcheverry
acaaf2e440 Merge pull request #12326 from neikeq/n
Fix set field from MonoObject*
2017-10-22 22:14:10 +02:00
Ignacio Etcheverry
ae725969d3 Fix set field from MonoObject* 2017-10-22 22:07:52 +02:00
mhilbrunner
ba779c1c0c Add _process(delta) to new script templates. Closes #11994. 2017-10-22 21:07:34 +02:00
Rémi Verschelde
6361e24f29 Cleanup unnecessary debug prints 2017-10-21 20:41:07 +02:00
Rémi Verschelde
a3a85670a3 Mono: Fix static linking on macOS
[ci skip]
2017-10-20 22:11:55 +02:00
Rémi Verschelde
e4ec0d007c Merge pull request #12209 from neikeq/m
Mono: Fix warning about exported static fields
2017-10-18 08:40:13 +02:00
Ignacio Etcheverry
b1d106adb6 Mono: Fix warning about exported static fields 2017-10-18 08:34:17 +02:00
Rémi Verschelde
9bead2e06f Merge pull request #12208 from neikeq/l
Mono: Fix build with tools=no or target=release
2017-10-18 08:29:37 +02:00
Ignacio Etcheverry
fb63ee52fb Mono: Fix build with tools=no or target=release 2017-10-18 08:27:18 +02:00
Rémi Verschelde
fb7428e797 Merge pull request #12178 from neikeq/k
Export attribute fixes and improvements
2017-10-17 21:29:19 +02:00
Ignacio Etcheverry
6e6b455d1f Export attribute fixes and improvements
- Allow non-public fields to be exported as well (to avoid confusion).
- Set PROPERTY_HINT_RESOURCE_TYPE for resource derived fields.
- Support enums and automatically fill PROPERTY_HINT_ENUM's hint_string for enum fields.
2017-10-17 14:42:13 +02:00
Ignacio Etcheverry
1bafd0e33a Take self-contained mode into consideration 2017-10-17 11:36:19 +02:00
Rémi Verschelde
8de1dc7e9a Merge pull request #12138 from neikeq/i
Avoid adding built-in script path to csproj
2017-10-16 10:19:16 +02:00
Rémi Verschelde
c0293aca59 Merge pull request #12136 from neikeq/h
Improve signature of signal target generated function
2017-10-16 10:18:17 +02:00
Ignacio Etcheverry
132c6deb28 Merge pull request #12104 from akien-mga/monosgen-2
mono: Request monosgen-2 explicitly via pkg-config
2017-10-16 04:32:47 +02:00
Ignacio Etcheverry
967335b969 Avoid adding built-in script path to csproj 2017-10-16 04:26:13 +02:00
Ignacio Etcheverry
8ed3247a63 Improve signature of signal target generated function 2017-10-16 04:19:36 +02:00
Ignacio Etcheverry
1a9efb417a Merge pull request #12135 from neikeq/g
Re-write SignalAwaiter implementation
2017-10-16 03:58:51 +02:00
Ignacio Etcheverry
63369ec306 Re-write SignalAwaiter implementation
Old implementation had issues where you could only await on the same signal of the same source once.
2017-10-16 03:54:23 +02:00
Rémi Verschelde
cd69dcafb7 mono: Request monosgen-2 explicitly via pkg-config
Prevents GC mismatch between mono binary and library, fixes #11916.
2017-10-14 23:54:26 +02:00
Ignacio Etcheverry
740ef3dc97 Merge pull request #11954 from neikeq/d
Added 'exposed' field to ClassInfo for registered classes
2017-10-11 13:54:34 +02:00
Ignacio Etcheverry
14b9ad1296 Fix wrong array index 2017-10-10 18:29:56 +02:00
Ignacio Etcheverry
18d3ba0c50 Fix getting struct elements from MonoArray (#11978)
* Fix getting struct elements from MonoArray
* Revert undesired change
2017-10-10 00:25:36 +02:00
Ignacio Etcheverry
9b6f65af82 Mono: Make use of ClassInfo's exposed API
- BindingsGenerator only generates exposed classes.
- Fix creation of managed instances of non-exposed classes.
2017-10-09 23:50:06 +02:00
Ignacio Etcheverry
0c2e882210 Adds 'exposed' field to ClassInfo
This field represents if the class is exposed to the scripting API.
The value is 'true' if the class was registered manually ('ClassDB::register_*class()'), otherwise it's false (registered on '_post_initialize').
- Added missing registration of classes that are meant to be exposed.
2017-10-09 23:49:17 +02:00
Ferenc Arn
8ddbd19777 Apply a few recent chages in Quat and Basis to their respective Mono counterparts. (#11899) 2017-10-09 14:49:53 +02:00
Rémi Verschelde
30a4882cf8 Merge pull request #11910 from hoelzl/pr-python3-mono-build
Fix Python 3 incompatibility in Mono build
2017-10-09 11:00:14 +02:00
Ignacio Etcheverry
ff28569d16 Fixed IntPtr unboxing (#11949)
- Fix boolean never reset to false
- Fix IntPtr unboxing and cleanup
2017-10-09 00:10:54 +02:00
Ignacio Etcheverry
e5ff814243 Merge pull request #11924 from neikeq/b
Fix dot separated assembly names confused with file extensions
2017-10-07 22:10:02 +02:00
Ignacio Etcheverry
eb920406ae Fix dot separated assembly names confused with file extensions 2017-10-07 22:00:35 +02:00
Ignacio Etcheverry
5a49106ff4 Merge pull request #11900 from neikeq/a
Fix assembly load hooks and sizeof wrong type
2017-10-07 20:12:25 +02:00
Matthias Hoelzl
a6b48c1706 Fix Python 3 incompatibility in Mono build 2017-10-07 15:36:20 +02:00
Rémi Verschelde
84e7bbafb7 Merge pull request #11843 from hoelzl/pr-python3-build
Fix Python 3 build
2017-10-07 10:54:58 +02:00
Ignacio Etcheverry
5ab3537179 Fix sizeof wrong type 2017-10-07 04:22:26 +02:00
Ignacio Etcheverry
9eda9be3cf Fix assembly load hooks 2017-10-07 04:21:55 +02:00
Ignacio Etcheverry
195b12212d Merge pull request #11896 from neikeq/pr-issue-11892
Quote MSBuild arguments
2017-10-07 01:27:06 +02:00
Ignacio Etcheverry
14280ac44b Quote MSBuild arguments. Fixes #11892 2017-10-07 01:21:11 +02:00
Ignacio Etcheverry
85cc879382 Merge pull request #11894 from neikeq/pr-issue-11834
Mono: Make sure editor thread is attached on script reload
2017-10-07 00:47:13 +02:00
Ignacio Etcheverry
fdc3de009c Mono: Make sure editor thread is attached on script reload 2017-10-07 00:43:02 +02:00
Ignacio Etcheverry
30328e7dfc Merge pull request #11849 from cart/mono_parent_fields
Mono: support exported parent class fields
2017-10-06 22:36:58 +02:00
Carter Anderson
19df296351 get parent class fields when updating a CSharpScript's exports
This makes the fields viewable / editable in the inspector
2017-10-05 23:50:48 -07:00
Ferenc Arn
17e89c2c66 Fix mono enabled builds (broken by 3d87b70). 2017-10-05 22:11:10 -04:00
Ignacio Etcheverry
1d309439cb Uninitialized local and domain finalize fixes
- Make sure to run the GC before and after finalizing the scripts domain.
2017-10-05 00:12:36 +02:00
Ignacio Etcheverry
df22bbd7ed Add C# script to csproj when attaching it to an object 2017-10-05 00:10:51 +02:00
Ignacio Etcheverry
b4d758e067 Add alternative search locations for msbuild 2017-10-05 00:08:38 +02:00
Matthias Hoelzl
727a381fc9 Fix Python 3 build
- Take care of the differences in handling unicode characters in
  `escape_string` (formerly in `editor/SCsub`, now in `compat.py)`.
- Conditionally include `_winreg` or `winreg` in the Mono editor
  module.
2017-10-04 23:21:32 +02:00
Ignacio Etcheverry
e36fb95c50 Added mono module 2017-10-03 00:01:26 +02:00