1
0
Fork 0
Commit Graph

921 Commits

Author SHA1 Message Date
Rémi Verschelde 7a0e659a80
Merge pull request #102836 from raulsntos/dotnet/export-tool-button-no-storage
[.NET] Disallow `[ExportToolButton]` on members thay may store the Callable
2025-02-14 22:58:25 +01:00
Raul Santos f4094b554d
[.NET] Disallow `[ExportToolButton]` on members thay may store the Callable
Ensures the user doesn't store the Callable so the .NET assembly can be reloaded.
2025-02-14 01:09:59 +01:00
Thaddeus Crews c90fd7f3da
Merge pull request #98066 from TCROC/fix-android-mono-export
Fix Android mono export with 2 or more cpu architectures fails
2025-02-10 12:21:32 -06:00
Travis Lange 5e2fd7b1d7 fix android mono export causing conflicts 2025-02-10 10:09:52 -05:00
Raul Santos 5a53ec55ec
[.NET] Add Obsolete attribute to signal trampolines and emitter functions
If a signal is deprecated, make sure we also add the `[Obsolete]` attribute to that signal's trampoline and emitter functions.
2025-01-24 02:18:28 +01:00
Thaddeus Crews 73278bf35d
SCons: Properly `NoCache` all text files 2025-01-16 16:59:12 -06:00
Yufeng Ying 34d8255947 Force build editor with regex module, remove checking code.
Fix include.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
Raul Santos 975369fceb
[.NET] Fix EmitSignal with typed array parameters
Signals with typed arrays were generating EmitSignal methods with untyped array parameters.
2024-12-20 06:51:09 +01:00
Raul Santos 8d41b5a582
[.NET] Upgrade user project's TargetFramework to `net8.0`
- Upgrades the TFM for new created  projects to `net8.0`.
- Implements system to upgrade TFM for existing projects to `net8.0`.
2024-12-18 02:44:32 +01:00
Rémi Verschelde cb0d731daf
Merge pull request #100351 from raulsntos/dotnet/android-gradle-fix
[.NET] Fix gradle builds for multiple ABIs
2024-12-17 22:59:58 +01:00
Paul Joannon fb8553e4d7
Move to .NET8
- Change TFM and LangVersion
- Better exception throwing (CA1510, CA1512, CA1513)
- Better exception utility method definition (CA1859)
- Prefer comparing `.Count` over calling `.Any()` (CA1860)
- Prefer `.AsSpan()` over `.Substring()` (CA1846)
- Add a few more `scoped`
- Use `RuntimeHelpers.GetUninitializedObject()` instead of `FormatterServices.GetUninitializedObject()`
- Use delegate instead of delegate pointer in variant generic conversions
- Enable EnforceExtendedAnalyzerRules in source generator projects
- Disable CS8981 on structs named movable in Godot.NativeInterop
2024-12-13 14:00:13 +01:00
Raul Santos d526d523b4
[.NET] Fix gradle builds for multiple ABIs
Include the needed .NET jar in the Godot templates so it's always available, then we don't need to include the jar from a .NET publish which could fail when exporting to multiple architectures because it would attempt to add the same jar for each architecture.
2024-12-13 08:01:13 +01:00
RedworkDE f0b6b24d9e
C#: Update to net7.0
Because of ref safety changes in the languages, all methods that return an interop struct have to have all other reference parameters marked as scoped to signal the the method does not capture that reference.

