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