[vala/staging: 3/7] vala: Add support for --target-glib=auto
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging: 3/7] vala: Add support for --target-glib=auto
- Date: Mon, 18 Mar 2019 09:35:55 +0000 (UTC)
commit f4b86c1e2aa0b74f843fc64de919390f6af46952
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Sat Mar 2 20:56:27 2019 +0100
vala: Add support for --target-glib=auto
Determine target-glib according to the available version of glib-2.0.
Fixes https://gitlab.gnome.org/GNOME/vala/issues/761
compiler/valacompiler.vala | 2 +-
doc/valac.1 | 2 +-
doc/valadoc.1 | 2 +-
vala/valacodecontext.vala | 16 ++++++++++++++--
valadoc/valadoc.vala | 2 +-
5 files changed, 18 insertions(+), 6 deletions(-)
---
diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala
index 476093e7e..7394e45da 100644
--- a/compiler/valacompiler.vala
+++ b/compiler/valacompiler.vala
@@ -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 },
diff --git a/doc/valac.1 b/doc/valac.1
index 275fa6c28..3c738eb94 100644
--- a/doc/valac.1
+++ b/doc/valac.1
@@ -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...
diff --git a/doc/valadoc.1 b/doc/valadoc.1
index 61260e4c8..45d50afad 100644
--- a/doc/valadoc.1
+++ b/doc/valadoc.1
@@ -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
diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
index 34543a8d9..8b1a78be4 100644
--- a/vala/valacodecontext.vala
+++ b/vala/valacodecontext.vala
@@ -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) {
diff --git a/valadoc/valadoc.vala b/valadoc/valadoc.vala
index 1bb91ff01..6d5093092 100644
--- a/valadoc/valadoc.vala
+++ b/valadoc/valadoc.vala
@@ -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 }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]