AI-TensorFlow-Libtensorflow
view release on metacpan or search on metacpan
maint/process-capi.pl view on Meta::CPAN
#!/usr/bin/env perl
# PODNAME: gen-capi-docs
# ABSTRACT: Generates POD for C API docs
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Sub::Uplevel; # place early to override caller()
package TF::CAPI::Extract {
use Mu;
use CLI::Osprey;
use AI::TensorFlow::Libtensorflow::Lib;
use feature qw(say postderef);
use Syntax::Construct qw(heredoc-indent);
use Function::Parameters;
use Path::Tiny;
use Types::Path::Tiny qw/Path/;
use File::Find::Rule;
use Sort::Key::Multi qw(iikeysort);
use List::Util qw(uniq first);
use List::SomeUtils qw(firstidx part);
use Module::Runtime qw(module_notional_filename);
use Module::Load qw(load);
option 'root_path' => (
is => 'ro',
format => 's',
doc => 'Root for TensorFlow',
default => "$FindBin::Bin/../../tensorflow/tensorflow",
isa => Path,
coerce => 1,
);
option 'lib_path' => (
is => 'ro',
format => 's',
doc => 'Root for lib',
default => "$FindBin::Bin/../lib",
isa => Path,
coerce => 1,
);
lazy capi_path => method() {
$self->root_path->child(qw(tensorflow c));
};
lazy header_paths => method() {
[ map path($_), File::Find::Rule->file
->name('*.h')
->in( $self->capi_path ) ];
};
lazy header_order => method() {
my @order = (
qr{/c/c_api.h$},
qr{/c/tf_[^.]+\.h$},
qr{/c/(ops|env|logging)\.h},
qr{kernels},
qr{/eager/},
qr{/experimental/},
qr{.*},
);
( run in 0.496 second using v1.01-cache-2.11-cpan-96521ef73a4 )