0
|
1 module dmd.Param;
|
|
2
|
114
|
3 import dmd.common;
|
0
|
4 import dmd.Array;
|
|
5 import dmd.OutBuffer;
|
|
6
|
|
7 // Put command line switches in here
|
|
8 struct Param
|
|
9 {
|
|
10 bool obj; // write object file
|
|
11 bool link; // perform link
|
|
12 bool lib; // write library file instead of object file(s)
|
|
13 bool multiobj; // break one object file into multiple ones
|
|
14 bool oneobj; // write one object file instead of multiple ones
|
|
15 bool trace; // insert profiling hooks
|
|
16 bool quiet; // suppress non-error messages
|
|
17 bool verbose; // verbose compile
|
|
18 bool vtls; // identify thread local variables
|
|
19 byte symdebug; // insert debug symbolic information
|
|
20 bool optimize; // run optimizer
|
|
21 bool cpu; // target CPU
|
|
22 bool isX86_64; // generate X86_64 bit code
|
|
23 bool isLinux; // generate code for linux
|
|
24 bool isOSX; // generate code for Mac OSX
|
|
25 bool isWindows; // generate code for Windows
|
|
26 bool isFreeBSD; // generate code for FreeBSD
|
|
27 bool isSolaris; // generate code for Solaris
|
|
28 bool scheduler; // which scheduler to use
|
|
29 bool useDeprecated; // allow use of deprecated features
|
|
30 bool useAssert; // generate runtime code for assert()'s
|
|
31 bool useInvariants; // generate class invariant checks
|
|
32 bool useIn; // generate precondition checks
|
|
33 bool useOut; // generate postcondition checks
|
|
34 bool useArrayBounds; // generate array bounds checks
|
|
35 bool useSwitchError; // check for switches without a default
|
|
36 bool useUnitTests; // generate unittest code
|
|
37 bool useInline; // inline expand functions
|
|
38 bool release; // build release version
|
|
39 bool preservePaths; // !=0 means don't strip path from source file
|
|
40 bool warnings; // enable warnings
|
|
41 bool pic; // generate position-independent-code for shared libs
|
|
42 bool cov; // generate code coverage data
|
|
43 bool nofloat; // code should not pull in floating point support
|
|
44 byte Dversion; // D version number
|
|
45 bool ignoreUnsupportedPragmas; // rather than error on them
|
|
46 bool safe; // enforce safe memory model
|
|
47
|
|
48 string argv0; // program name
|
|
49 Array imppath; // array of char*'s of where to look for import modules
|
|
50 Array fileImppath; // array of char*'s of where to look for file import modules
|
|
51 string objdir; // .obj/.lib file output directory
|
|
52 string objname; // .obj file output name
|
|
53 string libname; // .lib file output name
|
|
54
|
|
55 bool doDocComments; // process embedded documentation comments
|
|
56 string docdir; // write documentation file to docdir directory
|
|
57 string docname; // write documentation file to docname
|
|
58 Array ddocfiles; // macro include files for Ddoc
|
|
59
|
|
60 bool doHdrGeneration; // process embedded documentation comments
|
|
61 string hdrdir; // write 'header' file to docdir directory
|
|
62 string hdrname; // write 'header' file to docname
|
|
63
|
79
|
64 bool doXGeneration; // write JSON file
|
|
65 string xfilename; // write JSON file to xfilename
|
|
66
|
0
|
67 uint debuglevel; // debug level
|
|
68 Array debugids; // debug identifiers
|
|
69
|
|
70 uint versionlevel; // version level
|
|
71 Array versionids; // version identifiers
|
|
72
|
|
73 bool dump_source;
|
|
74
|
|
75 const(char)* defaultlibname; // default library for non-debug builds
|
|
76 const(char)* debuglibname; // default library for debug builds
|
|
77
|
|
78 string moduleDepsFile; // filename for deps output
|
|
79 OutBuffer moduleDeps; // contents to be written to deps file
|
|
80
|
|
81 // Hidden debug switches
|
|
82 bool debuga;
|
|
83 bool debugb;
|
|
84 bool debugc;
|
|
85 bool debugf;
|
|
86 bool debugr;
|
|
87 bool debugw;
|
|
88 bool debugx;
|
|
89 bool debugy;
|
|
90
|
|
91 bool run; // run resulting executable
|
|
92 size_t runargs_length;
|
|
93 string[] runargs; // arguments for executable
|
|
94
|
|
95 // Linker stuff
|
|
96 Array objfiles;
|
|
97 Array linkswitches;
|
|
98 Array libfiles;
|
|
99 string deffile;
|
|
100 string resfile;
|
|
101 string exefile;
|
|
102 } |