X-Git-Url: https://ruderich.org/simon/gitweb/?p=blhc%2Fblhc.git;a=blobdiff_plain;f=bin%2Fblhc;h=bcae721394c72702bf21630df02e75c71211be77;hp=1d1fc27d6d2a5cdbe613de7c37cdf04105243f1f;hb=77130673acb919d0b1cfed6cfac6bc2338751878;hpb=5b550dc892a6568f9f4ddc71106a7b879ee380c3 diff --git a/bin/blhc b/bin/blhc index 1d1fc27..bcae721 100755 --- a/bin/blhc +++ b/bin/blhc @@ -30,7 +30,9 @@ our $VERSION = '0.01'; # CONSTANTS/VARIABLES # Regex to catch compiler commands. -my $cc_regex = qr/(?:x86_64-linux-gnu-)?(?:(?) { # 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; + # And "ESC(B" which seems to be used on armhf and hurd (not sure what it + # does). + $line =~ s/\033\(B//g; + # Check if this line indicates a non verbose build. my $non_verbose = is_non_verbose_build($line); @@ -325,10 +337,18 @@ while (my $line = <>) { # # `./configure` output. next if not $non_verbose and $line =~ /^checking /; - next if $line =~ /^\s*(?:C|c)ompiler[\s.]*:\s+$cc_regex(?:\s-std=[a-z0-9:+]+)?\s*$/ + next if $line =~ /^\s*(?:C\s+)? + (?:C|c)ompiler[\s.]*:\s+ + $cc_regex + (?:\s-std=[a-z0-9:+]+)?\s*$ + /x or $line =~ /^\s*(?:- )?(?:CC|CXX)\s*=\s*$cc_regex\s*$/ or $line =~ /^\s*-- Check for working (?:C|CXX) compiler: / or $line =~ /^\s*(?:echo )?Using [A-Z_]+\s*=\s*/; + # Debian buildd output. + next if $line =~ /^\s*Depends: .*?$cc_regex.*?$/ + and $line !~ /\s-./; # option, prevent false negatives + push @input, $line; }