diff --git a/src/perl/scripts2/check_compilers.pl b/src/perl/scripts2/check_compilers.pl index e98201c25c42b0313e6674db748fcf8534da3d2e..e7b02c338da26d4481e8b6fe6604348bd7d4f34c 100755 --- a/src/perl/scripts2/check_compilers.pl +++ b/src/perl/scripts2/check_compilers.pl @@ -15,8 +15,11 @@ my $args = "@ARGV"; my $vb = ($args=~/-v/) ? 1 : 0; my @compilers = ('gcc','clang'); my $compiler_regexp = join('|',@compilers); +my $meson_version = (`meson --version`=~/^(\d+\.\d+\.\d+)/)[0]; # set to 1 to use meson +my $meson = defined $meson_version ? 1 : 0; +my $meson_builddir = "builddir_check_compilers"; -printx "Check binary_c compilers (vb = $vb), logging to $logfile\n"; +printx "Check binary_c compilers (vb = $vb), logging to $logfile, building with ",($meson ? "meson $meson_version" : 'make')."\n"; foreach my $compiler (@compilers) { @@ -89,23 +92,42 @@ sub build # environment for commnads my $env = "unset CC; export CC=$compiler; "; - # run configure + # run configure or meson printx "Configure with $compiler (version $v)\n"; - my $cmd = "$env ./configure 2>/dev/stdout"; + my $cmd = + $meson + ? + "$env rm -rf $meson_builddir; $env meson $meson_builddir --buildtype release" + : + "$env ./configure 2>/dev/stdout"; + printx "CMD $cmd\n"if($vb); my $r = `$cmd`; printx $r if($vb); - if($r=~/Now run .\/make/) + if($meson ? + $r=~/Found ninja/ : + $r=~/Now run .\/make/) { # configure successful : do the build printx "Building\n"; - $cmd = "$env ./make clean 2>/dev/stdout; ./make 2>/dev/stdout"; + $cmd = + $meson ? + "cd $meson_builddir; ninja 2>/dev/stdout" : + "$env ./make clean 2>/dev/stdout; ./make 2>/dev/stdout"; printx "CMD $cmd\n" if($vb); $r = `$cmd`; # clean the results of successful statements - $r =~ s/(?:rm -f|Make on|Done|BUILD|LINK|DONE).*//g; + if($meson) + { + $r =~ s/^\[\d+\/\d+].*//mg; + } + else + { + $r =~ s/(?:rm -f|Make on|Done|BUILD|LINK|DONE).*//g; + + } $r =~ s/\n\s*\n//g; $r =~ s/^\s+//; $r =~ s/\s+$//;