From c8ad61cdba0348c1d1ea1000b99ba83496b71bf1 Mon Sep 17 00:00:00 2001 From: Modestas Vainius Date: Mon, 29 Jun 2009 19:11:42 +0300 Subject: Rename enforce_out_of_source_building() to prefer_ Also add enforce_out_of_source_building() for clarity which does not take any parameters. Now both have a clear name and no confusing parameter combinations. Signed-off-by: Modestas Vainius --- Debian/Debhelper/Buildsystem.pm | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'Debian/Debhelper/Buildsystem.pm') diff --git a/Debian/Debhelper/Buildsystem.pm b/Debian/Debhelper/Buildsystem.pm index c63f8153..e2037b5f 100644 --- a/Debian/Debhelper/Buildsystem.pm +++ b/Debian/Debhelper/Buildsystem.pm @@ -89,6 +89,7 @@ sub _set_builddir { $this->{builddir} = undef; } } + return $this->{builddir}; } # This instance method is called to check if the build system is able @@ -117,17 +118,17 @@ sub enforce_in_source_building { } } -# Derived class can call this method in its constructor to enforce -# out of source building even if the user didn't request it. However, -# if 'builddir' named parameter is passed, accept its value as the -# build directory even if it matches the source directory (meaning out -# of source is only prefered to in source, not enforced). -sub enforce_out_of_source_building { +# Derived class can call this method in its constructor to *prefer* +# out of source building. Unless build directory has already been +# specified building will proceed in the DEFAULT_BUILD_DIRECTORY or +# the one specified in the 'builddir' named parameter (which may +# match the source directory). Typically you should pass @_ from +# the constructor to this call. +sub prefer_out_of_source_building { my $this=shift; my %args=@_; if (!defined $this->get_builddir()) { - $this->_set_builddir($args{builddir}); - if (!defined $this->get_builddir() && !$args{builddir}) { + if (!$this->_set_builddir($args{builddir}) && !$args{builddir}) { # If we are here, DEFAULT_BUILD_DIRECTORY matches # the source directory, building might fail. error("default build directory is the same as the source directory." . @@ -136,6 +137,15 @@ sub enforce_out_of_source_building { } } +# Derived class can call this method in its constructor to *enforce* +# out of source building even if the user didn't request it. +# Build directory is set to DEFAULT_BUILD_DIRECTORY or building +# fails if it is not possible to set it +sub enforce_out_of_source_building { + my $this=shift; + $this->prefer_out_of_source_building(); +} + # Enhanced version of File::Spec::canonpath. It collapses .. # too so it may return invalid path if symlinks are involved. # On the other hand, it does not need for the path to exist. -- cgit v1.2.3