3 SPDX-License-Identifier: MIT
5 Copyright The SCons Foundation
9 <!ENTITY % scons SYSTEM '../../doc/scons.mod'>
11 <!ENTITY % builders-mod SYSTEM '../../doc/generated/builders.mod'>
13 <!ENTITY % functions-mod SYSTEM '../../doc/generated/functions.mod'>
15 <!ENTITY % tools-mod SYSTEM '../../doc/generated/tools.mod'>
17 <!ENTITY % variables-mod SYSTEM '../../doc/generated/variables.mod'>
21 <sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
22 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23 xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd">
28 The D compiler to use.
29 See also &cv-link-SHDC; for compiling to shared objects.
37 The command line used to compile a D file to an object file.
38 Any options specified in the &cv-link-DFLAGS; construction variable
39 is included on this command line.
40 See also &cv-link-SHDCOM; for compiling to shared objects.
48 If set, the string displayed when a D source file
49 is compiled to a (static) object file.
50 If not set, then &cv-link-DCOM; (the command line) is displayed.
51 See also &cv-link-SHDCOMSTR; for compiling to shared objects.
59 List of debug tags to enable when compiling.
64 <cvar name="DDEBUGPREFIX">
72 <cvar name="DDEBUGSUFFIX">
80 <cvar name="DFILESUFFIX">
88 <cvar name="DFLAGPREFIX">
99 General options that are passed to the D compiler.
104 <cvar name="DFLAGSUFFIX">
112 <cvar name="DINCSUFFIX">
120 <cvar name="DINCPREFIX">
131 Name of the lib tool to use for D codes.
136 <cvar name="DLIBCOM">
139 The command line to use when creating libraries.
144 <cvar name="DLIBDIRPREFIX">
152 <cvar name="DLIBDIRSUFFIX">
160 <cvar name="DLIBFLAGSUFFIX">
168 <cvar name="DLIBFLAGPREFIX">
176 <cvar name="DLIBLINKPREFIX">
184 <cvar name="DLIBLINKSUFFIX">
195 Name of the linker to use for linking systems including D sources.
196 See also &cv-link-SHDLINK; for linking shared objects.
201 <cvar name="DLINKCOM">
204 The command line to use when linking systems including D sources.
205 See also &cv-link-SHDLINKCOM; for linking shared objects.
210 <cvar name="DLINKFLAGS">
213 List of linker flags.
214 See also &cv-link-SHDLINKFLAGS; for linking shared objects.
219 <cvar name="DLINKFLAGSUFFIX">
227 <cvar name="DLINKFLAGPREFIX">
238 List of paths to search for import modules.
243 <cvar name="DRPATHPREFIX">
251 <cvar name="DRPATHSUFFIX">
259 <cvar name="DVERPREFIX">
267 <cvar name="DVERSIONS">
270 List of version tags to enable when compiling.
275 <cvar name="DVERSUFFIX">
286 The name of the compiler to use when compiling D source
287 destined to be in a shared objects.
288 See also &cv-link-DC; for compiling to static objects.
296 The command line to use when compiling code to be part of shared objects.
297 See also &cv-link-DCOM; for compiling to static objects.
302 <cvar name="SHDCOMSTR">
305 If set, the string displayed when a D source file
306 is compiled to a (shared) object file.
307 If not set, then &cv-link-SHDCOM; (the command line) is displayed.
308 See also &cv-link-DCOMSTR; for compiling to static objects.
314 <cvar name="SHDLIBVERSIONFLAGS">
317 Extra flags added to &cv-link-SHDLINKCOM; when building versioned
318 &b-link-SharedLibrary;. These flags are only used when &cv-link-SHLIBVERSION; is
324 <cvar name="SHDLINK">
327 The linker to use when creating shared objects for code bases
329 See also &cv-link-DLINK; for linking static objects.
334 <cvar name="SHDLINKCOM">
337 The command line to use when generating shared objects.
338 See also &cv-link-DLINKCOM; for linking static objects.
343 <cvar name="SHDLINKFLAGS">
346 The list of flags to use when generating a shared object.
347 See also &cv-link-DLINKFLAGS; for linking static objects.
352 <cvar name="DI_FILE_SUFFIX">
355 Suffix of d include files default is .di
360 <cvar name="DI_FILE_DIR">
363 Path where .di files will be generated
368 <cvar name="DI_FILE_DIR_PREFIX">
371 Prefix to send the di path argument to compiler
376 <cvar name="DI_FILE_DIR_SUFFFIX">
379 Suffix to send the di path argument to compiler
384 <builder name="ProgramAllAtOnce">
387 Builds an executable from D sources without first creating individual
388 objects for each file.
391 D sources can be compiled file-by-file as C and C++ source are, and
392 D is integrated into the &scons; Object and Program builders for
393 this model of build. D codes can though do whole source
394 meta-programming (some of the testing frameworks do this). For this
395 it is imperative that all sources are compiled and linked in a single
396 call to the D compiler. This builder serves that purpose.
399 env.ProgramAllAtOnce('executable', ['mod_a.d, mod_b.d', 'mod_c.d'])
402 This command will compile the modules mod_a, mod_b, and mod_c in a
403 single compilation process without first creating object files for
404 the modules. Some of the D compilers will create executable.o others