summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Debian/Debhelper/Buildsystem/qmake.pm80
-rw-r--r--debian/changelog1
-rw-r--r--debian/copyright12
3 files changed, 89 insertions, 4 deletions
diff --git a/Debian/Debhelper/Buildsystem/qmake.pm b/Debian/Debhelper/Buildsystem/qmake.pm
new file mode 100644
index 00000000..823a70e3
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/qmake.pm
@@ -0,0 +1,80 @@
+# A debhelper build system class for Qt projects
+# (based on the makefile class).
+#
+# Copyright: © 2010 Kelvin Modderman
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::qmake;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(error);
+use base 'Debian::Debhelper::Buildsystem::makefile';
+
+sub DESCRIPTION {
+ "qmake (*.pro)";
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my @projects=glob($this->get_sourcepath('*.pro'));
+ my $ret=0;
+
+ if (@projects > 0 && -e $projects[0]) {
+ $ret=1;
+ # Existence of a Makefile generated by qmake indicates qmake
+ # class has already been used by a prior build step, so should
+ # be used instead of the parent makefile class.
+ my $mf=$this->get_buildpath("Makefile");
+ if (-e $mf) {
+ $ret = $this->SUPER::check_auto_buildable(@_);
+ open(my $fh, '<', $mf)
+ or error("unable to open Makefile: $mf");
+ while(<$fh>) {
+ if (m/^# Generated by qmake/i) {
+ $ret++;
+ last;
+ }
+ }
+ close($fh);
+ }
+ }
+
+ return $ret;
+}
+
+sub configure {
+ my $this=shift;
+ my @options;
+ my @flags;
+
+ push @options, '-makefile';
+ push @options, '-nocache';
+
+ if ($ENV{CFLAGS}) {
+ push @flags, "QMAKE_CFLAGS_RELEASE=$ENV{CFLAGS}";
+ push @flags, "QMAKE_CFLAGS_DEBUG=$ENV{CFLAGS}";
+ }
+ if ($ENV{CXXFLAGS}) {
+ push @flags, "QMAKE_CXXFLAGS_RELEASE=$ENV{CXXFLAGS}";
+ push @flags, "QMAKE_CXXFLAGS_DEBUG=$ENV{CXXFLAGS}";
+ }
+ if ($ENV{LDFLAGS}) {
+ push @flags, "QMAKE_LFLAGS_RELEASE=$ENV{LDFLAGS}";
+ push @flags, "QMAKE_LFLAGS_DEBUG=$ENV{LDFLAGS}";
+ }
+ push @flags, "QMAKE_STRIP=:";
+
+ $this->doit_in_builddir('qmake', @options, @flags, @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+
+ # qmake generated Makefiles use INSTALL_ROOT in install target
+ # where one would expect DESTDIR to be used.
+ $this->SUPER::install($destdir, "INSTALL_ROOT=$destdir", @_);
+}
+
+1;
diff --git a/debian/changelog b/debian/changelog
index a7aa1dc1..7858a5d6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ debhelper (7.4.12) UNRELEASED; urgency=low
This solves the problem with passing "-Bbuild" to dh, where commands
that do not support -B would see a bogus -u option. Closes: #541773
(It also ensures that the commands dh prints out can really be run.)
+ * qmake: New buildsystem contributed by Kel Modderman. Closes: #566840
-- Joey Hess <joeyh@debian.org> Fri, 01 Jan 2010 13:00:22 -0500
diff --git a/debian/copyright b/debian/copyright
index 18178a23..a9f950da 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -55,10 +55,14 @@ Files: dh_bugfiles
Copyright: Modestas Vainius <modestas@vainius.eu>
License: GPL-2+
-Files: Debian/Debhelper/Buildsystem*, Debian/Debhelper/Dh_Buildsystems.pm
-Copyright: © 2008-2009 Modestas Vainius
-License: GPL-2+
-
Files: dh_installinit
Copyright: 1997-2008 Joey Hess <joeyh@debian.org>, 2009 Canonical Ltd.
License: GPL-3
+
+Files: Debian/Debhelper/Buildsystem/qmake.pm
+Copyright: © 2010 Kel Modderman
+License: GPL-2+
+
+Files: Debian/Debhelper/Buildsystem*, Debian/Debhelper/Dh_Buildsystems.pm
+Copyright: © 2008-2009 Modestas Vainius
+License: GPL-2+