The variant change is necessary, because for some reason a type of the exact shape godot_variant is in, crashes the .NET 7 JIT, but when changing it to be sequential with the same effective layout it works.
2024-12-12 17:42:39 +01:00
Thaddeus Crews 57d08dbec3
C#: Fix warnings caught by new problem-matchers
• Restore MSVC problem matcher for Linux builds
2024-12-10 14:04:35 -06:00
Lukas Tenbrink b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Thaddeus Crews ea3154a0d4 Merge pull request #99424 from dalexeev/core-fix-builtin-enum-const-binds
Core: Fix built-in enum constant bindings
2024-11-22 14:54:31 -06:00
Danil Alexeev 03b05cf9ac
Core: Fix built-in enum constant bindings 2024-11-22 14:03:21 +03:00
Raul Santos 4e5080d805
[.NET] Preserve no-hint behavior for unmarshallable generics in dictionaries 2024-11-21 20:38:55 +01:00
Thaddeus Crews ec7fd4f6f1
Merge pull request #97894 from paulloz/dotnet/export-tool-button
Implement `[ExportToolButton]`
2024-11-19 15:20:07 -06:00
Paul Joannon 4f52c2bb1f
Implement [ExportToolButton] 2024-11-18 20:19:47 +01:00
Thaddeus Crews 1889d2a264
Merge pull request #99206 from a-johnston/fix_double_diagnostic
Remove duplicate read/write-only property warning from ScriptPropertiesGenerator
2024-11-18 09:23:30 -06:00
A Thousand Ships 68f638cf02
Use `(r)find_char` instead of `(r)find` for single characters 2024-11-17 10:02:18 +01:00
Adam Johnston 186f35fc9b remove duplicate read/write only property warning from ScriptPropertiesGenerator 2024-11-13 14:23:53 -08:00
Thaddeus Crews 2705202ebb
Merge pull request #98459 from zaevi/fix_csharp_signal_parameters
C#: Escape signal parameters
2024-11-12 09:27:43 -06:00
Hugo Locurcio 9f2bd57b7b
Add Codium support to C# external editors
Selecting the VS Code option will now work if Codium is installed,
picking it as the last option after attempting to run VS Code.
2024-11-02 00:00:41 +01:00
Zae 2a3d400dd8 C#: Escape signal parameters 2024-10-23 23:24:00 +08:00
kobewi 5c0f2414cd Always add decimal when printing float 2024-10-23 15:00:21 +02:00
Thaddeus Crews cb3c01a5fe
Merge pull request #97588 from TML233/generated-raise-signal
[C#] Change generated On{SignalName} to EmitSignal{SignalName}
2024-10-21 16:39:12 -05:00
Juan Pablo Arce e3790de461 Fix exported typed dictionaries in .NET having an incorrect hint, which led to incorrect scene serialization 2024-10-18 00:55:24 -03:00
Thaddeus Crews c409546cc3
Merge pull request #98059 from zaevi/fix_csharp_unhandled_GD0303
[.NET] Fix unhandled GD0303 error for nested generic attribute types
2024-10-14 14:09:51 -05:00
Zae 9c99e519c6 C#: Fix unhandled GD0303 error for nested generic attribute types 2024-10-11 03:03:05 +08:00
DE YU d4695e84a4 Add ReadOnlySpan API Overloads
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-09 23:14:38 +08:00
TML fa48ed9945 Change generated On{SignalName} to EmitSignal{SignalName} 2024-09-28 22:10:33 +08:00
Rémi Verschelde 543fa16b4c
Merge pull request #68233 from raulsntos/dotnet/raise-events
C#: Generate strongly-typed method to raise signal events and fix event accessibility
2024-09-27 13:53:11 +02:00
Raul Santos da37998dc8
C#: Generate On{EventName} method to raise signal events 2024-09-26 20:10:53 +02:00
Thaddeus Crews 9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Rémi Verschelde ea8d20d35b
Merge pull request #96955 from Delsin-Yu/generator-based-CreateManagedForGodotObjectBinding
[.NET] Replace Reflection-Based implementation with Generated one in `CreateManagedForGodotObjectBinding`
2024-09-23 16:13:49 +02:00
Rémi Verschelde c65ab71230
Merge pull request #94953 from raulsntos/dotnet/signals-with-typed-arrays
C#: Generate signal delegates with typed arrays
2024-09-23 12:27:45 +02:00
Raul Santos 445e822bcf
C#: Generate signal event with the same accessibility as the delegate 2024-09-23 03:38:18 +02:00
DE YU 307224927c Replace Reflection-Based implementation with Generated one
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-09-22 18:01:14 +08:00
Rémi Verschelde 2f078e501c
Merge pull request #97198 from raulsntos/dotnet/open-visual-studio-with-dotnet-cli
C#: Use dotnet CLI to launch `OpenVisualStudio.dll`
2024-09-20 16:06:46 +02:00
Matt Enad d6c0a53ecf Add error messages to binding generator 2024-09-19 13:31:05 -04:00
Raul Santos ec189b1574
C#: Use dotnet CLI to launch OpenVisualStudio.dll
Use the DLL instead of the EXE, so we can rely on the dotnet CLI handling the architecture.
2024-09-19 19:23:01 +02:00
Raul Santos 0aa46e19c5
C#: Fallback to CoreCLR/MonoVM hosting APIs when hostfxr/NativeAOT fails
Some platforms don't support hostfxr but we can use the coreclr/monosgen library directly to initialize the runtime.

Android exports now use the `android` runtime identifier instead of `linux-bionic`, this removes the restrictions we previously had:
- Adds support for all Android architectures (arm32, arm64, x32, and x64), previously only the 64-bit architectures were supported.
- Loads `System.Security.Cryptography.Native.Android` (the .NET library that binds to the Android OS crypto functions).
2024-09-16 17:07:03 +02:00
Rémi Verschelde f8fbb860f5
Merge pull request #95840 from raulsntos/char_metadata
Add metadata for `char16_t` and `char32_t`
2024-09-12 09:25:19 +02:00
Raul Santos aaffab8afb
Add metadata for `char16_t` and `char32_t`
We don't seem to expose any API that uses `char16_t` yet, but I added it anyway since we make the type info for it.

I didn't add anything for `wchar_t` because we are not making a type info so maybe we don't have a need for it yet, it could be added in the future.

To prevent breaking compatibility with the C# bindings, we ignore the `char32_t` metadata and still use `System.Int64`.
2024-09-12 02:15:55 +02:00
kit 5e1c9d68aa Extract editor main screen 2024-09-09 11:06:18 -04:00
Thaddeus Crews 9853a69144
Implement typed dictionaries 2024-09-04 10:27:26 -05:00
Raul Santos 4c14421602
C#: Use export platform to determine the target OS and log errors
- Use the export platform's `get_os_name` to determine the platform name instead of guessing from the features.
- Use the export platform's `add_message` to add error messages instead of a custom error dialog. Integrates .NET error messages with the export log dialog.
2024-08-30 12:45:24 +02:00
RedOrbweaver 81799b8fa3 Fix build logger unable to handle an event without an associated file 2024-08-29 20:33:47 +02:00