1use inc::Module::Install 0.91;
2
3name           'DBIx-Class-Schema-Loader';
4all_from       'lib/DBIx/Class/Schema/Loader.pm';
5
6test_requires 'Test::Exception';
7test_requires 'Test::More'    => '0.94';
8test_requires 'DBI'           => '1.56';
9test_requires 'DBD::SQLite'   => '1.12';
10test_requires 'File::Copy';
11test_requires 'File::Temp'    => '0.16';
12test_requires 'File::Path'    => '2.07';
13test_requires 'IPC::Open3'    => 0;
14test_requires 'List::MoreUtils' => 0;
15
16requires 'File::Spec'                  => 0;
17requires 'Scalar::Util'                => 0;
18requires 'Data::Dump'                  => '1.06';
19requires 'Lingua::EN::Inflect::Number' => '1.1';
20requires 'Text::Balanced'              => 0;
21requires 'Digest::MD5'                 => '2.36';
22requires 'Class::Accessor::Grouped'    => '0.09002';
23requires 'Class::C3'                   => '0.18';
24requires 'Class::C3::Componentised'    => '1.0005';
25requires 'Carp::Clan'                  => 0;
26requires 'Class::Inspector'            => 0;
27requires 'DBIx::Class'                 => '0.08114';
28requires 'Class::Unload'               => 0;
29requires 'File::Slurp'                 => '9999.13';
30requires 'List::MoreUtils'             => 0;
31requires 'namespace::autoclean'        => 0;
32
33install_script 'script/dbicdump';
34
35tests_recursive;
36
37# This is my manual hack for better feature control
38#  If you want to change the default answer for a feature,
39#  set the appropriate environment variable, like
40#  DBIC_FEATURE_MYSQL.  If you want the defaults to
41#  apply automatically without asking any questions,
42#  set DBIC_FEATURE_NOQUESTIONS.  Hopefully this will
43#  save someone some pain when trying to automate
44#  the installation of this software.
45
46# Maintainer shouldn't set these, as they would affect
47# the META.yml shipped to CPAN.
48
49my $_features = [
50    SQLITE => {
51        label => 'SQLite Support',
52        def   => $ENV{DBIC_FEATURE_SQLITE} || 0,
53        deps  => [
54            'DBI'         => '1.56',
55            'DBD::SQLite' => '1.12',
56        ],
57    },
58    MYSQL => {
59        label => 'MySQL Support',
60        def   => $ENV{DBIC_FEATURE_MYSQL} || 0,
61        deps  => [
62            'DBI'         => '1.56',
63            'DBD::mysql'  => '4.004',
64        ],
65    },
66    PG => {
67        label => 'PostgreSQL Support',
68        def   => $ENV{DBIC_FEATURE_PG} || 0,
69        deps  => [
70            'DBI'         => '1.56',
71            'DBD::Pg'     => '1.49', # Soon to be 1.50
72        ],
73    },
74    DB2 => {
75        label => 'DB2 Support',
76        def   => $ENV{DBIC_FEATURE_DB2} || 0,
77        deps  => [
78            'DBI'         => '1.56',
79            'DBD::DB2'    => '1.0',
80        ],
81    },
82    ORACLE => {
83        label => 'Oracle Support (experimental)',
84        def   => $ENV{DBIC_FEATURE_ORACLE} || 0,
85        deps  => [
86            'DBI'         => '1.56',
87            'DBD::Oracle' => '0.19',
88        ],
89    },
90    SYBASE => {
91        label => 'Sybase Support (experimental)',
92        def   => $ENV{DBIC_FEATURE_SYBASE} || 0,
93        deps  => [
94            'DBI'         => '1.56',
95            'DBD::Sybase' => '1.09',
96        ],
97    },
98    MSSQL => {
99        label => 'Microsoft SQL Server Support via DBD::Sybase',
100        def   => $ENV{DBIC_FEATURE_MSSQL} || 0,
101        deps  => [
102            'DBI'         => '1.56',
103            'DBD::Sybase' => '1.09',
104        ],
105    },
106    MSSQL_ODBC => {
107        label => 'Microsoft SQL Server Support via DBD::ODBC',
108        def   => $ENV{DBIC_FEATURE_MSSQL} || 0,
109        deps  => [
110            'DBI'       => '1.56',
111            'DBD::ODBC' => '1.22',
112        ],
113    },
114];
115
116for(my $i = 0; $i <= $#$_features - 1; $i += 2) {
117    my $name = $_features->[$i];
118    my $attrs = $_features->[$i+1];
119
120    if($ENV{DBIC_FEATURE_NOQUESTIONS}) {
121        if($attrs->{def}) {
122            requires @{$attrs->{deps}};
123        }
124    }
125    else {
126        feature $attrs->{label} =>
127            -default => $attrs->{def},
128            @{$attrs->{deps}};
129    }
130}
131
132# Rebuild README for maintainers
133if ($Module::Install::AUTHOR) {
134    system("pod2text lib/DBIx/Class/Schema/Loader.pm > README");
135}
136
137realclean_files 'README';
138
139resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
140resources 'license'     => 'http://dev.perl.org/licenses/';
141resources 'repository'  => 'git://git.shadowcat.co.uk/dbsrgits/DBIx-Class-Schema-Loader.git';
142resources 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class';
143
144auto_provides;
145auto_install;
146WriteAll;
147