diff options
author | Vladislav Vaintroub <vvaintroub@mysql.com> | 2010-02-22 20:55:27 +0100 |
---|---|---|
committer | Vladislav Vaintroub <vvaintroub@mysql.com> | 2010-02-22 20:55:27 +0100 |
commit | f4284ba6bdbe682b9d6737ba2d8ac9c7fbc1f0f5 (patch) | |
tree | ba5b9d130ccf6c03bfdd4791bbc55d2db4455327 /cmake/configure.pl | |
parent | e605213c2a52bb0991853acd9a9d42897613abd6 (diff) | |
download | mariadb-git-f4284ba6bdbe682b9d6737ba2d8ac9c7fbc1f0f5.tar.gz |
Fix BUILD/compile-pentium64-xxx scripts, when ccache is present.
Fix contains of :
- splitting CC/CXX if there are more that 2 space-delimited tokens, add the rest to CFLAGS
(in this case CC was set to "ccache gcc --pipe", and this broke recognition of gcc compiler
as CMake understands CC consisting of 2 space delimited tokens but not more)
- add my_new.cc to mysys fle list if C++ operator new is not found. Always, not only
for gcc (the original problem was that missing operator new when compiling with CXX=gcc)
Diffstat (limited to 'cmake/configure.pl')
-rw-r--r-- | cmake/configure.pl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/cmake/configure.pl b/cmake/configure.pl index 52c57011ce0..5886a554789 100644 --- a/cmake/configure.pl +++ b/cmake/configure.pl @@ -38,6 +38,38 @@ sub set_installdir } } +# CMake understands CC and CXX env.variables correctly, if they contain 1 or 2 tokens +# e.g CXX=gcc and CXX="ccache gcc" are ok. However it could have a problem if there +# (recognizing gcc) with more tokens ,e.g CXX="ccache gcc --pipe". +# The problem is simply fixed by splitting compiler and flags, e.g +# CXX="ccache gcc --pipe" => CXX=ccache gcc CXXFLAGS=--pipe + +sub check_compiler +{ + my ($varname, $flagsvarname) = @_; + my @tokens = split(/ /,$ENV{$varname}); + if($#tokens >= 2) + { + $ENV{$varname} = $tokens[0]." ".$tokens[1]; + my $flags; + + for(my $i=2; $i<=$#tokens; $i++) + { + $flags= $flags." ".$tokens[$i]; + } + if(defined $ENV{$flagsvarname}) + { + $flags = $flags." ".$ENV{$flagsvarname}; + } + $ENV{$flagsvarname}=$flags; + print("$varname=$ENV{$varname}\n"); + print("$flagsvarname=$ENV{$flagsvarname}\n"); + } +} + +check_compiler("CC", "CFLAGS"); +check_compiler("CXX", "CXXFLAGS"); + foreach my $option (@ARGV) { if (substr ($option, 0, 2) == "--") |