path: root/src/bindings/mono/efl_mono/efl_libs.cs.in
diff options
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2019-01-16 16:29:56 +0900
committerVitor Sousa <vitorsousa@expertisesolutions.com.br>2019-03-01 23:58:56 -0300
commitf392c5a4363cf09e8c0e50a42c46416a09a72c74 (patch)
tree1966addc0a769679e9dfa641df816c80d243651b /src/bindings/mono/efl_mono/efl_libs.cs.in
parentefl-mono: Add support for Efl.Class (diff)
efl-mono: Add support for dotnet core
Summary: This commits adds dotnet as a supported C# platform for EFL# bindings. Due to differences between Mono and Dotnet regarding DllImport, the bindings now are using an imperative approach to load the function pointers through the NativeModule and FunctionWrapper classes. These classes handle the dlopen/LoadLibrary and dlsym/GetProcAddress calls. Also, the previous caching of non-owned strings returned to native code was removed until further memory checks. We also had to create workaround for bool and chars in Structs for C# marshaling. Going through System.Byte instead and Marshaling manually to their respective types. In order to actually build efl_mono.dll with dotnet right now, issue #4782 from Meson should be fixed to make it properly detect and used the Dotnet compiler. Also use "-Ddotnet=true" when running meson. Fixes https://phab.enlightenment.org/T7394 Reviewers: felipealmeida, vitor.sousa, bu5hm4n Reviewed By: vitor.sousa Subscribers: cedric Tags: #efl Maniphest Tasks: https://phab.enlightenment.org/T7394 Differential Revision: https://phab.enlightenment.org/D8069
Diffstat (limited to 'src/bindings/mono/efl_mono/efl_libs.cs.in')
1 files changed, 16 insertions, 0 deletions
diff --git a/src/bindings/mono/efl_mono/efl_libs.cs.in b/src/bindings/mono/efl_mono/efl_libs.cs.in
index 21bb6c5967..0aa56908ff 100644
--- a/src/bindings/mono/efl_mono/efl_libs.cs.in
+++ b/src/bindings/mono/efl_mono/efl_libs.cs.in
@@ -17,6 +17,22 @@ public class Libs {
public const string Eldbus = "@ELDBUS_DL_MONO@";
public const string CustomExports = "@CUSTOM_EXPORTS_MONO_DL_MONO@";
+ public const string Libdl = "libdl.so";
+ public const string Kernel32 = "kernel32.dll";
+ public static Efl.Eo.NativeModule EflModule = new Efl.Eo.NativeModule(Efl);
+ public static Efl.Eo.NativeModule CoreModule = new Efl.Eo.NativeModule(Ecore);
+ public static Efl.Eo.NativeModule EinaModule = new Efl.Eo.NativeModule(Eina);
+ public static Efl.Eo.NativeModule EoModule = new Efl.Eo.NativeModule(Eo);
+ public static Efl.Eo.NativeModule EvasModule = new Efl.Eo.NativeModule(Evas);
+ public static Efl.Eo.NativeModule EvilModule = new Efl.Eo.NativeModule(Evil);
+ public static Efl.Eo.NativeModule EdjeModule = new Efl.Eo.NativeModule(Edje);
+ public static Efl.Eo.NativeModule ElementaryModule = new Efl.Eo.NativeModule(Elementary);
+ public static Efl.Eo.NativeModule EldbusModule = new Efl.Eo.NativeModule(Eldbus);
+ public static Efl.Eo.NativeModule CustomExportsModule = new Efl.Eo.NativeModule(CustomExports);
+ public static Efl.Eo.NativeModule LibdlModule = new Efl.Eo.NativeModule(Libdl);
+ public static Efl.Eo.NativeModule Kernel32Module = new Efl.Eo.NativeModule(Kernel32);