summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson_options.txt6
-rw-r--r--src/bindings/mono/efl_mono/AssemblyInfo.cs.in3
-rw-r--r--src/bindings/mono/efl_mono/meson.build19
3 files changed, 28 insertions, 0 deletions
diff --git a/meson_options.txt b/meson_options.txt
index 0a4702cad8..66ef0257f4 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -366,3 +366,9 @@ option('install-eo-files',
value: false,
description : 'Install any eo file'
)
+
+option('mono-friend-assemblies',
+ type : 'array',
+ value : [],
+ description : 'List of friend assemblies that can access efl_mono assembly\'s internal types and members.'
+)
diff --git a/src/bindings/mono/efl_mono/AssemblyInfo.cs.in b/src/bindings/mono/efl_mono/AssemblyInfo.cs.in
new file mode 100644
index 0000000000..e22d0a4140
--- /dev/null
+++ b/src/bindings/mono/efl_mono/AssemblyInfo.cs.in
@@ -0,0 +1,3 @@
+using System.Runtime.CompilerServices;
+
+@MONO_FRIEND_ASSEMBLIES@
diff --git a/src/bindings/mono/efl_mono/meson.build b/src/bindings/mono/efl_mono/meson.build
index cfe53ee153..6542f5124a 100644
--- a/src/bindings/mono/efl_mono/meson.build
+++ b/src/bindings/mono/efl_mono/meson.build
@@ -34,6 +34,25 @@ efl_src = configure_file(
configuration: efl_libs
)
+friend_assemblies = ''
+mono_friend_assemblies = get_option('mono-friend-assemblies')
+if get_option('build-tests')
+ mono_friend_assemblies += 'efl-mono-suite'
+ mono_friend_assemblies += 'efl_mono_test'
+endif
+
+foreach f : mono_friend_assemblies
+ friend_assemblies += '[assembly: InternalsVisibleTo("@0@")]\n'.format(f)
+endforeach
+friend_assembly_data = configuration_data()
+friend_assembly_data.set('MONO_FRIEND_ASSEMBLIES', friend_assemblies)
+
+mono_files += configure_file(
+ input: 'AssemblyInfo.cs.in',
+ output: 'AssemblyInfo.cs',
+ configuration: friend_assembly_data
+)
+
mono_eo_files = [
'efl_mono_model_internal.eo',
'efl_mono_model_internal_child.eo'