]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add --shared-library option for GIR files
authorDavid Lechner <david@lechnology.com>
Tue, 11 Aug 2015 09:57:52 +0000 (11:57 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Tue, 11 Aug 2015 09:58:41 +0000 (11:58 +0200)
Fixes bug 585116

codegen/valagirwriter.vala
compiler/valacompiler.vala
doc/valac.1

index f0a75e29223f468407c59dc18444ecdb032df310..3a70e683cfa58dc641677a0f04083777391632c9 100644 (file)
@@ -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);
                }
index 11ccb86665240e9a42f739e9f668ceb744141494..ac16d24977f0bca5e6dea03ec0102a77034dfeca 100644 (file)
@@ -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);
                                        }
                                }
 
index ff24bf584b7748c91bf64cf936ea6897bbef7dec..5000a262a2592198ecc9c6278219c3a2f753256f 100644 (file)
@@ -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