Archive-Libarchive-XS
view release on metacpan or search on metacpan
maint/before_build.pl view on Meta::CPAN
do { # symbol list
if($alien->cflags =~ /-I(\S+)/)
{
my $include = dir($1);
foreach my $line (map { $include->file($_)->slurp } qw( archive.h archive_entry.h ))
{
while($line =~ s/\b(archive_[A-Za-z0-9_]+)//)
{
$symbols{$1} = 1;
}
}
}
open(my $fh, '<', file(__FILE__)->parent->parent->file('symbols.txt'));
foreach my $line (<$fh>)
{
chomp $line;
$symbols{$line} = 1;
}
close $fh;
my @deprecated = qw(
archive_read_support_compression_all
archive_read_support_compression_bzip2
archive_read_support_compression_compress
archive_read_support_compression_gzip
archive_read_support_compression_lzip
archive_read_support_compression_lzma
archive_read_support_compression_none
archive_read_support_compression_program
archive_read_support_compression_program_signature
archive_read_support_compression_rpm
archive_read_support_compression_uu
archive_read_support_compression_xz
archive_read_open_file
archive_read_finish
archive_write_set_compression_bzip2
archive_write_set_compression_compress
archive_write_set_compression_gzip
archive_write_set_compression_lzip
archive_write_set_compression_lzma
archive_write_set_compression_none
archive_write_set_compression_program
archive_write_set_compression_xz
archive_write_open_file
archive_write_finish
archive_position_compressed
archive_position_uncompressed
archive_compression_name
archive_compression
archive_entry_set_ino64
archive_entry_ino64
archive_entry_stat32
archive_entry_stat64
);
delete $symbols{$_} for @deprecated;
my @not_real = qw(
archive_acl
archive_read
archive_read_support_XXX
archive_write_disk
archive_read_open_XXX
archive_platform
archive_read_disk
archive_entry_linkresolver
);
delete $symbols{$_} for @not_real;
my @typedefs = qw(
archive_entry
archive_match
archive_read_callback
archive_skip_callback
archive_seek_callback
archive_write_callback
archive_open_callback
archive_close_callback
archive_switch_callback
);
delete $symbols{$_} for @typedefs;
file(__FILE__)->parent->parent->file('symbols.txt')->spew(join "\n", sort keys %symbols);
delete $symbols{$_} for grep /_(w|utf8)$/, keys %symbols;
my @wontimplement = qw(
archive_read_add_callback_data
archive_read_append_callback_data
archive_read_prepend_callback_data
archive_read_set_callback_data2
archive_read_open_FILE
archive_read_open_fd
archive_read_data_into_fd
archive_read_open_memory2
archive_write_open_fd
archive_write_open_FILE
archive_entry_copy_gname
archive_entry_copy_hardlink
archive_entry_copy_pathname
archive_entry_copy_symlink
archive_entry_copy_uname
archive_entry_copy_link
);
delete $symbols{$_} for @wontimplement;
};
do {
use Pod::Abstract;
use Mojo::Template;
use JSON qw( to_json );
my $mt = Mojo::Template->new;
my $pa = Pod::Abstract->load_file(
file(__FILE__)->parent->parent->parent->file(qw( lib Archive Libarchive XS.xs ))->stringify
);
$_->detach for $pa->select('//#cut');
my %functions;
foreach my $pod ($pa->children)
{
if($pod->pod =~ /^=head2 ([A-Za-z_0-9]+)/)
{
my $name = $1;
( run in 1.065 second using v1.01-cache-2.11-cpan-d7f47b0818f )