annotate dmd/Param.d @ 179:cd48cb899aee

Updated to dmd2.040
author korDen
date Sun, 17 Oct 2010 20:56:07 +0400
parents e3afd1303184
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
1 module dmd.Param;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
2
114
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents: 79
diff changeset
3 import dmd.common;
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
4 import dmd.Array;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
5 import dmd.OutBuffer;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
6
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
7 // Put command line switches in here
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
8 struct Param
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
9 {
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
10 bool obj; // write object file
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
11 bool link; // perform link
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
12 bool lib; // write library file instead of object file(s)
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
13 bool multiobj; // break one object file into multiple ones
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
14 bool oneobj; // write one object file instead of multiple ones
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
15 bool trace; // insert profiling hooks
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
16 bool quiet; // suppress non-error messages
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
17 bool verbose; // verbose compile
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
18 bool vtls; // identify thread local variables
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
19 byte symdebug; // insert debug symbolic information
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
20 bool optimize; // run optimizer
179
cd48cb899aee Updated to dmd2.040
korDen
parents: 178
diff changeset
21 bool map; // generate linker .map file
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
22 bool cpu; // target CPU
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
23 bool isX86_64; // generate X86_64 bit code
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
24 bool isLinux; // generate code for linux
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
25 bool isOSX; // generate code for Mac OSX
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
26 bool isWindows; // generate code for Windows
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
27 bool isFreeBSD; // generate code for FreeBSD
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
28 bool isSolaris; // generate code for Solaris
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
29 bool scheduler; // which scheduler to use
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
30 bool useDeprecated; // allow use of deprecated features
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
31 bool useAssert; // generate runtime code for assert()'s
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
32 bool useInvariants; // generate class invariant checks
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
33 bool useIn; // generate precondition checks
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
34 bool useOut; // generate postcondition checks
130
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 129
diff changeset
35 byte useArrayBounds; // 0: no array bounds checks
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 129
diff changeset
36 // 1: array bounds checks for safe functions only
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 129
diff changeset
37 // 2: array bounds checks for all functions
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 129
diff changeset
38 bool noboundscheck; // no array bounds checking at all
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
39 bool useSwitchError; // check for switches without a default
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
40 bool useUnitTests; // generate unittest code
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
41 bool useInline; // inline expand functions
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
42 bool release; // build release version
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
43 bool preservePaths; // !=0 means don't strip path from source file
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
44 bool warnings; // enable warnings
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
45 bool pic; // generate position-independent-code for shared libs
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
46 bool cov; // generate code coverage data
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
47 bool nofloat; // code should not pull in floating point support
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
48 byte Dversion; // D version number
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
49 bool ignoreUnsupportedPragmas; // rather than error on them
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
50
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
51 string argv0; // program name
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
52 Array imppath; // array of char*'s of where to look for import modules
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
53 Array fileImppath; // array of char*'s of where to look for file import modules
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
54 string objdir; // .obj/.lib file output directory
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
55 string objname; // .obj file output name
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
56 string libname; // .lib file output name
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
57
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
58 bool doDocComments; // process embedded documentation comments
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
59 string docdir; // write documentation file to docdir directory
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
60 string docname; // write documentation file to docname
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
61 Array ddocfiles; // macro include files for Ddoc
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
62
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
63 bool doHdrGeneration; // process embedded documentation comments
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
64 string hdrdir; // write 'header' file to docdir directory
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
65 string hdrname; // write 'header' file to docname
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
66
79
43073c7c7769 updated to 2.035
Trass3r
parents: 0
diff changeset
67 bool doXGeneration; // write JSON file
43073c7c7769 updated to 2.035
Trass3r
parents: 0
diff changeset
68 string xfilename; // write JSON file to xfilename
43073c7c7769 updated to 2.035
Trass3r
parents: 0
diff changeset
69
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
70 uint debuglevel; // debug level
129
010eb8f0e18d further work on dmd test suite
korDen
parents: 114
diff changeset
71 Vector!string debugids; // debug identifiers
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
72
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
73 uint versionlevel; // version level
178
e3afd1303184 Many small bugs fixed
korDen
parents: 130
diff changeset
74 Vector!(string) versionids; // version identifiers
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
75
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
76 bool dump_source;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
77
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
78 const(char)* defaultlibname; // default library for non-debug builds
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
79 const(char)* debuglibname; // default library for debug builds
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
80
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
81 string moduleDepsFile; // filename for deps output
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
82 OutBuffer moduleDeps; // contents to be written to deps file
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
83
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
84 // Hidden debug switches
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
85 bool debuga;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
86 bool debugb;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
87 bool debugc;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
88 bool debugf;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
89 bool debugr;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
90 bool debugw;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
91 bool debugx;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
92 bool debugy;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
93
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
94 bool run; // run resulting executable
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
95 size_t runargs_length;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
96 string[] runargs; // arguments for executable
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
97
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
98 // Linker stuff
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
99 Array objfiles;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
100 Array linkswitches;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
101 Array libfiles;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
102 string deffile;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
103 string resfile;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
104 string exefile;
179
cd48cb899aee Updated to dmd2.040
korDen
parents: 178
diff changeset
105 string mapfile;
178
e3afd1303184 Many small bugs fixed
korDen
parents: 130
diff changeset
106 }