#!/usr/bin/perl

use strict;
use warnings;
use Cwd;
use Debian::Debhelper::Dh_Lib;
use Dpkg::Substvars;
use Dpkg::Version;

init(options => {});

my $vs = Dpkg::Version->new(`dpkg-query -f='\${Version}' -W libqt5qml5 2>/dev/null`, check => 1);
if (not defined $vs) {
	error(g_('libqt5qml5 is missing, can\'t calculate dependency for qmlc files'));
}

my $uvs = $vs->as_string(omit_revision => 1);
my @uvsdigits = version_split_digits($uvs);
my $uvsnext = join "", @uvsdigits[0 .. $#uvsdigits-1], $uvsdigits[-1] + 1;
my $newqmlc = "libqt5qml5 (>= $uvs), libqt5qml5 (<< $uvsnext)";

foreach my $package (@{$dh{DOPACKAGES}}) {
	my $ext = pkgext($package);
	my $varlistfile = "debian/${ext}substvars";
	my $varlistfilenew = "$varlistfile.new";
	my $depfield = 'Depends';

	my $substvars = Dpkg::Substvars->new();
	$substvars->load($varlistfile) if -e $varlistfile;

	my $oldshlibs = $substvars->get("shlibs:$depfield");
	$oldshlibs = "" unless defined $oldshlibs;
	my $newshlibs = $newqmlc . ($oldshlibs eq "" ? "" : ", ") . $oldshlibs;

	my (@filelist, $ff);
	my $tmp=tmpdir($package);
	foreach my $file (split(/\n/,`find $tmp -type f -name "*.qmlc" -print -quit`)) {
		push @filelist,$file;
	}
	if (@filelist) {
		$substvars->set_as_used("shlibs:$depfield", $newshlibs);
	} elsif ($oldshlibs =~ m/libqt5qml5/) {
		$substvars->set_as_used("flyqmlc:$depfield", $newqmlc);
	}
	$substvars->save($varlistfilenew);
	rename $varlistfilenew, $varlistfile
		or syserr(g_("install new varlist file '%s'"), $varlistfile);
}
