3 SPDX-FileCopyrightText: Copyright The SCons Foundation (https://scons.org)
4 SPDX-License-Identifier: MIT
5 SPDX-FileType: DOCUMENTATION
7 This file is processed by the bin/SConsDoc.py module.
11 <!ENTITY % scons SYSTEM '../../doc/scons.mod'>
13 <!ENTITY % builders-mod SYSTEM '../../doc/generated/builders.mod'>
15 <!ENTITY % functions-mod SYSTEM '../../doc/generated/functions.mod'>
17 <!ENTITY % tools-mod SYSTEM '../../doc/generated/tools.mod'>
19 <!ENTITY % variables-mod SYSTEM '../../doc/generated/variables.mod'>
23 <sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
24 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
25 xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd">
30 The D compiler to use.
31 See also &cv-link-SHDC; for compiling to shared objects.
39 The command line used to compile a D file to an object file.
40 Any options specified in the &cv-link-DFLAGS; construction variable
41 is included on this command line.
42 See also &cv-link-SHDCOM; for compiling to shared objects.
50 If set, the string displayed when a D source file
51 is compiled to a (static) object file.
52 If not set, then &cv-link-DCOM; (the command line) is displayed.
53 See also &cv-link-SHDCOMSTR; for compiling to shared objects.
61 List of debug tags to enable when compiling.
66 <cvar name="DDEBUGPREFIX">
74 <cvar name="DDEBUGSUFFIX">
82 <cvar name="DFILESUFFIX">
90 <cvar name="DFLAGPREFIX">
101 General options that are passed to the D compiler.
106 <cvar name="DFLAGSUFFIX">
114 <cvar name="DINCSUFFIX">
122 <cvar name="DINCPREFIX">
133 Name of the lib tool to use for D codes.
138 <cvar name="DLIBCOM">
141 The command line to use when creating libraries.
146 <cvar name="DLIBDIRPREFIX">
154 <cvar name="DLIBDIRSUFFIX">
162 <cvar name="DLIBFLAGSUFFIX">
170 <cvar name="DLIBFLAGPREFIX">
178 <cvar name="DLIBLINKPREFIX">
186 <cvar name="DLIBLINKSUFFIX">
197 Name of the linker to use for linking systems including D sources.
198 See also &cv-link-SHDLINK; for linking shared objects.
203 <cvar name="DLINKCOM">
206 The command line to use when linking systems including D sources.
207 See also &cv-link-SHDLINKCOM; for linking shared objects.
212 <cvar name="DLINKFLAGS">
215 List of linker flags.
216 See also &cv-link-SHDLINKFLAGS; for linking shared objects.
221 <cvar name="DLINKFLAGSUFFIX">
229 <cvar name="DLINKFLAGPREFIX">
240 List of paths to search for import modules.
245 <cvar name="DRPATHPREFIX">
253 <cvar name="DRPATHSUFFIX">
261 <cvar name="DVERPREFIX">
269 <cvar name="DVERSIONS">
272 List of version tags to enable when compiling.
277 <cvar name="DVERSUFFIX">
288 The name of the compiler to use when compiling D source
289 destined to be in a shared object.
290 See also &cv-link-DC; for compiling to static objects.
298 The command line to use when compiling code to be part of shared objects.
299 See also &cv-link-DCOM; for compiling to static objects.
304 <cvar name="SHDCOMSTR">
307 If set, the string displayed when a D source file
308 is compiled to a (shared) object file.
309 If not set, then &cv-link-SHDCOM; (the command line) is displayed.
310 See also &cv-link-DCOMSTR; for compiling to static objects.
316 <cvar name="SHDLIBVERSIONFLAGS">
319 Extra flags added to &cv-link-SHDLINKCOM; when building versioned
320 &b-link-SharedLibrary;. These flags are only used when &cv-link-SHLIBVERSION; is
326 <cvar name="SHDLINK">
329 The linker to use when creating shared objects for code bases
331 See also &cv-link-DLINK; for linking static objects.
336 <cvar name="SHDLINKCOM">
339 The command line to use when generating shared objects.
340 See also &cv-link-DLINKCOM; for linking static objects.
345 <cvar name="SHDLINKFLAGS">
348 The list of flags to use when generating a shared object.
349 See also &cv-link-DLINKFLAGS; for linking static objects.
354 <cvar name="DI_FILE_SUFFIX">
357 Suffix of d include files default is .di
362 <cvar name="DI_FILE_DIR">
365 Path where .di files will be generated
370 <cvar name="DI_FILE_DIR_PREFIX">
373 Prefix to send the di path argument to compiler
378 <cvar name="DI_FILE_DIR_SUFFFIX">
381 Suffix to send the di path argument to compiler
386 <builder name="ProgramAllAtOnce">
389 Builds an executable from D sources without first creating individual
390 objects for each file.
393 D sources can be compiled file-by-file as C and C++ source are, and
394 D is integrated into the &scons; Object and Program builders for
395 this model of build. D codes can though do whole source
396 meta-programming (some of the testing frameworks do this). For this
397 it is imperative that all sources are compiled and linked in a single
398 call to the D compiler. This builder serves that purpose.
401 env.ProgramAllAtOnce('executable', ['mod_a.d, mod_b.d', 'mod_c.d'])
404 This command will compile the modules mod_a, mod_b, and mod_c in a
405 single compilation process without first creating object files for
406 the modules. Some of the D compilers will create executable.o others