diff options
author | Ignacio Roldán Etcheverry <ignalfonsore@gmail.com> | 2022-02-27 21:57:52 +0100 |
---|---|---|
committer | Ignacio Roldán Etcheverry <ignalfonsore@gmail.com> | 2022-08-22 03:36:51 +0200 |
commit | 4b90d162502d65f20a89331898cd8a0b3eea8fe2 (patch) | |
tree | 3e1efc5a5638676aabe32e67f3ed342a8dbe808a /modules/mono/mono_gd/gd_mono.h | |
parent | 18f805b3aad2be838a7396f18d4ebd99182b6935 (diff) | |
download | redot-engine-4b90d162502d65f20a89331898cd8a0b3eea8fe2.tar.gz |
C#: Initial NativeAOT support
This commit adds initial support for games exported as NativeAOT shared
libraries.
At this moment, the NativeAOT runtime is experimental. Additionally,
Godot is not trim-safe as it still makes some use of reflection.
For the time being, a rd.xml file is needed to prevent code triming:
```
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="GodotSharp" Dynamic="Required All" />
<Assembly Name="GAME_ASSEMBLY" Dynamic="Required All" />
</Application>
</Directives>
```
These are the csproj changes for publishing:
```
<PropertyGroup>
<NativeLib>Shared</NativeLib>
</PropertyGroup>
<ItemGroup>
<RdXmlFile Include="rd.xml" />
<PackageReference Include="Microsoft.DotNet.ILCompiler" Version="7.0.0-*" />
</ItemGroup>
```
More info:
- https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/docs/using-nativeaot/compiling.md
- https://github.com/dotnet/runtimelab/tree/feature/NativeAOT/samples/NativeLibrary
- https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/docs/using-nativeaot/rd-xml-format.md
Diffstat (limited to 'modules/mono/mono_gd/gd_mono.h')
-rw-r--r-- | modules/mono/mono_gd/gd_mono.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h index 66ed331b67..301782575c 100644 --- a/modules/mono/mono_gd/gd_mono.h +++ b/modules/mono/mono_gd/gd_mono.h @@ -61,6 +61,7 @@ class GDMono { bool finalizing_scripts_domain; void *hostfxr_dll_handle = nullptr; + bool is_native_aot = false; #ifdef TOOLS_ENABLED bool _load_project_assembly(); |