diff options
author | David Lechner <david@lechnology.com> | 2015-08-11 11:57:52 +0200 |
---|---|---|
committer | Luca Bruno <lucabru@src.gnome.org> | 2015-08-11 11:58:41 +0200 |
commit | b51ed806a1964191ab3c351eb5d84ca0e6f8987a (patch) | |
tree | de943d3bb036bad3a584d2d2b4496d6f444ef696 | |
parent | e9504027d921392cd60fb8d830a532bb0b7b22e7 (diff) | |
download | vala-b51ed806a1964191ab3c351eb5d84ca0e6f8987a.tar.gz |
Add --shared-library option for GIR files
Fixes bug 585116
-rw-r--r-- | codegen/valagirwriter.vala | 7 | ||||
-rw-r--r-- | compiler/valacompiler.vala | 4 | ||||
-rw-r--r-- | doc/valac.1 | 3 |
3 files changed, 12 insertions, 2 deletions
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index f0a75e292..3a70e683c 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -30,6 +30,7 @@ public class Vala.GIRWriter : CodeVisitor { private string directory; private string gir_namespace; private string gir_version; + private string gir_shared_library; protected virtual string? get_interface_comment (Interface iface) { return null; @@ -141,11 +142,12 @@ public class Vala.GIRWriter : CodeVisitor { * @param context a code context * @param filename a relative or absolute filename */ - public void write_file (CodeContext context, string directory, string gir_filename, string gir_namespace, string gir_version, string package) { + public void write_file (CodeContext context, string directory, string gir_filename, string gir_namespace, string gir_version, string package, string? gir_shared_library) { this.context = context; this.directory = directory; this.gir_namespace = gir_namespace; this.gir_version = gir_version; + this.gir_shared_library = gir_shared_library; var root_symbol = context.root; var glib_ns = root_symbol.scope.lookup ("GLib"); @@ -256,6 +258,9 @@ public class Vala.GIRWriter : CodeVisitor { write_indent (); buffer.append_printf ("<namespace name=\"%s\" version=\"%s\"", gir_namespace, gir_version); string? cprefix = CCodeBaseModule.get_ccode_prefix (ns); + if (gir_shared_library != null) { + buffer.append_printf(" shared-library=\"%s\"", gir_shared_library); + } if (cprefix != null) { buffer.append_printf (" c:prefix=\"%s\"", cprefix); } diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala index 11ccb8666..ac16d2497 100644 --- a/compiler/valacompiler.vala +++ b/compiler/valacompiler.vala @@ -40,6 +40,7 @@ class Vala.Compiler { static string[] metadata_directories; static string vapi_filename; static string library; + static string shared_library; static string gir; [CCode (array_length = false, array_null_terminated = true)] static string[] packages; @@ -102,6 +103,7 @@ class Vala.Compiler { { "pkg", 0, 0, OptionArg.STRING_ARRAY, ref packages, "Include binding for PACKAGE", "PACKAGE..." }, { "vapi", 0, 0, OptionArg.FILENAME, ref vapi_filename, "Output VAPI file name", "FILE" }, { "library", 0, 0, OptionArg.STRING, ref library, "Library name", "NAME" }, + { "shared-library", 0, 0, OptionArg.STRING, ref shared_library, "Shared library name used in generated gir", "NAME" }, { "gir", 0, 0, OptionArg.STRING, ref gir, "GObject-Introspection repository file name", "NAME-VERSION.gir" }, { "basedir", 'b', 0, OptionArg.FILENAME, ref basedir, "Base source directory", "DIRECTORY" }, { "directory", 'd', 0, OptionArg.FILENAME, ref directory, "Output directory", "DIRECTORY" }, @@ -409,7 +411,7 @@ class Vala.Compiler { gir_directory = context.directory; } - gir_writer.write_file (context, gir_directory, gir, gir_namespace, gir_version, library); + gir_writer.write_file (context, gir_directory, gir, gir_namespace, gir_version, library, shared_library); } } diff --git a/doc/valac.1 b/doc/valac.1 index ff24bf584..5000a262a 100644 --- a/doc/valac.1 +++ b/doc/valac.1 @@ -36,6 +36,9 @@ Output VAPI file name .B \--library=\fINAME\fR Library name .TP +.B \--shared-library=\fINAME\fR +Shared library name used in generated .gir +.TP .B \--gir=\fINAME\fR-\fIVERSION\fR.gir GObject-Introspection repository file name .TP |