Cache column and primary/foreign/unique key info
[dbsrgits/DBIx-Class-Schema-Loader.git] / Makefile.PL
1 use warnings;
2 use strict;
3
4 use 5.008001;
5 use inc::Module::Install 1.00;
6
7 use Getopt::Long();
8
9 my $getopt = Getopt::Long::Parser->new(
10     config => [qw/gnu_getopt bundling_override no_ignore_case pass_through/]
11 );
12 my $args = {
13     skip_author_deps => undef,
14 };
15 $getopt->getoptions($args, 'skip_author_deps');
16 if (@ARGV) {
17     warn "\nIgnoring unrecognized option(s): @ARGV\n\n";
18 }
19
20 use FindBin;
21 use lib "$FindBin::Bin/lib";
22
23 perl_version '5.008001';
24 name           'DBIx-Class-Schema-Loader';
25 all_from       'lib/DBIx/Class/Schema/Loader.pm';
26
27 # temporary, needs to be thrown out
28 test_requires 'DBIx::Class::IntrospectableM2M' => 0;
29
30 # core, but specific versions not available on older perls
31 test_requires 'File::Temp'      => '0.16';
32 test_requires 'File::Path'      => '2.07';
33
34 test_requires 'DBD::SQLite'     => '1.29';
35 test_requires 'Test::Exception' => '0.31';
36 test_requires 'Test::More'      => '0.94';
37 test_requires 'Test::Warn'      => '0.21';
38 test_requires 'Test::Deep'      => '0.107';
39 test_requires 'Test::Differences' => '0.60';
40
41 requires 'Carp::Clan'                  => 0;
42 requires 'Class::Accessor::Grouped'    => '0.10008';
43 requires 'Class::C3::Componentised'    => '1.0008';
44 requires 'Class::Inspector'            => '1.27';
45 requires 'Class::Method::Modifiers'    => '1.05';
46 requires 'Class::Unload'               => '0.07';
47 requires 'Data::Dump'                  => '1.06';
48 requires 'DBIx::Class'                 => '0.08127';
49 requires 'Hash::Merge'                 => '0.12';
50 requires 'Lingua::EN::Inflect::Number' => '1.1';
51 requires 'Lingua::EN::Tagger'          => '0.23';
52 requires 'Lingua::EN::Inflect::Phrase' => '0.15';
53 requires 'List::Util'                  => '1.33';
54 requires 'MRO::Compat'                 => '0.09';
55 requires 'namespace::clean'            => '0.23';
56 requires 'Scope::Guard'                => '0.20';
57 requires 'String::ToIdentifier::EN'    => '0.05';
58 requires 'String::CamelCase'           => '0.02';
59 requires 'Sub::Util'                   => '1.40';
60 requires 'Try::Tiny'                   => 0;
61
62 # core, but specific versions not available on older perls
63 requires 'Digest::MD5'                 => '2.36';
64 requires 'Exporter'                    => '5.63';
65
66 print <<"EOF";
67 ******************* DBIx::Class::Schema::Loader WARNING ***********************
68 The default attributes for belongs_to relationships for foreign keys with no
69 rules has been changed for most databases, and is soon changing for the rest,
70 as ON DELETE/UPDATE and DEFERRABLE clauses for foreign keys are now being
71 introspected.
72
73 THIS MAY AFFECT YOUR DDL DIFFS WHEN DEPLOYING
74
75 YOUR GENERATED CODE WILL ALMOST CERTAINLY CHANGE
76
77 Read more about the changes in "relationship_attrs" in:
78
79 perldoc DBIx::Class::Schema::Loader::Base
80
81 https://metacpan.org/module/DBIx::Class::Schema::Loader::Base#relationship_attrs
82
83 See also the "Changes" file for the last few revisions.
84 *******************************************************************************
85 EOF
86
87 if ($Module::Install::AUTHOR && ! $args->{skip_author_deps}) {
88     eval { require Module::Install::ReadmeFromPod }
89         or die "\nYou need Module::Install::ReadmeFromPod installed to run this Makefile.PL in author mode:\n\n$@\n";
90
91     warn "\n*** AUTHOR MODE: some optional dependencies converted to hard requires.\n\n";
92
93     require DBIx::Class::Schema::Loader::Optional::Dependencies;
94
95     test_requires %{DBIx::Class::Schema::Loader::Optional::Dependencies
96         ->modreq_list_for([
97             grep { !/rdbms/ }
98             keys %{ DBIx::Class::Schema::Loader::Optional::Dependencies
99                 ->req_group_list
100             }
101         ])};
102
103     DBIx::Class::Schema::Loader::Optional::Dependencies->_gen_pod(undef, 'lib');
104
105     author_tests( 'xt' );
106     readme_from( 'lib/DBIx/Class/Schema/Loader.pm' );
107     realclean_files( qw[README MANIFEST lib/DBIx/Class/Schema/Loader/Optional/Dependencies.pod] );
108 }
109
110 tests_recursive;
111
112 install_script 'script/dbicdump';
113
114 resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
115 resources 'license'     => 'http://dev.perl.org/licenses/';
116 resources 'repository'  => 'https://github.com/dbsrgits/dbix-class-schema-loader';
117 resources 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class';
118
119 auto_install;
120 WriteAll;
121
122 # vim:et sts=4 sw=4 tw=0: