[valadoc] Support --target-glib argument
- From: Florian Brosch <flobrosch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [valadoc] Support --target-glib argument
- Date: Fri, 10 Feb 2012 07:07:08 +0000 (UTC)
commit f6e00b652424dcc034b2cdbdc61b3d8385dc53f1
Author: Evan Nemerson <evan coeus-group com>
Date: Fri Feb 10 07:35:52 2012 +0100
Support --target-glib argument
src/driver/0.14.x/treebuilder.vala | 15 ++++++++++++++-
src/driver/0.16.x/treebuilder.vala | 14 ++++++++++++++
src/libvaladoc/settings.vala | 5 +++++
src/valadoc/valadoc.vala | 3 +++
4 files changed, 36 insertions(+), 1 deletions(-)
---
diff --git a/src/driver/0.14.x/treebuilder.vala b/src/driver/0.14.x/treebuilder.vala
index 556cb08..4b86e6d 100644
--- a/src/driver/0.14.x/treebuilder.vala
+++ b/src/driver/0.14.x/treebuilder.vala
@@ -764,7 +764,6 @@ message ("--%s--", symbol.name);
context.directory = context.basedir;
}
-
// add default packages:
if (settings.profile == "gobject-2.0" || settings.profile == "gobject" || settings.profile == null) {
context.profile = Vala.Profile.GOBJECT;
@@ -793,6 +792,20 @@ message ("--%s--", symbol.name);
Vala.Report.error (null, "This version of valac only supports GLib 2");
}
+ if (settings.target_glib != null && settings.target_glib.scanf ("%d.%d", out glib_major, out glib_minor) != 2) {
+ Vala.Report.error (null, "Invalid format for --target-glib");
+ }
+
+ context.target_glib_major = glib_major;
+ context.target_glib_minor = glib_minor;
+ if (context.target_glib_major != 2) {
+ Vala.Report.error (null, "This version of valac only supports GLib 2");
+ }
+
+ for (int i = 16; i <= glib_minor; i += 2) {
+ context.add_define ("GLIB_2_%d".printf (i));
+ }
+
// default packages
if (!this.add_package (context, "glib-2.0")) { //
Vala.Report.error (null, "glib-2.0 not found in specified Vala API directories");
diff --git a/src/driver/0.16.x/treebuilder.vala b/src/driver/0.16.x/treebuilder.vala
index 4813bcd..555a313 100644
--- a/src/driver/0.16.x/treebuilder.vala
+++ b/src/driver/0.16.x/treebuilder.vala
@@ -751,6 +751,20 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
Vala.Report.error (null, "This version of valac only supports GLib 2");
}
+ if (settings.target_glib != null && settings.target_glib.scanf ("%d.%d", out glib_major, out glib_minor) != 2) {
+ Vala.Report.error (null, "Invalid format for --target-glib");
+ }
+
+ context.target_glib_major = glib_major;
+ context.target_glib_minor = glib_minor;
+ if (context.target_glib_major != 2) {
+ Vala.Report.error (null, "This version of valac only supports GLib 2");
+ }
+
+ for (int i = 16; i <= glib_minor; i += 2) {
+ context.add_define ("GLIB_2_%d".printf (i));
+ }
+
// default packages
if (!this.add_package (context, "glib-2.0")) { //
Vala.Report.error (null, "glib-2.0 not found in specified Vala API directories");
diff --git a/src/libvaladoc/settings.vala b/src/libvaladoc/settings.vala
index afbdbfd..d901dd1 100755
--- a/src/libvaladoc/settings.vala
+++ b/src/libvaladoc/settings.vala
@@ -146,6 +146,11 @@ public class Valadoc.Settings : Object {
*/
public string[] gir_directories;
+ /**
+ * GLib version to target.
+ */
+ public string target_glib;
+
public string gir_namespace;
public string gir_version;
diff --git a/src/valadoc/valadoc.vala b/src/valadoc/valadoc.vala
index 46b8b1b..f03426b 100755
--- a/src/valadoc/valadoc.vala
+++ b/src/valadoc/valadoc.vala
@@ -73,6 +73,7 @@ public class ValaDoc : Object {
private static string[] tsources;
[CCode (array_length = false, array_null_terminated = true)]
private static string[] packages;
+ static string target_glib;
private const GLib.OptionEntry[] options = {
{ "directory", 'o', 0, OptionArg.FILENAME, ref directory, "Output directory", "DIRECTORY" },
@@ -113,6 +114,7 @@ public class ValaDoc : Object {
{ "force", 0, 0, OptionArg.NONE, ref force, "force", null },
{ "verbose", 0, 0, OptionArg.NONE, ref verbose, "Show all warnings", null },
+ { "target-glib", 0, 0, OptionArg.STRING, ref target_glib, "Target version of glib for code generation", "MAJOR.MINOR" },
{ "", 0, 0, OptionArg.FILENAME_ARRAY, ref tsources, null, "FILE..." },
{ null }
@@ -224,6 +226,7 @@ public class ValaDoc : Object {
settings.vapi_directories = vapi_directories;
settings.metadata_directories = metadata_directories;
settings.gir_directories = gir_directories;
+ settings.target_glib = target_glib;
settings.source_files = tsources;
settings.packages = packages;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]