%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
# A debhelper build system class for handling ninja based projects. # # Copyright: © 2017 Michael Biebl # License: GPL-2+ package Debian::Debhelper::Buildsystem::ninja; use strict; use warnings; use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value); use parent qw(Debian::Debhelper::Buildsystem); sub DESCRIPTION { "Ninja (build.ninja)" } sub new { my $class=shift; my $this=$class->SUPER::new(@_); $this->{buildcmd} = "ninja"; return $this; } sub check_auto_buildable { my $this=shift; my ($step) = @_; if (-e $this->get_buildpath("build.ninja")) { # This is always called in the source directory, but generally # Ninja files are created (or live) in the build directory. return 1; } elsif ($step eq "clean" && defined $this->get_builddir() && $this->check_auto_buildable("configure")) { # Assume that the package can be cleaned (i.e. the build directory can # be removed) as long as it is built out-of-source tree and can be # configured. This is useful for derivative buildsystems which # generate Ninja files. return 1; } return 0; } sub build { my $this=shift; my %options = ( update_env => { 'LC_ALL' => 'C.UTF-8', } ); if (!$dh{QUIET}) { unshift @_, "-v"; } if ($this->get_parallel() > 0) { unshift @_, "-j" . $this->get_parallel(); } $this->doit_in_builddir(\%options, $this->{buildcmd}, @_); } sub test { my $this=shift; my %options = ( update_env => { 'LC_ALL' => 'C.UTF-8', } ); if ($this->get_parallel() > 0) { $options{update_env}{MESON_TESTTHREADS} = $this->get_parallel(); } $this->doit_in_builddir(\%options, $this->{buildcmd}, "test", @_); } sub install { my $this=shift; my $destdir=shift; my %options = ( update_env => { 'LC_ALL' => 'C.UTF-8', 'DESTDIR' => $destdir, } ); $this->doit_in_builddir(\%options, $this->{buildcmd}, "install", @_); } sub clean { my $this=shift; if (!$this->rmdir_builddir()) { my %options = ( update_env => { 'LC_ALL' => 'C.UTF-8', } ); $this->doit_in_builddir(\%options, $this->{buildcmd}, "clean", @_); } } 1