[Reproducible-commits] [libextutils-depends-perl] 150/187: Doc, implement, test ::Install::Files->Inline.
Maria Valentina Marin Rodrigues
akira-guest at moszumanska.debian.org
Wed Jan 21 21:16:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
akira-guest pushed a commit to branch pu/reproducible_builds
in repository libextutils-depends-perl.
commit feb1f2c39ac6532fbe03c57bf361c461c5dffbc3
Author: Ed J <mohawk2 at users.noreply.github.com>
Date: Mon Jun 30 06:35:22 2014 +0100
Doc, implement, test ::Install::Files->Inline.
---
lib/ExtUtils/Depends.pm | 28 ++++++++++++++++++++++++++--
t/02_save_load.t | 13 ++++++++++++-
2 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/lib/ExtUtils/Depends.pm b/lib/ExtUtils/Depends.pm
index 89d3365..72da6ad 100644
--- a/lib/ExtUtils/Depends.pm
+++ b/lib/ExtUtils/Depends.pm
@@ -147,6 +147,15 @@ sub save_config {
last;
}
}
+
+ sub Inline {
+ my (\$class, \$lang) = \@_;
+ if (\$lang ne 'C') {
+ warn "Warning: Inline hints not available for \$lang language\n";
+ return;
+ }
+ +{ map { (uc(\$_) => \$self->{\$_}) } qw(inc libs typemaps) };
+ }
EOT
print $file "\n1;\n";
@@ -451,6 +460,20 @@ For example:
this command automatically brings in all the stuff needed
for Glib, since Gtk2 depends on it.
+When the configuration information is saved, it also includes a class
+method called C<Inline>, inheritable by your module. This allows you in
+your module to simply say at the top:
+
+ package Mymod;
+ use parent 'Mymod::Install::Files'; # to inherit 'Inline' method
+
+And users of C<Mymod> who want to write inline code (using L<Inline>)
+will simply be able to write:
+
+ use Inline with => 'Mymod';
+
+And all the necessary header files, defines, and libraries will be added
+for them.
=head1 METHODS
@@ -513,8 +536,9 @@ passed through WriteMakefile's PM key.
Save the important information from I<$depends> to I<$filename>, and
set it up to be installed as I<name>::Install::Files.
-Note: the actual value of I<$filename> seems to be irrelevant, but its
-usage is kept for backward compatibility.
+Note: the actual value of I<$filename> is unimportant so long as it
+doesn't clash with any other local files. It will be installed as
+I<name>::Install::Files.
=item hash = $depends->get_makefile_vars
diff --git a/t/02_save_load.t b/t/02_save_load.t
index c68fa3f..3e6c4b1 100644
--- a/t/02_save_load.t
+++ b/t/02_save_load.t
@@ -2,7 +2,7 @@
use strict;
use warnings;
-use Test::More tests => 28;
+use Test::More tests => 29;
use FindBin;
use lib "$FindBin::Bin/lib";
@@ -106,4 +106,15 @@ is_deeply (\@DepTest::Install::Files::deps, []);
is ($DepTest::Install::Files::libs, $libs);
}
+# test Inline class method
+is_deeply (
+ DepTest::Install::Files->Inline('C'),
+ {
+ INC => $inc,
+ LIBS => $libs,
+ TYPEMAPS => \@typemaps_expected,
+ },
+ 'api check Inline method'
+);
+
# --------------------------------------------------------------------------- #
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/libextutils-depends-perl.git
More information about the Reproducible-commits
mailing list