summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-01-04 23:24:42 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-01-04 23:56:35 +0100
commitb116fc0d7c87a5abd46b5dc72524a5f6b4f547e4 (patch)
treeb6fc8f8d66b8b0368fed36810b18c55e32bc819d
parentf046504ee80d601a6025ffc6b6342000fc5b4420 (diff)
downloadefl-devs/bu5hm4n/c-sharp-on-system.tar.gz
meson: support signing and installingdevs/bu5hm4n/c-sharp-on-system
when a .dll file is signed he can be installed using gac which means no MONOPATH is not needed anymore. And the efl_mono library can be used by a c# IDE like monodevelop.
-rw-r--r--meson_options.txt6
-rw-r--r--src/bindings/mono/meson.build20
2 files changed, 24 insertions, 2 deletions
diff --git a/meson_options.txt b/meson_options.txt
index e24f999ee4..498e2a4823 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -346,3 +346,9 @@ option('windows-version',
value : 'win7',
description : 'When host_machine is windows, compile the efl with the specified version of Windows'
)
+
+option('efl-sharp-key-file',
+ type: 'string',
+ value: 'none',
+ description : 'This option can be used to provide a key which is used to sign efl-mono.dll'
+)
diff --git a/src/bindings/mono/meson.build b/src/bindings/mono/meson.build
index 411c29f617..6d79efcc99 100644
--- a/src/bindings/mono/meson.build
+++ b/src/bindings/mono/meson.build
@@ -126,12 +126,28 @@ configure_file(input : 'efl_mono.dll.config.in',
output : 'efl_mono.dll.config',
configuration : efl_mono_conf_data)
+
+if get_option('efl-sharp-key-file') == 'none'
+ signing = false
+ mono_option = ''
+ installing_from_meson = true
+else
+ signing = true
+ mono_option = '-keyfile:'+get_option('efl-sharp-key-file')
+ installing_from_meson = false
+endif
+
efl_mono = library('efl_mono',
mono_generator_target + mono_files + [efl_src],
- install : true,
- install_dir : join_paths(dir_lib, 'efl-mono-'+version_major)
+ install : installing_from_meson,
+ install_dir : join_paths(dir_lib, 'efl-mono-'+version_major),
+ cs_args : mono_option,
)
+if signing
+ meson.add_install_script('gacutil', '-i', efl_mono.full_path())
+endif
+
efl_mono_test_suite_path=join_paths(meson.current_build_dir())
pkgconfig.generate(