]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Add support for --target-glib=auto
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 2 Mar 2019 19:56:27 +0000 (20:56 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 17 Mar 2019 18:40:19 +0000 (19:40 +0100)
Determine target-glib according to the available version of glib-2.0.

Fixes https://gitlab.gnome.org/GNOME/vala/issues/761

compiler/valacompiler.vala
doc/valac.1
doc/valadoc.1
vala/valacodecontext.vala
valadoc/valadoc.vala

index 476093e7e50da4d389ef0c64eb2a186d1d3aebb7..7394e45dae3a08671716cde7d0ee674d043aa1fc 100644 (file)
@@ -153,7 +153,7 @@ class Vala.Compiler {
                { "verbose", 'v', 0, OptionArg.NONE, ref verbose_mode, "Print additional messages to the console", null },
                { "no-color", 0, 0, OptionArg.NONE, ref disable_colored_output, "Disable colored output, alias for --color=never", null },
                { "color", 0, OptionFlags.OPTIONAL_ARG, OptionArg.CALLBACK, (void*) option_parse_color, "Enable color output, options are 'always', 'never', or 'auto'", "WHEN" },
-               { "target-glib", 0, 0, OptionArg.STRING, ref target_glib, "Target version of glib for code generation", "MAJOR.MINOR" },
+               { "target-glib", 0, 0, OptionArg.STRING, ref target_glib, "Target version of glib for code generation", "'MAJOR.MINOR', or 'auto'" },
                { "gresources", 0, 0, OptionArg.FILENAME_ARRAY, ref gresources, "XML of gresources", "FILE..." },
                { "gresourcesdir", 0, 0, OptionArg.FILENAME_ARRAY, ref gresources_directories, "Look for resources in DIRECTORY", "DIRECTORY..." },
                { "enable-version-header", 0, 0, OptionArg.NONE, ref enable_version_header, "Write vala build version in generated files", null },
index 275fa6c28d9c734754fce32e91a9da141f9b74b8..3c738eb94ff06800de9b3e5e7118a1dd53d76bc2 100644 (file)
@@ -182,7 +182,7 @@ or \fB--no-color\fR are declared then \fB--color\fR=\fIauto\fR is used where
 output is colored when stderr is a terminal.
 .RE
 .TP
-\fB\-\-target\-glib\fR=\fI\,MAJOR\/\fR.MINOR
+\fB\-\-target\-glib=\fR'MAJOR.MINOR', or 'auto'
 Target version of glib for code generation
 .TP
 \fB\-\-gresources\fR=\fI\,FILE\/\fR...
index 61260e4c8527a90f2f44ef047c65908600a53e05..45d50afad8b42253b947255dafc6470c073389d9 100644 (file)
@@ -107,7 +107,7 @@ Show all warnings
 \fB\-\-no\-color\fR
 Disable colored output
 .TP
-\fB\-\-target\-glib\fR=\fI\,MAJOR\/\fR.MINOR
+\fB\-\-target\-glib=\fR'MAJOR.MINOR', or 'auto'
 Target version of glib for code generation
 .SH BUGS
 https://gitlab.gnome.org/GNOME/vala/issues
index 34543a8d9e73018aeb054aa16aaab40085639590..8b1a78be4cb5fb73698fb968b76d4796463a35a7 100644 (file)
@@ -552,8 +552,20 @@ public class Vala.CodeContext {
         * @param target_glib a string of the format "%d.%d"
         */
        public void set_target_glib_version (string target_glib) {
-               int glib_major = target_glib_major;
-               int glib_minor = target_glib_minor;
+               int glib_major = 0;
+               int glib_minor = 0;
+
+               if (target_glib == "auto") {
+                       var available_glib = pkg_config_modversion ("glib-2.0");
+                       if (available_glib != null && available_glib.scanf ("%d.%d", out glib_major, out glib_minor) >= 2) {
+                               glib_minor -= ++glib_minor % 2;
+                               set_target_glib_version ("%d.%d".printf (glib_major, glib_minor));
+                               return;
+                       }
+               }
+
+               glib_major = target_glib_major;
+               glib_minor = target_glib_minor;
 
                if (target_glib != null && target_glib.scanf ("%d.%d", out glib_major, out glib_minor) != 2
                    || glib_minor % 2 != 0) {
index 1bb91ff0100adfa2d1b5a97bc19cd082c4e83708..6d5093092b4d52403becc81b946a09c8102fec9e 100644 (file)
@@ -117,7 +117,7 @@ public class ValaDoc : Object {
                { "fatal-warnings", 0, 0, OptionArg.NONE, ref fatal_warnings, "Treat warnings as fatal", null },
                { "verbose", 0, 0, OptionArg.NONE, ref verbose, "Show all warnings", null },
                { "no-color", 0, 0, OptionArg.NONE, ref disable_diagnostic_colors, "Disable colored output", null },
-               { "target-glib", 0, 0, OptionArg.STRING, ref target_glib, "Target version of glib for code generation", "MAJOR.MINOR" },
+               { "target-glib", 0, 0, OptionArg.STRING, ref target_glib, "Target version of glib for code generation", "'MAJOR.MINOR', or 'auto'" },
                { OPTION_REMAINING, 0, 0, OptionArg.FILENAME_ARRAY, ref tsources, null, "FILE..." },
 
                { null }