From 44d2af717a22deaf5ac369d4682c163762388f26 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Thu, 31 Aug 2017 08:42:08 -0300 Subject: [PATCH] meson: Add an option to disabling installing assemblies This is useful when used as a subproject which is generating a Nuget. --- atk/generated/meson.build | 2 +- atk/meson.build | 4 ++-- cairo/meson.build | 7 +++++-- gdk/generated/meson.build | 2 +- gdk/meson.build | 15 ++++++++------- generator/meson.build | 33 +++++++++++++++++++-------------- gio/generated/meson.build | 2 +- gio/meson.build | 17 +++++++++-------- glib/Object.cs | 4 ++-- glib/meson.build | 19 ++++++++++++------- gtk/generated/meson.build | 2 +- gtk/meson.build | 15 ++++++++------- meson.build | 7 +++++-- meson_options.txt | 1 + pango/generated/meson.build | 2 +- pango/meson.build | 4 ++-- parser/meson.build | 33 +++++++++++++++++++-------------- 17 files changed, 97 insertions(+), 72 deletions(-) create mode 100644 meson_options.txt diff --git a/atk/generated/meson.build b/atk/generated/meson.build index 23819a454..e8f8267e6 100644 --- a/atk/generated/meson.build +++ b/atk/generated/meson.build @@ -123,6 +123,6 @@ api_xml = custom_target(pkg + '_api_xml', output: pkg + '-api.xml', command: [generate_api, '--fakeglue'], depends: [source_gen], - install: true, + install: install, install_dir: gapi_xml_installdir) atk_api_includes = join_paths(meson.current_build_dir(), 'atk-api.xml') diff --git a/atk/meson.build b/atk/meson.build index a52a3b5f3..9d634a434 100644 --- a/atk/meson.build +++ b/atk/meson.build @@ -27,7 +27,7 @@ sources = [ atk_sharp = library(assembly_name, source_gen, sources, cs_args: ['-unsafe', '-keyfile:' + snk], link_with: glib_sharp, - install: true, + install: install, install_dir: lib_install_dir ) @@ -39,7 +39,7 @@ gluegen = custom_target('atkgluegen', library('atksharpglue-3', gluegen, dependencies: [glib_dep, gio_dep, atk_dep], - install: true) + install: install) install_infos += [assembly_name, atk_sharp.full_path()] atk_sharp_dep = declare_dependency(link_with: [glib_sharp, atk_sharp]) diff --git a/cairo/meson.build b/cairo/meson.build index 243ad7166..4b5eff982 100644 --- a/cairo/meson.build +++ b/cairo/meson.build @@ -65,12 +65,15 @@ sources = [ cairo_sharp = library(assembly_name, sources, cs_args: ['-keyfile:' + snk], - install: true, + install: install, install_dir: lib_install_dir ) install_infos += [assembly_name, cairo_sharp.full_path()] cairo_api_includes = join_paths(meson.current_source_dir(), 'cairo-api.xml') -install_data(cairo_api_includes, install_dir: gapi_xml_installdir) + +if install + install_data(cairo_api_includes, install_dir: gapi_xml_installdir) +endif cairo_sharp_dep = declare_dependency(link_with: cairo_sharp) diff --git a/gdk/generated/meson.build b/gdk/generated/meson.build index 87a0d0c54..9bb2b944b 100644 --- a/gdk/generated/meson.build +++ b/gdk/generated/meson.build @@ -221,6 +221,6 @@ api_xml = custom_target(pkg + '_api_xml', output: pkg + '-api.xml', command: [generate_api, '--fakeglue'], depends: [source_gen], - install: true, + install: install, install_dir: gapi_xml_installdir) gdk_api_includes = join_paths(meson.current_build_dir(), 'gdk-api.xml') diff --git a/gdk/meson.build b/gdk/meson.build index bdfcd27d0..978141a47 100644 --- a/gdk/meson.build +++ b/gdk/meson.build @@ -12,11 +12,12 @@ configure_file(input: assembly_name + '.dll.config.in', output: assembly_name + '.dll.config', configuration : remap_dl_data) -configure_file(input: assembly_name + '-3.0.pc.in', - output: assembly_name + '-3.0.pc', - configuration : version_data, - install_dir: pkg_install_dir, - install: true) +if install + configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir) +endif subdir('generated') @@ -68,7 +69,7 @@ deps = [glib_sharp, pango_sharp, cairo_sharp, gio_sharp] gdk_sharp = library(assembly_name, source_gen, sources, cs_args: ['-unsafe', '-keyfile:' + snk], link_with: deps, - install: true, + install: install, install_dir: lib_install_dir ) @@ -80,7 +81,7 @@ gluegen = custom_target('gdkgluegen', library('gdksharpglue-3', gluegen, dependencies: [glib_dep, gio_dep, atk_dep, gdk_dep], - install: true) + install: install) install_infos += [assembly_name, gdk_sharp.full_path()] gdk_sharp_dep = declare_dependency(link_with: deps + [gdk_sharp]) diff --git a/generator/meson.build b/generator/meson.build index b0c5987cd..3f0e2cd5c 100644 --- a/generator/meson.build +++ b/generator/meson.build @@ -1,13 +1,6 @@ gapi_fixup = executable('gapi-fixup', 'gapi-fixup.cs', install_dir : gapi_installdir, - install: true) - -configure_file(input: 'gapi3-fixup.in', - output: 'gapi3-fixup', - configuration : gapi_parser_data, - install_dir: get_option('bindir'), - install: true) - + install: install) gapi_codegen = executable('gapi_codegen', 'AliasGen.cs', @@ -73,10 +66,22 @@ gapi_codegen = executable('gapi_codegen', 'VMSignature.cs', 'XmlElementExtensions.cs', install_dir : gapi_installdir, - install: true) + install: install) -configure_file(input: 'gapi3-codegen.in', - output: 'gapi3-codegen', - configuration : gapi_parser_data, - install_dir: get_option('bindir'), - install: true) +if install + configure_file(input: 'gapi3-fixup.in', + output: 'gapi3-fixup', + configuration : gapi_parser_data, + install_dir: get_option('bindir')) + configure_file(input: 'gapi3-codegen.in', + output: 'gapi3-codegen', + configuration : gapi_parser_data, + install_dir: get_option('bindir')) +else + configure_file(input: 'gapi3-fixup.in', + output: 'gapi3-fixup', + configuration : gapi_parser_data) + configure_file(input: 'gapi3-codegen.in', + output: 'gapi3-codegen', + configuration : gapi_parser_data) +endif diff --git a/gio/generated/meson.build b/gio/generated/meson.build index 2dd0c90aa..ac11d50be 100644 --- a/gio/generated/meson.build +++ b/gio/generated/meson.build @@ -420,6 +420,6 @@ api_xml = custom_target(pkg + '_api_xml', output: pkg + '-api.xml', command: [generate_api, '--fakeglue'], depends: [source_gen], - install: true, + install: install, install_dir: gapi_xml_installdir) gio_api_includes = join_paths(meson.current_build_dir(), 'gio-api.xml') diff --git a/gio/meson.build b/gio/meson.build index f561560a4..520334373 100644 --- a/gio/meson.build +++ b/gio/meson.build @@ -11,11 +11,12 @@ configure_file(input: assembly_name + '.dll.config.in', output: assembly_name + '.dll.config', configuration : remap_dl_data) -configure_file(input: assembly_name + '-3.0.pc.in', - output: assembly_name + '-3.0.pc', - configuration : version_data, - install_dir: pkg_install_dir, - install: true) +if install + configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir) +endif subdir('generated') @@ -33,7 +34,7 @@ sources = [ gio_sharp = library(assembly_name, source_gen, sources, cs_args: ['-unsafe', '-keyfile:' + snk], link_with: glib_sharp, - install: true, + install: install, install_dir: lib_install_dir ) @@ -43,9 +44,9 @@ gluegen = custom_target('giogluegen', command: [generate_api, '--fakeglue'], depends: [source_gen]) -library('giosharpglue-3', gluegen, +gio_glue = library('giosharpglue-3', gluegen, dependencies: [glib_dep, gio_dep], - install: true) + install: install) install_infos += [assembly_name, gio_sharp.full_path()] gio_sharp_dep = declare_dependency(link_with: [glib_sharp, gio_sharp]) diff --git a/glib/Object.cs b/glib/Object.cs index 92bc6be5f..4c1ebfa1b 100644 --- a/glib/Object.cs +++ b/glib/Object.cs @@ -819,11 +819,11 @@ namespace GLib { return g_type_check_instance_is_a (obj, GType.Object.Val); } - struct GTypeInstance { + public struct GTypeInstance { public IntPtr g_class; } - struct GObject { + public struct GObject { public GTypeInstance type_instance; public uint ref_count; public IntPtr qdata; diff --git a/glib/meson.build b/glib/meson.build index f3ed7f00a..e110fe07d 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -5,11 +5,13 @@ configure_file(input: 'glib-sharp.dll.config.in', output: 'glib-sharp.dll.config', configuration : remap_dl_data) -configure_file(input: 'glib-sharp-3.0.pc.in', - output: 'glib-sharp-3.0.pc', - configuration : version_data, - install_dir: pkg_install_dir, - install: true) +if install + configure_file(input: 'glib-sharp-3.0.pc.in', + output: 'glib-sharp-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir, + install: install) +endif policy_data = configuration_data() policy_data.set('ASSEMBLY_NAME', assembly_name) @@ -92,13 +94,16 @@ sources = [ glib_sharp = library(assembly_name, sources, cs_args: ['-unsafe', '-keyfile:' + snk], - install: true, + install: install, install_dir: lib_install_dir ) install_infos += [assembly_name, glib_sharp.full_path()] glib_api_includes = join_paths(meson.current_source_dir(), 'glib-api.xml') -install_data(glib_api_includes, install_dir: gapi_xml_installdir) + +if install + install_data(glib_api_includes, install_dir: gapi_xml_installdir) +endif glib_sharp_dep = declare_dependency(link_with: glib_sharp) diff --git a/gtk/generated/meson.build b/gtk/generated/meson.build index b76825b56..4ac9ce6ed 100644 --- a/gtk/generated/meson.build +++ b/gtk/generated/meson.build @@ -1089,6 +1089,6 @@ api_xml = custom_target(pkg + '_api_xml', output: pkg + '-api.xml', command: [generate_api, '--fakeglue'], depends: [source_gen], - install: true, + install: install, install_dir: gapi_xml_installdir) gtk_api_includes = join_paths(meson.current_build_dir(), 'gtk-api.xml') diff --git a/gtk/meson.build b/gtk/meson.build index 5c0f5032d..00978ead6 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -12,11 +12,12 @@ configure_file(input: assembly_name + '.dll.config.in', output: assembly_name + '.dll.config', configuration : remap_dl_data) -configure_file(input: assembly_name + '-3.0.pc.in', - output: assembly_name + '-3.0.pc', - configuration : version_data, - install_dir: pkg_install_dir, - install: true) +if install + configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir) +endif subdir('generated') @@ -136,7 +137,7 @@ deps = [glib_sharp, pango_sharp, cairo_sharp, gio_sharp, atk_sharp, gdk_sharp] gtk_sharp = library(assembly_name, source_gen, sources, cs_args: ['-unsafe', '-keyfile:' + snk, '-nowarn:0618,0612,0169'], link_with: deps, - install: true, + install: install, install_dir: lib_install_dir ) @@ -148,7 +149,7 @@ gluegen = custom_target('gtkgluegen', library('gtksharpglue-3', gluegen, dependencies: [glib_dep, gio_dep, atk_dep, gdk_dep, gtk_dep], - install: true) + install: install) install_infos += [assembly_name, gtk_sharp.full_path()] gtk_sharp_dep = declare_dependency(link_with: deps + [gtk_sharp]) diff --git a/meson.build b/meson.build index 1dfac8de7..9640e709c 100644 --- a/meson.build +++ b/meson.build @@ -30,6 +30,7 @@ if csc.get_id() == 'mono' endif endif +install = get_option('install') assemblyinfo='/AssemblyInfo.cs' gacutil = find_program('gacutil') @@ -118,5 +119,7 @@ else message('Gtk not found, not building') endif -gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py') -meson.add_install_script(gacutil_install, install_infos) +if install + gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py') + meson.add_install_script(gacutil_install, install_infos) +endif diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 000000000..7b0dec619 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('install', type : 'boolean', value : true) diff --git a/pango/generated/meson.build b/pango/generated/meson.build index eb9801e55..329e9f8b6 100644 --- a/pango/generated/meson.build +++ b/pango/generated/meson.build @@ -138,6 +138,6 @@ api_xml = custom_target(pkg + '_api_xml', output: pkg + '-api.xml', command: [generate_api, '--fakeglue'], depends: [source_gen], - install: true, + install: install, install_dir: gapi_xml_installdir) pango_api_includes = join_paths(meson.current_build_dir(), pkg + '-api.xml') diff --git a/pango/meson.build b/pango/meson.build index f36eacfac..f35fe615f 100644 --- a/pango/meson.build +++ b/pango/meson.build @@ -63,7 +63,7 @@ deps = [glib_sharp, cairo_sharp] pango_sharp = library(assembly_name, source_gen, sources, cs_args: ['-unsafe', '-keyfile:' + snk], link_with: deps, - install: true, + install: install, install_dir: lib_install_dir ) @@ -75,7 +75,7 @@ gluegen = custom_target('pangogluegen', library('pangosharpglue-3', gluegen, dependencies: [glib_dep, gio_dep, pango_dep], - install: true) + install: install) install_infos += [assembly_name, pango_sharp.full_path()] pango_sharp_dep = declare_dependency(link_with: deps + [pango_sharp]) diff --git a/parser/meson.build b/parser/meson.build index 547cf6283..cbb7e7854 100644 --- a/parser/meson.build +++ b/parser/meson.build @@ -3,24 +3,29 @@ pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir')) gapi_parser = executable('gapi-parser', 'gapi-parser.cs', install_dir : gapi_installdir, - install: true) + install: install) gapi_parser_data = configuration_data() gapi_parser_data.set('prefix', prefix) gapi_parser_data.set('RUNTIME', runtime) - -configure_file(input: 'gapi3-parser.in', - output: 'gapi3-parser', - configuration : gapi_parser_data, - install_dir: get_option('bindir'), - install: true) - pkg_gapi_parser_data = configuration_data() pkg_gapi_parser_data .set('VERSION', meson.project_version()) -configure_file(input: 'gapi-3.0.pc.in', - output: 'gapi-3.0.pc', - configuration : pkg_gapi_parser_data, - install_dir: pkg_install_dir, - install: true) -install_data('gapi_pp.pl', 'gapi2xml.pl', install_dir: gapi_installdir) +if install + configure_file(input: 'gapi3-parser.in', + output: 'gapi3-parser', + configuration : gapi_parser_data, + install_dir: get_option('bindir')) + configure_file(input: 'gapi-3.0.pc.in', + output: 'gapi-3.0.pc', + configuration : pkg_gapi_parser_data, + install_dir: pkg_install_dir) + install_data('gapi_pp.pl', 'gapi2xml.pl', install_dir: gapi_installdir) +else + configure_file(input: 'gapi3-parser.in', + output: 'gapi3-parser', + configuration : gapi_parser_data) + configure_file(input: 'gapi-3.0.pc.in', + output: 'gapi-3.0.pc', + configuration : pkg_gapi_parser_data) +endif