Hi,

After irc discussion with Modestas, here is an update which takes more
care to set correct return value in check_auto_buildable.

Thanks, Kel.
---
# 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, @_);
}

1;
---



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to