# 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 is specified, accept it even if it matches the source
-# directory (i.e. out of source is prefered to in source).
+# 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 {
- my ($this, $builddir) = @_;
+ my $this=shift;
+ my %args=@_;
if (!defined $this->get_builddir()) {
- $this->_set_builddir($builddir);
- if (!defined $this->get_builddir() && !$builddir) {
+ $this->_set_builddir($args{builddir});
+ if (!defined $this->get_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." .
sub new {
my $class=shift;
my $this=$class->SUPER::new(@_);
- my %args=@_;
# Prefer out of source tree building.
- $this->enforce_out_of_source_building($args{builddir});
+ $this->enforce_out_of_source_building(@_);
return $this;
}
sub new {
my $class=shift;
my $this=$class->SUPER::new(@_);
- my %args=@_;
# Out of source tree building is prefered.
- $this->enforce_out_of_source_building($args{builddir});
+ $this->enforce_out_of_source_building(@_);
return $this;
}
# Prefer out of source tree building when
# sourcedir=builddir=autoconf hence builddir should be dropped.
-$bs->enforce_out_of_source_building("autoconf");
-test_buildsystem_paths_api($bs, "soft out of source enforced, sourcedir=builddir", \%tmp);
+$bs->enforce_out_of_source_building(builddir => "autoconf");
+test_buildsystem_paths_api($bs, "out of source prefered, sourcedir=builddir", \%tmp);
# builddir=bld/dir, sourcedir=autoconf. Should be the same as sourcedir=autoconf.
$bs = $BS_CLASS->new(builddir => "bld/dir", sourcedir => "autoconf");