summaryrefslogtreecommitdiff
path: root/src/bindings/mono/meson.build
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2019-08-23 14:27:28 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2019-08-23 14:28:00 -0300
commit2f0a20b6887ee868f5a72ff38b9789b08e61630f (patch)
tree47293a39f84ce0f9973ac2367ccb6b544f576b29 /src/bindings/mono/meson.build
parentb4a64444735c1bef6703edc0783fc8256b08329e (diff)
eolian-mono: Add support for partial classes
Summary: Add the -p command to eolian to create a class as a partial class. Create a list in meson build of Eolian files that should be built with partial classes. This allows creating more specific method overloads for C#, manually, by generating the class as partial and adding in manual binding the partial class with the new methods and properties. T8034 Reviewers: segfaultxavi, lauromoura, woohyun, Jaehyun_Cho Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9690
Diffstat (limited to 'src/bindings/mono/meson.build')
-rw-r--r--src/bindings/mono/meson.build10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/bindings/mono/meson.build b/src/bindings/mono/meson.build
index 8a87da9..c0f04c3 100644
--- a/src/bindings/mono/meson.build
+++ b/src/bindings/mono/meson.build
@@ -82,6 +82,10 @@ blacklisted_files = [
82 'elm_atspi_app_object.eo', 82 'elm_atspi_app_object.eo',
83] 83]
84 84
85manual_inheritance_files = [
86 'efl_object.eo'
87]
88
85beta_option = [] 89beta_option = []
86if (get_option('mono-beta')) 90if (get_option('mono-beta'))
87 beta_option = '-b' 91 beta_option = '-b'
@@ -105,13 +109,17 @@ foreach lib : mono_sublibs
105 subdir_file_location = join_paths(file_location, eo_file_subdir) 109 subdir_file_location = join_paths(file_location, eo_file_subdir)
106 foreach mono_gen_file : mono_pub_eo_files 110 foreach mono_gen_file : mono_pub_eo_files
107 if not blacklisted_files.contains(mono_gen_file) 111 if not blacklisted_files.contains(mono_gen_file)
112 partial = []
113 if manual_inheritance_files.contains(mono_gen_file)
114 partial = '-p'
115 endif
108 mono_generator_target += custom_target('eolian_mono_gen_'+mono_gen_file.underscorify()+'', 116 mono_generator_target += custom_target('eolian_mono_gen_'+mono_gen_file.underscorify()+'',
109 input : join_paths(subdir_file_location, mono_gen_file), 117 input : join_paths(subdir_file_location, mono_gen_file),
110 output : [mono_gen_file + '.cs'], 118 output : [mono_gen_file + '.cs'],
111 command : [eolian_mono_gen, beta_option, '-I', meson.current_source_dir(), eolian_include_directories, 119 command : [eolian_mono_gen, beta_option, '-I', meson.current_source_dir(), eolian_include_directories,
112 '--dllimport', package_name, 120 '--dllimport', package_name,
113 '-o', join_paths(meson.current_build_dir(), mono_gen_file + '.cs'), 121 '-o', join_paths(meson.current_build_dir(), mono_gen_file + '.cs'),
114 '-e', get_option('mono-examples-dir'), 122 '-e', get_option('mono-examples-dir'), partial,
115 '@INPUT@']) 123 '@INPUT@'])
116 endif 124 endif
117 endforeach 125 endforeach