blob: 075e8ab9012f6426ae836fe945141729cbf46e05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
// file : odb/option-functions.cxx
// copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
// license : GNU GPL v3; see accompanying LICENSE file
#include <set>
#include <utility> // std::make_pair()
#include <odb/option-functions.hxx>
using namespace std;
void
process_options (options& o)
{
database db (o.database ()[0]);
// If --generate-schema-only was specified, then set --generate-schema
// as well.
//
if (o.generate_schema_only ())
o.generate_schema (true);
// Set the default schema format depending on the database.
//
if (o.generate_schema () && o.schema_format ()[db].empty ())
{
set<schema_format>& f (o.schema_format ()[db]);
switch (db)
{
case database::common:
{
break; // No schema for common.
}
case database::mssql:
case database::mysql:
case database::oracle:
case database::pgsql:
{
f.insert (schema_format::sql);
break;
}
case database::sqlite:
{
f.insert (schema_format::embedded);
break;
}
}
}
// Set default --schema-name value.
//
if (o.schema_name ().count (db) == 0)
o.schema_name ()[db] = "";
// Set default --*--file-suffix values.
//
{
database cm (database::common);
o.odb_file_suffix ().insert (make_pair (cm, string ("-odb")));
o.sql_file_suffix ().insert (make_pair (cm, string ("")));
o.schema_file_suffix ().insert (make_pair (cm, string ("-schema")));
}
if (o.multi_database () == multi_database::disabled)
{
o.odb_file_suffix ().insert (make_pair (db, string ("-odb")));
o.sql_file_suffix ().insert (make_pair (db, string ("")));
o.schema_file_suffix ().insert (make_pair (db, string ("-schema")));
}
else
{
o.odb_file_suffix ().insert (make_pair (db, "-odb-" + db.string ()));
o.sql_file_suffix ().insert (make_pair (db, "-" + db.string ()));
o.schema_file_suffix ().insert (make_pair (db, "-schema-" + db.string ()));
}
// Set default --default-database value.
//
if (!o.default_database_specified ())
{
switch (o.multi_database ())
{
case multi_database::disabled:
{
o.default_database (db);
o.default_database_specified (true);
break;
}
case multi_database::dynamic:
{
o.default_database (database::common);
o.default_database_specified (true);
break;
}
case multi_database::static_:
{
// No default database unless explicitly specified.
break;
}
}
}
}
|