From 1ed6500cf98dfd11d853d4255edbe30a2d6f0a3d Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 17 Nov 2009 04:45:11 +0100 Subject: [PATCH] Support out of source build with the wrapper configure.pl script --- cmake/configure.pl | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/cmake/configure.pl b/cmake/configure.pl index ee7846b9c36..3768b046530 100644 --- a/cmake/configure.pl +++ b/cmake/configure.pl @@ -1,22 +1,35 @@ #!/usr/bin/perl -use Switch; +use strict; +use Cwd 'abs_path'; +use File::Basename; -my $cmakeargs=""; -foreach $option (@ARGV) +my $cmakeargs = ""; + +# Find source root directory +# Assume this script is in /cmake +my $srcdir = dirname(dirname(abs_path($0))); + +foreach my $option (@ARGV) { + if (substr ($option, 0, 2) == "--") { $option = substr($option, 2); } + if($option =~ /srcdir/) + { + $srcdir = substr($option,7); + next; + } if($option =~ /help/) { - system("cmake -LH"); + system("cmake ${srcdir} -LH"); exit(0); } if($option =~ /with-plugins=/) { my @plugins= split(/,/, substr($option,13)); - foreach $p (@plugins) + foreach my $p (@plugins) { $p =~ s/-/_/g; $cmakeargs = $cmakeargs." -DWITH_".uc($p)."=1"; @@ -60,12 +73,12 @@ foreach $option (@ARGV) $cmakeargs = $cmakeargs." -DCMAKE_INSTALL_PREFIX=".$cmake_install_prefix; next; } - if ($options =~ /extra-charsets=all/) + if ($option =~ /extra-charsets=all/) { $cmakeargs = $cmakeargs." -DWITH_CHARSETS=all"; next; } - if ($options =~ /extra-charsets=complex/) + if ($option =~ /extra-charsets=complex/) { $cmakeargs = $cmakeargs." -DWITH_CHARSETS=complex"; next; @@ -74,6 +87,7 @@ foreach $option (@ARGV) $option =~ s/-/_/g; $cmakeargs = $cmakeargs." -D".$option."=1"; } -print("configure.pl : calling cmake . $cmakeargs\n"); -my $rc = system("cmake . $cmakeargs"); + +print("configure.pl : calling cmake $srcdir $cmakeargs\n"); +my $rc = system("cmake $srcdir $cmakeargs"); exit($rc);