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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
// file : odb/options.cli
// author : Boris Kolpackov <boris@codesynthesis.com>
// copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
include <string>;
include <vector>;
include <odb/database.hxx>;
class options
{
//
// Wrapper options. These are not passed to the plugin.
//
bool --help {"Print usage information and exit."};
bool --version {"Print version and exit."};
//
// Plugin options.
//
::database --database | -d
{
"<db>",
"Generate code for the <db> database. Valid values are \cb{mysql} and
\cb{tracer}."
};
bool --generate-schema
{
"Generate database schema. The resulting SQL file creates database
tables required to store classes defined in the file being compiled.
Note that all the existing information stored in such tables will be
lost."
};
std::string --output-dir | -o
{
"<dir>",
"Write the generated files to <dir> instead of the current directory."
};
std::string --odb-file-suffix = "-odb"
{
"<suffix>",
"Use <suffix> instead of the default \cb{-odb} to construct the names
of the generated C++ files."
};
std::string --hxx-suffix = ".hxx"
{
"<suffix>",
"Use <suffix> instead of the default \cb{.hxx} to construct the name of
the generated C++ header file."
};
std::string --ixx-suffix = ".ixx"
{
"<suffix>",
"Use <suffix> instead of the default \cb{.ixx} to construct the name of
the generated C++ inline file."
};
std::string --cxx-suffix = ".cxx"
{
"<suffix>",
"Use <suffix> instead of the default \cb{.cxx} to construct the name of
the generated C++ source file."
};
std::string --sql-suffix = ".sql"
{
"<suffix>",
"Use <suffix> instead of the default \cb{.sql} to construct the name of
the generated database schema file."
};
bool --include-with-brackets
{
"Use angle brackets (<>) instead of quotes (\"\") in the generated
\cb{#include} directives."
};
std::string --include-prefix
{
"<prefix>",
"Add <prefix> to the generated \cb{#include} directive paths."
};
std::string --guard-prefix
{
"<prefix>",
"Add <prefix> to the generated header inclusion guards. The prefix is
transformed to upper case and characters that are illegal in a
preprocessor macro name are replaced with underscores."
};
// This is a "fake" option in that it is actually handled by
// argv_file_scanner. We have it here to get the documentation.
//
std::string --options-file
{
"<file>",
"Read additional options from <file> with each option appearing on a
separate line optionally followed by space and an option value. Empty
lines and lines starting with \cb{#} are ignored. Option values can
be enclosed in double (\cb{\"}) or single (\cb{'}) quotes to preserve
leading and trailing whitespaces as well as to specify empty values.
If the value itself contains trailing or leading quotes, enclose it
with an extra pair of quotes, for example \cb{'\"x\"'}. Non-leading
and non-trailing quotes are interpreted as being part of the option
value.
The semantics of providing options in a file is equivalent to providing
the same set of options in the same order on the command line at the
point where the \cb{--options-file} option is specified except that
the shell escaping and quoting is not required. Repeat this option
to specify more than one options files."
};
bool --trace {"Trace the compilation process."};
//
// MySQL-specific options.
//
std::string --mysql-engine = "InnoDB"
{
"<engine>",
"Use <engine> instead of the default \cb{InnoDB} in the generated
database schema file. For more information on the storage engine
options see the MySQL documentation. If you would like to use the
database-default engine, pass \cb{default} as the value for this
option."
};
};
|