comparison dmd/Param.d @ 0:10317f0c89a5

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