summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2007-10-08 19:25:27 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-10-08 19:25:27 +0000
commit3169d48206967af97993bb6d0a1e7dd8b712d767 (patch)
tree37ce9311aae599a68d9bb9cf8401b90565b6530a
parentcb9ee7c645662f5f5414647075748d88c487ef5e (diff)
downloadvala-3169d48206967af97993bb6d0a1e7dd8b712d767.tar.gz
use .vapi as file extension for bindings, fixes bug 483840
2007-10-08 Juerg Billeter <j@bitron.ch> * vala/valaparser.vala, compiler/valacompiler.vala: use .vapi as file extension for bindings, fixes bug 483840 svn path=/trunk/; revision=642
-rw-r--r--ChangeLog5
-rw-r--r--compiler/valacompiler.vala27
-rw-r--r--vala/valaparser.vala2
3 files changed, 31 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 49edb980a..3b5fe1e95 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2007-10-08 Jürg Billeter <j@bitron.ch>
+ * vala/valaparser.vala, compiler/valacompiler.vala: use .vapi as file
+ extension for bindings, fixes bug 483840
+
+2007-10-08 Jürg Billeter <j@bitron.ch>
+
* gobject/valaccodegenerator.vala: fix ref array parameters
2007-10-05 Jürg Billeter <j@bitron.ch>
diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala
index f8aae3845..8b82f0b63 100644
--- a/compiler/valacompiler.vala
+++ b/compiler/valacompiler.vala
@@ -82,7 +82,8 @@ class Vala.Compiler : Object {
}
private string get_package_path (string! pkg) {
- string basename = "%s.vala".printf (pkg);
+ string basename = "%s.vapi".printf (pkg);
+ string basename_old = "%s.vala".printf (pkg);
if (vapi_directories != null) {
foreach (string vapidir in vapi_directories) {
@@ -90,6 +91,10 @@ class Vala.Compiler : Object {
if (FileUtils.test (filename, FileTest.EXISTS)) {
return filename;
}
+ var filename_old = Path.build_filename (vapidir, basename_old);
+ if (FileUtils.test (filename_old, FileTest.EXISTS)) {
+ return filename_old;
+ }
}
}
@@ -98,16 +103,31 @@ class Vala.Compiler : Object {
return filename;
}
+ string filename_old = Path.build_filename (Config.PACKAGE_DATADIR, "vapi", basename_old);
+ if (FileUtils.test (filename_old, FileTest.EXISTS)) {
+ return filename_old;
+ }
+
filename = Path.build_filename ("/usr/local/share/vala/vapi", basename);
if (FileUtils.test (filename, FileTest.EXISTS)) {
return filename;
}
+ filename_old = Path.build_filename ("/usr/local/share/vala/vapi", basename_old);
+ if (FileUtils.test (filename_old, FileTest.EXISTS)) {
+ return filename_old;
+ }
+
filename = Path.build_filename ("/usr/share/vala/vapi", basename);
if (FileUtils.test (filename, FileTest.EXISTS)) {
return filename;
}
+ filename_old = Path.build_filename ("/usr/share/vala/vapi", basename_old);
+ if (FileUtils.test (filename_old, FileTest.EXISTS)) {
+ return filename_old;
+ }
+
return null;
}
@@ -194,10 +214,12 @@ class Vala.Compiler : Object {
if (FileUtils.test (source, FileTest.EXISTS)) {
if (source.has_suffix (".vala")) {
context.add_source_file (new SourceFile (context, source));
+ } else if (source.has_suffix (".vapi")) {
+ context.add_source_file (new SourceFile (context, source, true));
} else if (source.has_suffix (".c")) {
context.add_c_source_file (source);
} else {
- Report.error (null, "%s is not a supported source file type. Only .vala and .c files are supported.".printf (source));
+ Report.error (null, "%s is not a supported source file type. Only .vala, .vapi, and .c files are supported.".printf (source));
}
} else {
Report.error (null, "%s not found".printf (source));
@@ -259,6 +281,7 @@ class Vala.Compiler : Object {
if (library != null) {
var interface_writer = new InterfaceWriter ();
interface_writer.write_file (context, "%s.vala".printf (library));
+ interface_writer.write_file (context, "%s.vapi".printf (library));
library = null;
}
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index b502aacdd..cc4039abe 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -40,7 +40,7 @@ public class Vala.Parser : CodeVisitor {
}
public override void visit_source_file (SourceFile! source_file) {
- if (source_file.filename.has_suffix (".vala")) {
+ if (source_file.filename.has_suffix (".vala") || source_file.filename.has_suffix (".vapi")) {
parse_file (source_file);
source_file.comment = _file_comment;
}