# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
use strict;
use Cwd 'abs_path';
use File::Basename;
my $cmakeargs = "";
# Find source root directory # Assume this script is in <srcroot>/cmake
my $srcdir = dirname(dirname(abs_path($0)));
my $cmake_install_prefix="";
my $just_print= 0;
# Sets installation directory, bindir, libdir, libexecdir etc # the equivalent CMake variables are given without prefix # e.g if --prefix is /usr and --bindir is /usr/bin # then cmake variable (INSTALL_BINDIR) must be just "bin"
sub set_installdir
{
my($path, $varname) = @_;
my $prefix_length = length($cmake_install_prefix); if (($prefix_length > 0) && (index($path,$cmake_install_prefix) == 0))
{ # path is under the prefix, so remove the prefix and maybe following "/"
$path = substr($path, $prefix_length); if(length($path) > 0)
{
my $char = substr($path, 0, 1); if($char eq "/")
{
$path= substr($path, 1);
}
} if(length($path) > 0)
{
$cmakeargs = $cmakeargs." -D".$varname."=".$path;
}
}
}
# 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;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.