diff options
author | Modestas Vainius <modestas@vainius.eu> | 2009-11-18 14:16:41 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-11-18 14:16:41 -0500 |
commit | 758ce0bb1fbb505aa05f2dd3ac85d7d084b94312 (patch) | |
tree | 58aa6852c13e83aecdaaa000a0e3f4f17d99dcf1 /Debian/Debhelper/Buildsystem/cmake.pm | |
parent | 93cab1844819ee8f761606f6ccc511ebf07d2213 (diff) |
Improve build system auto-selection process
This patch alters semantics of check_auto_buildable() a bit. Now it can
also indicate if the source has already been partitially built with the
build system and if so, such build system may be auto-selected over a less
specific its parent (in the inheritance tree) even if the latter is earlier
in the @BUILDSYSTEMS array.
However, this still leaves a requirement that a derivative build system
must not do anything that may break packages of the parent build system.
Otherwise, introduction of a new derivative build system might break
packages which already had that build system implemented via overrides...
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
Diffstat (limited to 'Debian/Debhelper/Buildsystem/cmake.pm')
-rw-r--r-- | Debian/Debhelper/Buildsystem/cmake.pm | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Debian/Debhelper/Buildsystem/cmake.pm b/Debian/Debhelper/Buildsystem/cmake.pm index 03e6ade5..3eddc74f 100644 --- a/Debian/Debhelper/Buildsystem/cmake.pm +++ b/Debian/Debhelper/Buildsystem/cmake.pm @@ -16,12 +16,12 @@ sub DESCRIPTION { sub check_auto_buildable { my $this=shift; my ($step)=@_; - my $ret = -e $this->get_sourcepath("CMakeLists.txt"); - if ($step ne "configure") { - $ret &&= -e $this->get_buildpath("CMakeCache.txt") && - $this->SUPER::check_auto_buildable(@_); + if (-e $this->get_sourcepath("CMakeLists.txt")) { + my $ret = $this->SUPER::check_auto_buildable(@_); + $ret++ if ($ret && -e $this->get_buildpath("CMakeCache.txt")); + return $ret > 0 ? $ret : 1; } - return $ret; + return 0; } sub new { |