]> ruderich.org/simon Gitweb - blhc/blhc.git/commitdiff
Support colored non-verbose build systems.
authorSimon Ruderich <simon@ruderich.org>
Sat, 17 Mar 2012 23:25:36 +0000 (00:25 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sat, 17 Mar 2012 23:25:36 +0000 (00:25 +0100)
bin/blhc
t/logs/verbose-build
t/tests.t

index 1d1fc27d6d2a5cdbe613de7c37cdf04105243f1f..a884e11407188fcf0e679416e695150cbf4f4b08 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -166,7 +166,7 @@ sub is_non_verbose_build {
     my ($line, $next_line, $skip_ref) = @_;
 
     if (not ($line =~ /^checking if you want to see long compiling messages\.\.\. no/
-                or $line =~ /^\s*(?:CC|CCLD)\s+(.+?)$/
+                or $line =~ /^\s*\[?(?:CC|CCLD|LD)\]?\s+(.+?)$/
                 or $line =~ /^\s*(?:C|c)ompiling\s+(.+?)(?:\.\.\.)?$/
                 or $line =~ /^\s*(?:B|b)uilding (?:program|shared library)\s+(.+?)$/
                 or $line =~ /^\s*\[[\d ]+%\] Building (?:C|CXX) object (.+?)$/)) {
@@ -282,6 +282,13 @@ while (my $line = <>) {
     # Ignore compiler warnings for now.
     next if $line =~ /$warning_regex/;
 
+    # Remove all ANSI color sequences which are sometimes used in non-verbose
+    # builds.
+    $line = Term::ANSIColor::colorstrip($line);
+    # Also strip '\0xf' (delete previous character), used by Elink's build
+    # system.
+    $line =~ s/\x0f//g;
+
     # Check if this line indicates a non verbose build.
     my $non_verbose = is_non_verbose_build($line);
 
index c54e199e3adf750196c20310e889f058675c2ab5..2ae94d987ca1ce7a6f03a2da5da24417128ccee5 100644 (file)
@@ -16,6 +16,19 @@ checking whether compiling and linking against OpenSSL works... yes
 ...
   CCLD   libtest.la
 
+      [CC]   src/test-a.o
+      [CC]   src/test-b.o
+      [CC]   src/test_c.o
+...
+      [LD]   src/test.o
+
+# Colored build output.
+      [\e[36mCC\e[m\ f]   src/test-a.o
+      [\e[36mCC\e[m\ f]   src/test-b.o
+      [\e[36mCC\e[m\ f]   src/test_c.o
+...
+      [\e[32mLD\e[m\ f]   src/test.o
+
 CC modules/server/test.c
 
 Byte-compiling python modules...
index f336cada2773e6e5afff5780c616a3d9aa19d3ca..6ec7c6938928aa1f6f538a84f85c9ef6e556e9f6 100644 (file)
--- a/t/tests.t
+++ b/t/tests.t
@@ -309,6 +309,14 @@ NONVERBOSE BUILD:   CC     libtest-b.lo
 NONVERBOSE BUILD:   CC     libtest_c.lo
 NONVERBOSE BUILD:   CC     libtest-d.lo
 NONVERBOSE BUILD:   CCLD   libtest.la
+NONVERBOSE BUILD:       [CC]   src/test-a.o
+NONVERBOSE BUILD:       [CC]   src/test-b.o
+NONVERBOSE BUILD:       [CC]   src/test_c.o
+NONVERBOSE BUILD:       [LD]   src/test.o
+NONVERBOSE BUILD:       [CC]   src/test-a.o
+NONVERBOSE BUILD:       [CC]   src/test-b.o
+NONVERBOSE BUILD:       [CC]   src/test_c.o
+NONVERBOSE BUILD:       [LD]   src/test.o
 NONVERBOSE BUILD: CC modules/server/test.c
 NONVERBOSE BUILD: Compiling test/test.cc to ../build/test/test.o
 NONVERBOSE BUILD: Building shared library ../build/test/libtest.so.1.2.3