Affix

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "CPAN::Meta" : "2.150012",
            "Exporter" : "5.57",
            "ExtUtils::Helpers" : "0.028",
            "ExtUtils::Install" : "0",
            "ExtUtils::InstallPaths" : "0.002",
            "File::Basename" : "0",
            "File::Find" : "0",
            "File::Path" : "0",
            "File::Spec::Functions" : "0",
            "Getopt::Long" : "2.36",
            "JSON::PP" : "2",
            "Path::Tiny" : "0",
            "perl" : "v5.40.0"
         }
      },
      "runtime" : {
         "requires" : {
            "Capture::Tiny" : "0",
            "Carp" : "0",
            "Path::Tiny" : "0",
            "Storable" : "0",

META.json  view on Meta::CPAN

      "infix/CMakeLists.txt",
      "infix/docs/**",
      "infix/README.md",
      "infix/SECURITY.md",
      "infix/CHANGELOG.md",
      "infix/CODE_OF_CONDUCT.md",
      "infix/CONTRIBUTING.md",
      "infix/build.pl",
      ".github/**"
   ],
   "x_serialization_backend" : "JSON::PP version 4.16",
   "x_static_install" : 0
}

META.yml  view on Meta::CPAN

  CPAN::Meta: '2.150012'
  Exporter: '5.57'
  ExtUtils::Helpers: '0.028'
  ExtUtils::Install: '0'
  ExtUtils::InstallPaths: '0.002'
  File::Basename: '0'
  File::Find: '0'
  File::Path: '0'
  File::Spec::Functions: '0'
  Getopt::Long: '2.36'
  JSON::PP: '2'
  Path::Tiny: '0'
  perl: v5.40.0
dynamic_config: 0
generated_by: 'App::mii v1.0.0, CPAN::Meta::Converter version 2.150012'
keywords:
  - ffi
  - dll
  - library
  - wrapper
  - jit

builder/Affix/Builder.pm  view on Meta::CPAN

use feature 'class';
no warnings 'experimental::class';
class    #
    Affix::Builder {
    use CPAN::Meta;
    use ExtUtils::Install qw[pm_to_blib install];
    use ExtUtils::InstallPaths 0.002;
    use File::Basename        qw[basename dirname];
    use File::Path            qw[make_path remove_tree];
    use File::Spec::Functions qw[catfile catdir rel2abs abs2rel splitdir curdir];
    use JSON::PP 2            qw[encode_json decode_json];
    use File::Temp            qw[tempfile];

    # Not in CORE
    use Path::Tiny qw[path cwd];
    use ExtUtils::Helpers 0.028 qw[make_executable split_like_shell detildefy];

    # infix and Affix stuff
    use Config qw[%Config];
    field $force : param //= 0;
    field $debug : param = 0;

cpanfile  view on Meta::CPAN

    requires 'CPAN::Meta',        '2.150012';
    requires 'Exporter',          '5.57';
    requires 'ExtUtils::Helpers', '0.028';
    requires 'ExtUtils::Install';
    requires 'ExtUtils::InstallPaths', '0.002';
    requires 'File::Basename';
    requires 'File::Find';
    requires 'File::Path';
    requires 'File::Spec::Functions';
    requires 'Getopt::Long', '2.36';
    requires 'JSON::PP',     '2';
    requires 'Path::Tiny';
    requires 'perl', 'v5.40.0';
};
on build => sub {
    requires 'DynaLoader';
    requires 'ExtUtils::CBuilder';
    requires 'Getopt::Long', '2.36';
    requires 'Path::Tiny';
};
on test => sub {

lib/Affix/Wrap.pm  view on Meta::CPAN

package Affix::Wrap v1.0.9 {
    use v5.40;
    use feature 'class';
    no warnings 'experimental::class';
    no warnings 'experimental::builtin';
    use Path::Tiny;
    use Capture::Tiny qw[capture];
    use JSON::PP;
    use File::Basename qw[basename];
    use Affix          qw[];
    #
    class    #
        Affix::Wrap::Type {
        use Affix qw[Void];
        field $name : reader : param //= 'void';
        method to_string { $self->name }
        use overload '""' => 'to_string', fallback => 1;

lib/Affix/Wrap.pm  view on Meta::CPAN

            my @includes = map { "-I" . $self->_normalize($_) } @$include_dirs;
            for my $d (@$project_dirs) { push @includes, "-I$d"; }
            my @cmd = (
                $clang,                 '-target',         $self->_get_triple(),             '-Xclang',
                '-ast-dump=json',       '-Xclang',         '-detailed-preprocessing-record', '-fsyntax-only',
                '-fparse-all-comments', '-Wno-everything', @includes,                        $ep_abs
            );
            my ( $stdout, $stderr, $exit ) = Capture::Tiny::capture { system(@cmd); };
            if ( $exit != 0 )               { die "Clang Error:\n$stderr"; }
            if ( $stdout =~ /^.*?(\{.*)/s ) { $stdout = $1; }
            my $ast = JSON::PP::decode_json($stdout);
            my @objects;
            $self->_walk( $ast, \@objects, $ep_abs );
            $self->_scan_macros_fallback( \@objects );
            $self->_merge_typedefs( \@objects );
            $self->_wrap_named_types( \@objects );

            #~ @objects = sort { ( $a->file cmp $b->file ) || ( $a->start_offset <=> $b->start_offset ) } @objects;
            @objects;
        }



( run in 1.112 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )