Skip to content

Commit

Permalink
Cleaned up setup.nqp, courtesy of fperrad++.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyler Leslie Curtis committed Jul 10, 2010
1 parent 205dc60 commit 7137e25
Showing 1 changed file with 91 additions and 110 deletions.
201 changes: 91 additions & 110 deletions setup.nqp
@@ -1,122 +1,103 @@
#!/usr/bin/env parrot-nqp
pir::load_bytecode('distutils.pbc');

MAIN(get_args());
sub MAIN() {
# Load distutils library
pir::load_bytecode('distutils.pbc');

sub MAIN(@ARGS) {
pir::shift__sP(@ARGS);
my %tree-optimization :=
hash(:name<tree-optimization>,
:abstract('Library for analysis, pattern-matching, and ' ~
'transformation of Trees.'),
:keywords<parrot optimization pattern pct>,
:license_type('Artistic License 2.0'),
:license_uri('http://www.perlfoundation.org/artistic_license_2_0'),
:copyright_holder('Tyler L. Curtis'),
:authority('http://github.com/ekiru'),
:doc_files<README>,
:checkout_uri('git://github.com/ekiru/tree-optimization.git'),
:browser_uri('http://github.com/ekiru/tree-optimization'),
:project_uri('http://github.com/ekiru/tree-optimization'),
:test_exec('parrot --library build ' ~
get_libdir() ~ '/library/nqp-rx.pbc'),
);
# ALL DISTUTILS CONFIGURATION IN THIS HASH
my %cfg := hash(
# metadata
setup => 'setup.nqp',
name => 'tree-optimization',
abstract => 'Library for analysis, pattern-matching, and transformation of Trees.',
keywords => < parrot optimization pattern pct >,
license_type => 'Artistic License 2.0',
license_uri => 'http://www.perlfoundation.org/artistic_license_2_0',
copyright_holder => 'Tyler L. Curtis',
authority => 'http://github.com/ekiru',
checkout_uri => 'git://github.com/ekiru/tree-optimization.git',
browser_uri => 'http://github.com/ekiru/tree-optimization',
project_uri => 'http://github.com/ekiru/tree-optimization',
description => 'A library for analysis, pattern-matching, and transformation of trees.',

%tree-optimization<pir_nqp-rx><build/PAST/Pattern.pir> :=
<src/PAST/Pattern.nqp>;
%tree-optimization<pir_nqp-rx><build/PAST/Pattern/Transformer.pir> :=
<src/PAST/Pattern/Transformer.nqp>;
%tree-optimization<pir_nqp-rx><build/PAST/Transformer.pir> :=
<src/PAST/Transformer.nqp>;
%tree-optimization<pir_nqp-rx><build/PAST/Transformer/Dynamic.pir> :=
<src/PAST/Transformer/Dynamic.nqp>;
%tree-optimization<pir_nqp-rx><build/PAST/Walker.pir> :=
<src/PAST/Walker.nqp>;
%tree-optimization<pir_nqp-rx><build/PAST/Walker/Dynamic.pir> :=
<src/PAST/Walker/Dynamic.nqp>;
# build
pir_nqp => unflatten(
'build/PAST/Pattern.pir', 'src/PAST/Pattern.nqp',
'build/PAST/Pattern/Transformer.pir', 'src/PAST/Pattern/Transformer.nqp',
'build/PAST/Transformer.pir', 'src/PAST/Transformer.nqp',
'build/PAST/Transformer/Dynamic.pir', 'src/PAST/Transformer/Dynamic.nqp',
'build/PAST/Walker.pir', 'src/PAST/Walker.nqp',
'build/PAST/Walker/Dynamic.pir', 'src/PAST/Walker/Dynamic.nqp',
'build/PCT/Pattern.pir', 'src/PCT/Pattern.nqp',
'build/POST/Pattern.pir', 'src/POST/Pattern.nqp',
'build/Tree/Pattern.pir', 'src/Tree/Pattern.nqp',
'build/Tree/Pattern/Any.pir', 'src/Tree/Pattern/Any.nqp',
'build/Tree/Pattern/Closure.pir', 'src/Tree/Pattern/Closure.nqp',
'build/Tree/Pattern/Constant.pir', 'src/Tree/Pattern/Constant.nqp',
'build/Tree/Pattern/Match.pir', 'src/Tree/Pattern/Match.nqp',
'build/Tree/Pattern/Transformer.pir', 'src/Tree/Pattern/Transformer.nqp',
'build/Tree/Transformer.pir', 'src/Tree/Transformer.nqp',
'build/Tree/Walker.pir', 'src/Tree/Walker.nqp',
),
pbc_pir => unflatten(
'build/PAST/Pattern.pbc', 'build/PAST/Pattern.pir',
'build/PAST/Pattern/Transformer.pbc', 'build/PAST/Pattern/Transformer.pir',
'build/PAST/Transformer.pbc', 'build/PAST/Transformer.pir',
'build/PAST/Transformer/Dynamic.pbc', 'build/PAST/Transformer/Dynamic.pir',
'build/PAST/Walker.pbc', 'build/PAST/Walker.pir',
'build/PAST/Walker/Dynamic.pbc', 'build/PAST/Walker/Dynamic.pir',
'build/PCT/Pattern.pbc', 'build/PCT/Pattern.pir',
'build/POST/Pattern.pbc', 'build/POST/Pattern.pir',
'build/Tree/Pattern.pbc', 'build/Tree/Pattern.pir',
'build/Tree/Pattern/Any.pbc', 'build/Tree/Pattern/Any.pir',
'build/Tree/Pattern/Closure.pbc', 'build/Tree/Pattern/Closure.pir',
'build/Tree/Pattern/Constant.pbc', 'build/Tree/Pattern/Constant.pir',
'build/Tree/Pattern/Match.pbc', 'build/Tree/Pattern/Match.pir',
'build/Tree/Pattern/Transformer.pbc', 'build/Tree/Pattern/Transformer.pir',
'build/Tree/Transformer.pbc', 'build/Tree/Transformer.pir',
'build/Tree/Walker.pbc', 'build/Tree/Walker.pir',
),

%tree-optimization<pbc_pir><build/PAST/Pattern.pbc> :=
<build/PAST/Pattern.pir>;
%tree-optimization<pbc_pir><build/PAST/Pattern/Transformer.pbc> :=
<build/PAST/Pattern/Transformer.pir>;
%tree-optimization<pbc_pir><build/PAST/Transformer.pbc> :=
<build/PAST/Transformer.pir>;
%tree-optimization<pbc_pir><build/PAST/Transformer/Dynamic.pbc> :=
<build/PAST/Transformer/Dynamic.pir>;
%tree-optimization<pbc_pir><build/PAST/Walker.pbc> :=
<build/PAST/Walker.pir>;
%tree-optimization<pbc_pir><build/PAST/Walker/Dynamic.pbc> :=
<build/PAST/Walker/Dynamic.pir>;
# test
test_exec => get_parrot() ~ ' --library build '
~ get_libdir() ~ '/library/nqp-rx.pbc',
test_files => 't/*.t',

%tree-optimization<pir_nqp-rx><build/PCT/Pattern.pir> :=
<src/PCT/Pattern.nqp>;
%tree-optimization<pbc_pir><build/PCT/Pattern.pbc> :=
<build/PCT/Pattern.pir>;
# install
inst_lib => <
build/PAST/Pattern.pbc
build/PAST/Pattern/Transformer.pbc
build/PAST/Transformer.pbc
build/PAST/Transformer/Dynamic.pbc
build/PAST/Walker.pbc
build/PAST/Walker/Dynamic.pbc
build/PCT/Pattern.pbc
build/POST/Pattern.pbc
build/Tree/Pattern.pbc
build/Tree/Pattern/Any.pbc
build/Tree/Pattern/Closure.pbc
build/Tree/Pattern/Constant.pbc
build/Tree/Pattern/Match.pbc
build/Tree/Pattern/Transformer.pbc
build/Tree/Transformer.pbc
build/Tree/Walker.pbc
>,

%tree-optimization<pir_nqp-rx><build/POST/Pattern.pir> :=
<src/POST/Pattern.nqp>;
%tree-optimization<pbc_pir><build/POST/Pattern.pbc> :=
<build/POST/Pattern.pir>;
# dist
manifest_includes => glob('examples/*.pir examples/*.nqp'),
doc_files => glob('README docs/*/*.pod docs/*/*/*.pod'),
);

%tree-optimization<pir_nqp-rx><build/Tree/Pattern.pir> :=
<src/Tree/Pattern.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Pattern/Any.pir> :=
<src/Tree/Pattern/Any.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Pattern/Closure.pir> :=
<src/Tree/Pattern/Closure.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Pattern/Constant.pir> :=
<src/Tree/Pattern/Constant.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Pattern/Match.pir> :=
<src/Tree/Pattern/Match.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Pattern/Transformer.pir> :=
<src/Tree/Pattern/Transformer.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Transformer.pir> :=
<src/Tree/Transformer.nqp>;
%tree-optimization<pir_nqp-rx><build/Tree/Walker.pir> :=
<src/Tree/Walker.nqp>;
# Boilerplate; should not need to be changed
my @*ARGS := pir::getinterp__P()[2];
@*ARGS.shift;

%tree-optimization<pbc_pir><build/Tree/Pattern.pbc> :=
<build/Tree/Pattern.pir>;
%tree-optimization<pbc_pir><build/Tree/Pattern/Any.pbc> :=
<build/Tree/Pattern/Any.pir>;
%tree-optimization<pbc_pir><build/Tree/Pattern/Closure.pbc> :=
<build/Tree/Pattern/Closure.pir>;
%tree-optimization<pbc_pir><build/Tree/Pattern/Constant.pbc> :=
<build/Tree/Pattern/Constant.pir>;
%tree-optimization<pbc_pir><build/Tree/Pattern/Match.pbc> :=
<build/Tree/Pattern/Match.pir>;
%tree-optimization<pbc_pir><build/Tree/Pattern/Transformer.pbc> :=
<build/Tree/Pattern/Transformer.pir>;
%tree-optimization<pbc_pir><build/Tree/Transformer.pbc> :=
<build/Tree/Transformer.pir>;
%tree-optimization<pbc_pir><build/Tree/Walker.pbc> :=
<build/Tree/Walker.pir>;

%tree-optimization<inst_lib> :=
< build/PAST/Pattern.pbc
build/PAST/Pattern/Transformer.pbc
build/PAST/Transformer.pbc
build/PAST/Transformer/Dynamic.pbc
build/PAST/Walker.pbc
build/PAST/Walker/Dynamic.pbc
build/PCT/Pattern.pbc
build/POST/Pattern.pbc
build/Tree/Pattern.pbc
build/Tree/Pattern/Any.pbc
build/Tree/Pattern/Closure.pbc
build/Tree/Pattern/Constant.pbc
build/Tree/Pattern/Match.pbc
build/Tree/Pattern/Transformer.pbc
build/Tree/Transformer.pbc
build/Tree/Walker.pbc >;

setup(|@ARGS, |%tree-optimization);
setup(@*ARGS, %cfg);
}

sub hash (*%hash) {
%hash;
}
# Work around minor nqp-rx limitations
sub hash (*%h ) { %h }
sub unflatten(*@kv) { my %h; for @kv -> $k, $v { %h{$k} := $v }; %h }

sub get_args () {
pir::getinterp__P()[2];
}
# Start it up!
MAIN();

0 comments on commit 7137e25

Please sign in to comment.