summaryrefslogtreecommitdiff
path: root/modules/mono/utils
AgeCommit message (Collapse)Author
2020-09-04Fix Mono path utils char types.bruvzg
2020-09-03[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg
2020-08-30Fix clang-tidy warnings due to semicolon after mono module macrosIgnacio Etcheverry
This also enforces them to end with a semicolon.
2020-07-10[macOS, Mono] Fix "Wdeprecated-declarations" build error.bruvzg
2020-07-05Mono/C#: Fix several clang-tidy warnings and cleanupIgnacio Etcheverry
2020-06-15C#: Add VisualStudio supportIgnacio Etcheverry
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-09C#/Mono: Check assembly version when loadingIgnacio Etcheverry
Not sure if we should check revision too, but this is good enough for what we want. This will be needed to load the correct Microsoft.Build when we switch to the nuget version.
2020-05-03Remove some C++11 polyfill defines that are no longer neededHugo Locurcio
2020-04-02Replace NULL with nullptrlupoDharkael
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-02-26Reimplement Mutex with C++'s <mutex>Pedro J. Estébanez
Main: - It's now implemented thanks to `<mutex>`. No more platform-specific implementations. - `BinaryMutex` (non-recursive) is added, as an alternative for special cases. - Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes. - Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts. - A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this. - `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`. - Thread-safe utilities are therefore simpler now. Misc.: - `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same. - Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock). - `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
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-11-15Mono/C#: Initial exporter support for AOT compilationIgnacio Etcheverry
2019-09-25Merge pull request #32051 from qarmin/some_error_explanationRémi Verschelde
Added some obvious errors explanations
2019-09-25Added some obvious errors explanationsqarmin
2019-09-08Mono: Fix unable to create log file due to str_format bugIgnacio Etcheverry
2019-08-09Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in 'modules/mono'Ignacio Etcheverry
And 'CRASH_*_MSG' as well. Also make error messages puntuation and quotation more consistent.
2019-07-09Merge pull request #30428 from neikeq/gitcheckout-bRémi Verschelde
Misc Mono Fixes
2019-07-08Fix --generate-mono-glue bug when directory doesn't existIgnacio Etcheverry
DirAccess::get_full_path(path) only works if the path exists. Implement our own abspath function.
2019-07-07Fixes minor issues found by static analyzerqarmin
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-06-26Some code changed with Clang-Tidyqarmin
2019-05-05Fix generation of Mono Glue for Visual Studio 2017+ShyRed
vsnprintf definition should only be changed when MSC version is older than 2013. The version check and fix is taken from StringUtils.h of assimp.
2019-05-02Ignore a warning in _get_socket_error (-Wlogical-op).marxin
drivers/unix/net_socket_posix.cpp: In member function 'NetSocketPosix::NetError NetSocketPosix::_get_socket_error()': drivers/unix/net_socket_posix.cpp:197:22: warning: logical 'or' of equal expressions [-Wlogical-op] 197 | if (errno == EAGAIN || errno == EWOULDBLOCK) | ^ and: modules/mono/utils/string_utils.cpp: In function 'int {anonymous}::sfind(const String&, int)': modules/mono/utils/string_utils.cpp:68:48: error: logical 'or' of collectively exhaustive tests is always true [-Werror=logical-op] found = src[read_pos] == 's' || (c >= '0' || c <= '4'); ~~~~~~~~~^~~~~~~~~~~
2019-04-30Fix missing argument for vsnprintf_sIgnacio Etcheverry
2019-04-25C# bindings generator cleanupIgnacio Etcheverry
- Normal log messages are no longer warnings. - BindingsGenerator is no longer a singleton. - Added a log function.
2019-04-08Merge pull request #27711 from neikeq/ifdef-clang-tidyRémi Verschelde
Replace a few #if/#elif with #ifdef and "#elif defined"
2019-04-06Mono: Buildsystem support for finding MSBuild from VS2019Ignacio Etcheverry
2019-04-05Replace a few #if/#elif with #ifdef and "#elif defined"Ignacio Etcheverry
2019-03-20Add support for new MSBuild directory naming introduced in VS 2019.Sebastian Hartte
2019-02-15Don't print 'Cannot find Mono in the registry' if bundled with GodotIgnacio Etcheverry
Closes #24753
2019-02-10Fix check to determine if [[noreturn]] attribute is usableIgnacio Etcheverry
2019-02-03Merge pull request #25478 from neikeq/rrIgnacio Etcheverry
Mono: Fix MonoPosixHelper not being found
2019-02-03Mono: CleanupIgnacio Etcheverry
2019-01-27Mono: Test Windows binaries with lowercase extensionRémi Verschelde
To help users writing good cross-platform code, Godot's `FileAccessWindows:open()` will issue a warning on case mismatch, which happens here with capitalized extensions given by `PATHEXT` compared to actual file extensions which are lowercase 99% of the time. Fixes #25368.
2019-01-22Mono: Fix hot reload build errors and cleanupIgnacio Etcheverry
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2019-01-01Fix missing/malformed license headersRémi Verschelde
2018-11-30C#: Improve tool script support and fix reloading issuesIgnacio Etcheverry
2018-11-08Improve the C# API projects generationIgnacio Etcheverry
- Now there is only one solution that contains both GodotSharp and GodotSharpEditor project. Previously we had one solution for each project - GodotSharpEditor reference GodotShatp with a 'ProjectReference'. Previously it was a 'Reference' to the assembly - This also simplifies the command line option to generate this solution: 'godot --generate-cs-api <OutputDir>'
2018-10-25Parse C# script namespace and classIgnacio Etcheverry
- Added a very simple parser that can extract the namespace and class name of a C# script.
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-03Fix GCC compiler warning in mono moduleIgnacio Etcheverry
- thread_local.h: 'delegating constructors only available with -std=c++11 or -std=gnu++11' - mono_reg_utils.cpp: 'extra tokens at end of #endif directive' - mono_bottom_panel.cpp: '<fieldB> will be initialized after <fieldA> when initialized here' - bindings_generator.cpp: 'name lookup of 'i' changed (...) matches this 'i' under ISO standard rules (...) matches this 'i' under old rules (...)'
2018-09-17Mono: Fix opening code editors in OSX and cleanupIgnacio Etcheverry
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-08-21Style: Fix issues that went past CIRémi Verschelde