[vala] vala: Strip "basedir" from Source.filename attribute



commit 96cc5c9c2aa21d063656773c4ab436655991c302
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Mon May 20 20:53:02 2019 +0200

    vala: Strip "basedir" from Source.filename attribute
    
    This is gives some control over the written relative filenames and fixes
    make distcheck due of out-of-source-dir building.

 tests/fastvapi/Makefile.am                |  1 +
 tests/fastvapi/fastvapitest.vapi-expected | 36 +++++++++++++++----------------
 vala/valacodewriter.vala                  |  6 +++++-
 3 files changed, 24 insertions(+), 19 deletions(-)
---
diff --git a/tests/fastvapi/Makefile.am b/tests/fastvapi/Makefile.am
index e58523ba4..b960ac4b1 100644
--- a/tests/fastvapi/Makefile.am
+++ b/tests/fastvapi/Makefile.am
@@ -5,6 +5,7 @@ check-fastvapi: $(top_builddir)/compiler/valac
                -C \
                --disable-version-header \
                --fast-vapi fastvapitest.vapi \
+               --basedir $(srcdir) \
                $(srcdir)/fastvapitest.vala; \
        tail -n +3 fastvapitest.vapi | diff -wu $(srcdir)/fastvapitest.vapi-expected - || exit 1; \
        rm -f fastvapitest.vapi fastvapitest.c
diff --git a/tests/fastvapi/fastvapitest.vapi-expected b/tests/fastvapi/fastvapitest.vapi-expected
index 55540ab08..0542a563d 100644
--- a/tests/fastvapi/fastvapitest.vapi-expected
+++ b/tests/fastvapi/fastvapitest.vapi-expected
@@ -1,44 +1,44 @@
 using GLib;
 
-[Source (filename = "./fastvapitest.vala", line = 1, column = 1)]
+[Source (filename = "fastvapitest.vala", line = 1, column = 1)]
 namespace FastVapi {
-       [Source (filename = "./fastvapitest.vala", line = 23, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 23, column = 2)]
        public class Test : Object {
-               [Source (filename = "./fastvapitest.vala", line = 26, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 26, column = 3)]
                public int field;
-               [Source (filename = "./fastvapitest.vala", line = 30, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 30, column = 3)]
                public Test ();
-               [Source (filename = "./fastvapitest.vala", line = 33, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 33, column = 3)]
                public void method ();
-               [Source (filename = "./fastvapitest.vala", line = 28, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 28, column = 3)]
                public string property { get; set construct; }
-               [Source (filename = "./fastvapitest.vala", line = 24, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 24, column = 3)]
                public signal void some_signal (int param);
        }
-       [Source (filename = "./fastvapitest.vala", line = 16, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 16, column = 2)]
        public interface InterfaceTest : Object {
-               [Source (filename = "./fastvapitest.vala", line = 18, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 18, column = 3)]
                public abstract void method (int param);
-               [Source (filename = "./fastvapitest.vala", line = 17, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 17, column = 3)]
                public abstract int property { get; set construct; }
        }
-       [Source (filename = "./fastvapitest.vala", line = 12, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 12, column = 2)]
        public struct TestStruct {
-               [Source (filename = "./fastvapitest.vala", line = 13, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 13, column = 3)]
                public int field_name;
        }
-       [Source (filename = "./fastvapitest.vala", line = 4, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 4, column = 2)]
        public enum EnumTest {
-               [Source (filename = "./fastvapitest.vala", line = 5, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 5, column = 3)]
                VALUE
        }
-       [Source (filename = "./fastvapitest.vala", line = 8, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 8, column = 2)]
        public errordomain ErrorTest {
-               [Source (filename = "./fastvapitest.vala", line = 9, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 9, column = 3)]
                FAILED
        }
-       [Source (filename = "./fastvapitest.vala", line = 21, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 21, column = 2)]
        public delegate bool DelegateTest (int param);
-       [Source (filename = "./fastvapitest.vala", line = 2, column = 2)]
+       [Source (filename = "fastvapitest.vala", line = 2, column = 2)]
        public const int CONSTANT = 42;
 }
diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala
index bdbc077a7..1f223b6b8 100644
--- a/vala/valacodewriter.vala
+++ b/vala/valacodewriter.vala
@@ -1630,7 +1630,11 @@ public class Vala.CodeWriter : CodeVisitor {
                        var source_reference = node.source_reference;
                        if (source_reference != null) {
                                write_indent ();
-                               stream.puts ("[Source (filename = \"%s\", line = %i, column = %i)]".printf 
(source_reference.file.get_relative_filename (), source_reference.begin.line, source_reference.begin.column));
+                               string filename = source_reference.file.filename;
+                               if (filename.has_prefix (context.basedir)) {
+                                       filename = filename.substring (context.basedir.length + 1);
+                               }
+                               stream.puts ("[Source (filename = \"%s\", line = %i, column = %i)]".printf 
(filename, source_reference.begin.line, source_reference.begin.column));
                                write_newline ();
                        }
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]