-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-write mono module editor code in C# #30282
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non-Mono changes seem good.
I forgot to commit one file, will fix soon. |
14b4184
to
c49f9ee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't get to look through everything, but here's a few things I noticed.
.idea/ | ||
|
||
# Visual Studio Code | ||
.vscode/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should any of these be added to https://github.com/github/gitignore/blob/master/Godot.gitignore ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, that repository is for project-specific .gitignore
files, so it should only be for files generated in normal use of Godot.
Third party code editors are outside that scope, and github/gitignore already provides .gitignore
files for them. I don't know if they provide a feature to merge several .gitignore
files when you have a project using different software, but if they don't, they should :)
modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotBuildLogger.cs
Show resolved
Hide resolved
modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotBuildLogger.cs
Show resolved
Hide resolved
e6a1521
to
2f5c1b9
Compare
|
7d6ac9a
to
588c0a3
Compare
@@ -667,7 +663,6 @@ void print_unhandled_exception(MonoException *p_exc) { | |||
} | |||
|
|||
void set_pending_exception(MonoException *p_exc) { | |||
#ifdef HAS_PENDING_EXCEPTIONS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like Travis' mono doesn't like this: https://travis-ci.org/godotengine/godot/jobs/554433349
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like we're still running 5.10.1.20 from the debian wheezy upstream repo on Travis:
Get:2 http://download.mono-project.com/repo/debian wheezy/main amd64 mono-runtime-sgen amd64 5.10.1.20-0xamarin1+debian7b1 [1,760 kB]
I don't know if there's a more recent repo compatible with Travis' Ubuntu Xenial.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah the mono
source is wheezy
:
https://github.com/travis-ci/apt-source-safelist/blob/0c2267bff66def573d31a8240ff7d31795e1f6fa/ubuntu.json#L418-L423
I'll see if they could add http://download.mono-project.com/repo/debian/dists/stable-xenial/ to the whitelist, but I don't have high hopes of Travis acting fast, so we should likely keep this define for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well there's my own year old issue: travis-ci/apt-source-safelist#384
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a travis workaround:
is_travis = os.environ.get('TRAVIS') == 'true'
if is_travis:
# Travis CI may have a Mono version lower than 5.12
env_mono.Append(CPPDEFINES=['NO_PENDING_EXCEPTIONS'])
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. So for non-Travis we would now require a version >= 5.12 I suppose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've had that requirement for a year :P https://github.com/godotengine/godot-docs/blame/82963cf7055bad24694d88d3ecc6a4da04f14fa7/development/compiling/compiling_with_mono.rst#L11
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.
ptrcall assumes methods that return a Reference type do so with Ref<T>. Returning Reference* from a method exposed to the scripting API completely breaks ptrcalls to this method (it can be quite hard to debug!).
We make sure the resource dir path ends with a trailing '/' for safety reasons, so we must make sure the path we compare it to does so as well.
588c0a3
to
0639946
Compare
Thanks! |
No description provided.