1 # A buildsystem plugin for handling CMake based projects.
2 # It enforces outside-source building.
4 # Copyright: © 2008-2009 Modestas Vainius
7 package Debian::Debhelper::Buildsystem::cmake;
10 use Debian::Debhelper::Dh_Lib;
11 use base 'Debian::Debhelper::Buildsystem::makefile';
14 my ($self, $name, $val) = @_;
15 push @{$self->{cmake_flags}}, "-D$name=$val";
19 "support for building CMake based packages (outside-source tree only)"
23 return -e "CMakeLists.txt";
28 my $self=$cls->SUPER::new(@_);
29 # Enfore outside-source tree builds.
30 $self->enforce_outside_source_building();
31 $self->{cmake_flags} = [];
38 # Standard set of cmake flags
39 $self->_add_cmake_flag("CMAKE_INSTALL_PREFIX", "/usr");
40 $self->_add_cmake_flag("CMAKE_C_FLAGS", $ENV{CFLAGS}) if (exists $ENV{CFLAGS});
41 $self->_add_cmake_flag("CMAKE_CXX_FLAGS", $ENV{CXXFLAGS}) if (exists $ENV{CXXFLAGS});
42 $self->_add_cmake_flag("CMAKE_SKIP_RPATH", "ON");
43 $self->_add_cmake_flag("CMAKE_VERBOSE_MAKEFILE", "ON");
46 doit("cmake", $self->get_topdir(), @{$self->{cmake_flags}}, @_);