X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fconfigure.pm;h=e314e6d159305cfe0a6082072f576a04616874f8;hb=a2461fb7e1c28e28e64b61256d7a547162a83f6e;hp=84f076483c6b7322a24cbb5633fc4d417aa6e141;hpb=aaae660fee19a56c752bdec84da86c4b1e779af0;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/configure.pm b/make/configure.pm index 84f076483..e314e6d15 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -22,11 +22,12 @@ BEGIN { - require 5.8.0; + require 5.10.0; } package make::configure; +use feature ':5.10'; use strict; use warnings FATAL => qw(all); @@ -175,18 +176,18 @@ EOH sub cmd_update { print_error "You have not run $0 before. Please do this before trying to update the generated files." unless -f CONFIGURE_CACHE_FILE; - print "Updating...\n"; + say 'Updating...'; my %config = read_configure_cache(); my %compiler = get_compiler_info($config{CXX}); my %version = get_version(); parse_templates(\%config, \%compiler, \%version); - print "Update complete!\n"; + say 'Update complete!'; exit 0; } sub run_test($$;$) { my ($what, $result, $adjective) = @_; - $adjective ||= 'available'; + $adjective //= 'available'; print_format "Checking whether <|GREEN $what|> is $adjective ... "; print_format $result ? "<|GREEN yes|>\n" : "<|RED no|>\n"; return $result; @@ -195,7 +196,7 @@ sub run_test($$;$) { sub test_file($$;$) { my ($compiler, $file, $args) = @_; my $status = 0; - $args ||= ''; + $args //= ''; $status ||= system "$compiler -o __test_$file make/test/$file $args >/dev/null 2>&1"; $status ||= system "./__test_$file >/dev/null 2>&1"; unlink "./__test_$file"; @@ -204,7 +205,7 @@ sub test_file($$;$) { sub test_header($$;$) { my ($compiler, $header, $args) = @_; - $args ||= ''; + $args //= ''; open(COMPILER, "| $compiler -E - $args >/dev/null 2>&1") or return 0; print COMPILER "#include <$header>"; close(COMPILER); @@ -228,8 +229,8 @@ sub write_configure_cache(%) { my %config = @_; open(CACHE, '>', CONFIGURE_CACHE_FILE) or print_error "unable to write ${\CONFIGURE_CACHE_FILE}: $!"; while (my ($key, $value) = each %config) { - $value = '' unless defined $value; - print CACHE "$key=\"$value\"\n"; + $value //= ''; + say CACHE "$key=\"$value\""; } close(CACHE); } @@ -237,9 +238,11 @@ sub write_configure_cache(%) { sub get_compiler_info($) { my $binary = shift; my $version = `$binary -v 2>&1`; - if ($version =~ /clang\sversion\s(\d+\.\d+)/i || $version =~ /^apple.+\(based\son\sllvm\s(\d+\.\d+)/i) { + if ($version =~ /Apple\sLLVM\sversion\s(\d+\.\d+)/i) { # Apple version their LLVM releases slightly differently to the mainline LLVM. # See https://trac.macports.org/wiki/XcodeVersionInfo for more information. + return (NAME => 'AppleClang', VERSION => $1); + } elsif ($version =~ /clang\sversion\s(\d+\.\d+)/i) { return (NAME => 'Clang', VERSION => $1); } elsif ($version =~ /gcc\sversion\s(\d+\.\d+)/i) { return (NAME => 'GCC', VERSION => $1); @@ -251,7 +254,7 @@ sub get_compiler_info($) { sub find_compiler { my @compilers = qw(c++ g++ clang++ icpc); - foreach my $compiler (shift || @compilers) { + foreach my $compiler (shift // @compilers) { return $compiler if __test_compiler $compiler; return "xcrun $compiler" if $^O eq 'darwin' && __test_compiler "xcrun $compiler"; } @@ -269,7 +272,7 @@ sub get_property($$;$) } } close(MODULE); - return defined $default ? $default : ''; + return $default // ''; } sub parse_templates($$$) { @@ -418,7 +421,7 @@ sub parse_templates($$$) { print_format "Writing <|GREEN $target|> ...\n"; open(TARGET, '>', $target) or print_error "unable to write $_: $!"; foreach (@final_lines) { - print TARGET $_, "\n"; + say TARGET $_; } close(TARGET);