diff options
Diffstat (limited to 'scons.1')
-rw-r--r-- | scons.1 | 426 |
1 files changed, 299 insertions, 127 deletions
@@ -2,12 +2,12 @@ .\" Title: SCONS .\" Author: Steven Knight .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> -.\" Date: <pubdate>2004 - 2016</pubdate> -.\" Manual: SCons 3.0.1 -.\" Source: SCons 3.0.1 version 3.0.1 +.\" Date: <pubdate>2004 - 2019</pubdate> +.\" Manual: SCons 3.0.5 +.\" Source: SCons 3.0.5 version 3.0.5 .\" Language: English .\" -.TH "SCONS" "1" "<pubdate>2004 - 2016</pubdate>" "SCons 3\&.0\&.1 version 3.0.1" "SCons 3\&.0\&.1" +.TH "SCONS" "1" "<pubdate>2004 - 2019</pubdate>" "SCons 3\&.0\&.5 version 3.0.5" "SCons 3\&.0\&.5" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -42,8 +42,12 @@ By default, \fBscons\fR searches for a file named \fISConstruct\fR, -\fISconstruct\fR, or -\fIsconstruct\fR +\fISconstruct\fR, +\fIsconstruct\fR, +\fISConstruct\&.py\fR +\fISconstruct\&.py\fR +or +\fIsconstruct\&.py\fR (in that order) in the current directory and reads its configuration from the first file found\&. An alternate file name may be specified via the \fB\-f\fR option\&. @@ -181,7 +185,7 @@ scons .RE .\} .PP -will build all target files in or below the current directory\&. Explicit default targets (to be built when no targets are specified on the command line) may be defined the SConscript file(s) using the +will build all target files in or below the current directory\&. Explicit default targets (to be built when no targets are specified on the command line) may be defined in the SConscript file(s) using the \fBDefault()\fR function, described below\&. .PP @@ -360,7 +364,7 @@ else: The command\-line variable arguments are also available in the ARGLIST list, indexed by their order on the command line\&. This allows you to process them in order rather than by name, if necessary\&. ARGLIST[0] returns a tuple containing (argname, argvalue)\&. A Python exception is thrown if you try to access a list member that does not exist\&. .PP \fBscons\fR -requires Python version 2\&.7 or later\&. There should be no other dependencies or requirements to run +requires either Python 2\&.7 or Python 3\&.5 or higher\&. There should be no other dependencies or requirements to run \fBscons\&.\fR .PP By default, @@ -462,8 +466,12 @@ Change to the specified \fIdirectory\fR before searching for the \fISConstruct\fR, -\fISconstruct\fR, or -\fIsconstruct\fR +\fISconstruct\fR, +\fIsconstruct\fR, +\fISConstruct\&.py\fR +\fISconstruct\&.py\fR +or +\fIsconstruct\&.py\fR file, or doing anything else\&. Multiple \fB\-C\fR options are interpreted relative to the previous one, and the right\-most @@ -471,8 +479,12 @@ options are interpreted relative to the previous one, and the right\-most option wins\&. (This option is nearly equivalent to \fB\-f directory/SConstruct\fR, except that it will search for \fISConstruct\fR, -\fISconstruct\fR, or -\fIsconstruct\fR +\fISconstruct\fR, +\fIsconstruct\fR, +\fISConstruct\&.py\fR +\fISconstruct\&.py\fR +or +\fIsconstruct\&.py\fR in the specified directory\&.) .RE .PP @@ -616,7 +628,8 @@ Prints various time profiling information: .sp -1 .IP \(bu 2.3 .\} -The time spent executing each individual build command.RE +The time spent executing each individual build command +.RE .sp .RS 4 .ie n \{\ @@ -626,7 +639,8 @@ The time spent executing each individual build command.RE .sp -1 .IP \(bu 2.3 .\} -The total build time (time SCons ran from beginning to end).RE +The total build time (time SCons ran from beginning to end) +.RE .sp .RS 4 .ie n \{\ @@ -636,7 +650,8 @@ The total build time (time SCons ran from beginning to end).RE .sp -1 .IP \(bu 2.3 .\} -The total time spent reading and executing SConscript files.RE +The total time spent reading and executing SConscript files +.RE .sp .RS 4 .ie n \{\ @@ -646,8 +661,8 @@ The total time spent reading and executing SConscript files.RE .sp -1 .IP \(bu 2.3 .\} -The total time spent SCons itself spend running -(that is, not counting reading and executing SConscript files).RE +The total time spent SCons itself spend running (that is, not counting reading and executing SConscript files) +.RE .sp .RS 4 .ie n \{\ @@ -657,7 +672,8 @@ The total time spent SCons itself spend running .sp -1 .IP \(bu 2.3 .\} -The total time spent executing all build commands.RE +The total time spent executing all build commands +.RE .sp .RS 4 .ie n \{\ @@ -667,7 +683,8 @@ The total time spent executing all build commands.RE .sp -1 .IP \(bu 2.3 .\} -The elapsed wall\-clock time spent executing those build commands.RE +The elapsed wall\-clock time spent executing those build commands +.RE .sp .RS 4 .ie n \{\ @@ -677,7 +694,10 @@ The elapsed wall\-clock time spent executing those build commands.RE .sp -1 .IP \(bu 2.3 .\} -The time spent processing each file passed to the \fISConscript()\fR function.RE +The time spent processing each file passed to the +\fISConscript()\fR +function +.RE .sp (When \fBscons\fR @@ -727,6 +747,11 @@ or \fIcopy\fR\&. SCons will attempt to duplicate files using the mechanisms in the specified order\&. .RE .PP +\-\-enable\-virtualenv +.RS 4 +Import virtualenv\-related variables to SCons\&. +.RE +.PP \-f\fI file\fR, \-\-file=\fIfile\fR, \-\-makefile=\fIfile\fR, \-\-sconstruct=\fIfile\fR .RS 4 Use @@ -764,6 +789,11 @@ to search for imported Python modules\&. If several options are used, the directories are searched in the order specified\&. .RE .PP +\-\-ignore\-virtualenv +.RS 4 +Suppress importing virtualenv\-related variables to SCons\&. +.RE +.PP \-\-implicit\-cache .RS 4 Cache implicit dependencies\&. This causes @@ -1153,9 +1183,12 @@ scons \-\-tree=all,prune,status target .RS 4 Walks up the directory structure until an \fISConstruct ,\fR -\fISconstruct\fR +\fISconstruct ,\fR +\fIsconstruct ,\fR +\fISConstruct\&.py\fR +\fISconstruct\&.py\fR or -\fIsconstruct\fR +\fIsconstruct\&.py\fR file is found, and uses that as the top of the directory tree\&. If no targets are specified on the command line, only targets at or below the current directory will be built\&. .RE .PP @@ -1291,18 +1324,6 @@ These warnings are enabled by default\&. Enables or disables warnings about missing SConscript files\&. These warnings are enabled by default\&. .RE .PP -\-\-warn=no\-md5\-module, \-\-warn=no\-no\-md5\-module -.RS 4 -Enables or disables warnings about the version of Python not having an MD5 checksum module available\&. These warnings are enabled by default\&. -.RE -.PP -\-\-warn=no\-metaclass\-support, \-\-warn=no\-no\-metaclass\-support -.RS 4 -Enables or disables warnings about the version of Python not supporting metaclasses when the -\fB\-\-debug=memoizer\fR -option is used\&. These warnings are enabled by default\&. -.RE -.PP \-\-warn=no\-object\-count, \-\-warn=no\-no\-object\-count .RS 4 Enables or disables warnings about the @@ -1630,6 +1651,10 @@ applelink Sets construction variables for the Apple linker (similar to the GNU linker)\&. .sp Sets: +\fB$APPLELINK_COMPATIBILITY_VERSION\fR, +\fB$APPLELINK_CURRENT_VERSION\fR, +\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR, +\fB$APPLELINK_NO_CURRENT_VERSION\fR, \fB$FRAMEWORKPATHPREFIX\fR, \fB$LDMODULECOM\fR, \fB$LDMODULEFLAGS\fR, @@ -1638,6 +1663,8 @@ Sets: \fB$LINKCOM\fR, \fB$SHLINKCOM\fR, \fB$SHLINKFLAGS\fR, +\fB$_APPLELINK_COMPATIBILITY_VERSION\fR, +\fB$_APPLELINK_CURRENT_VERSION\fR, \fB$_FRAMEWORKPATH\fR, \fB$_FRAMEWORKS\fR\&. .sp @@ -2747,6 +2774,7 @@ Sets: \fB$JAVACFLAGS\fR, \fB$JAVACLASSPATH\fR, \fB$JAVACLASSSUFFIX\fR, +\fB$JAVAINCLUDES\fR, \fB$JAVASOURCEPATH\fR, \fB$JAVASUFFIX\fR\&. .sp @@ -2840,7 +2868,8 @@ lexical analyser\&. Sets: \fB$LEX\fR, \fB$LEXCOM\fR, -\fB$LEXFLAGS\fR\&. +\fB$LEXFLAGS\fR, +\fB$LEXUNISTD\fR\&. .sp Uses: \fB$LEXCOMSTR\fR\&. @@ -3731,7 +3760,9 @@ env\&.Program(\*(Aqbar\*(Aq, source = \*(Aqbar\&.c foo\&.c\*(Aq\&.split()) Target and source file names that are not absolute path names (that is, do not begin with \fB/\fR on POSIX systems or -\fB\efR on Windows systems, with or without an optional drive letter) are interpreted relative to the directory containing the SConscript\fR +\fB\e\fR +on Windows systems, with or without an optional drive letter) are interpreted relative to the directory containing the +\fBSConscript\fR file being read\&. An initial \fB#\fR (hash mark) on a path name means that the rest of the file name is interpreted relative to the directory containing the top\-level @@ -4642,9 +4673,10 @@ Examples: .RS 4 .\} .nf -env\&.Java(target = \*(Aqclasses\*(Aq, source = \*(Aqsrc\*(Aq) -env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(Aqsrc1\*(Aq, \*(Aqsrc2\*(Aq]) -env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(AqFile1\&.java\*(Aq, \*(AqFile2\&.java\*(Aq]) + env\&.Java(target = \*(Aqclasses\*(Aq, source = \*(Aqsrc\*(Aq) + env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(Aqsrc1\*(Aq, \*(Aqsrc2\*(Aq]) + env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(AqFile1\&.java\*(Aq, \*(AqFile2\&.java\*(Aq]) + .fi .if n \{\ .RE @@ -4658,8 +4690,9 @@ environment variable to tell the compiler what encoding is used\&. For portibili .RS 4 .\} .nf -env = Environment() -env[\*(AqENV\*(Aq][\*(AqLANG\*(Aq] = \*(Aqen_GB\&.UTF\-8\*(Aq + env = Environment() + env[\*(AqENV\*(Aq][\*(AqLANG\*(Aq] = \*(Aqen_GB\&.UTF\-8\*(Aq + .fi .if n \{\ .RE @@ -4960,23 +4993,24 @@ barlocalincs = [\*(AqStdAfx\&.h\*(Aq] barresources = [\*(Aqbar\&.rc\*(Aq,\*(Aqresource\&.h\*(Aq] barmisc = [\*(Aqbar_readme\&.txt\*(Aq] -dll = env\&.SharedLibrary(target = \*(Aqbar\&.dll\*(Aq, - source = barsrcs) +dll = env\&.SharedLibrary(target=\*(Aqbar\&.dll\*(Aq, + source=barsrcs) buildtarget = [s for s in dll if str(s)\&.endswith(\*(Aqdll\*(Aq)] -env\&.MSVSProject(target = \*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq], - srcs = barsrcs, - incs = barincs, - localincs = barlocalincs, - resources = barresources, - misc = barmisc, - buildtarget = buildtarget, - variant = \*(AqRelease\*(Aq) +env\&.MSVSProject(target=\*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq], + srcs=barsrcs, + incs=barincs, + localincs=barlocalincs, + resources=barresources, + misc=barmisc, + buildtarget=buildtarget, + variant=\*(AqRelease\*(Aq) + .fi .if n \{\ .RE .\} .sp -Starting with version 2\&.4 of SCons it\*(Aqs also possible to specify the optional argument +Starting with version 2\&.4 of SCons it is also possible to specify the optional argument \fIDebugSettings\fR, which creates files for debugging under Visual Studio: .PP DebugSettings @@ -5009,7 +5043,7 @@ if msvcver == \*(Aq9\*(Aq or msvcver == \*(Aq11\*(Aq: env = Environment(MSVC_VERSION=msvcver+\*(Aq\&.0\*(Aq, MSVC_BATCH=False) else: env = Environment() - + AddOption(\*(Aq\-\-userfile\*(Aq, action=\*(Aqstore_true\*(Aq, dest=\*(Aquserfile\*(Aq, default=False, help="Create Visual Studio Project user file") @@ -5044,10 +5078,10 @@ V9DebugSettings = { } # -# 2\&. Because there are a lot of different options depending on the Microsoft -# Visual Studio version, if you use more than one version you have to -# define a dictionary per version, for instance if you want to create a user -# file to launch a specific application for testing your dll with Microsoft +# 2\&. Because there are a lot of different options depending on the Microsoft +# Visual Studio version, if you use more than one version you have to +# define a dictionary per version, for instance if you want to create a user +# file to launch a specific application for testing your dll with Microsoft # Visual Studio 2012 (v11): # V10DebugSettings = { @@ -5079,7 +5113,7 @@ V10DebugSettings = { } # -# 3\&. Select the dictionary you want depending on the version of visual Studio +# 3\&. Select the dictionary you want depending on the version of visual Studio # Files you want to generate\&. # if not env\&.GetOption(\*(Aquserfile\*(Aq): @@ -5088,7 +5122,7 @@ elif env\&.get(\*(AqMSVC_VERSION\*(Aq, None) == \*(Aq9\&.0\*(Aq: dbgSettings = V9DebugSettings elif env\&.get(\*(AqMSVC_VERSION\*(Aq, None) == \*(Aq11\&.0\*(Aq: dbgSettings = V10DebugSettings -else: +else: dbgSettings = None # @@ -5100,19 +5134,20 @@ barlocalincs = [\*(AqStdAfx\&.h\*(Aq] barresources = [\*(Aqbar\&.rc\*(Aq,\*(Aqresource\&.h\*(Aq] barmisc = [\*(AqReadMe\&.txt\*(Aq] -dll = env\&.SharedLibrary(target = \*(Aqbar\&.dll\*(Aq, - source = barsrcs) +dll = env\&.SharedLibrary(target=\*(Aqbar\&.dll\*(Aq, + source=barsrcs) -env\&.MSVSProject(target = \*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq], - srcs = barsrcs, - incs = barincs, - localincs = barlocalincs, - resources = barresources, - misc = barmisc, - buildtarget = [dll[0]] * 2, - variant = (\*(AqDebug|Win32\*(Aq, \*(AqRelease|Win32\*(Aq), - cmdargs = \*(Aqvc=%s\*(Aq % msvcver, - DebugSettings = (dbgSettings, {})) +env\&.MSVSProject(target=\*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq], + srcs=barsrcs, + incs=barincs, + localincs=barlocalincs, + resources=barresources, + misc=barmisc, + buildtarget=[dll[0]] * 2, + variant=(\*(AqDebug|Win32\*(Aq, \*(AqRelease|Win32\*(Aq), + cmdargs=\*(Aqvc=%s\*(Aq % msvcver, + DebugSettings=(dbgSettings, {})) + .fi .if n \{\ .RE @@ -5158,8 +5193,8 @@ Example Usage: .RS 4 .\} .nf -env\&.MSVSSolution(target = \*(AqBar\*(Aq + env[\*(AqMSVSSOLUTIONSUFFIX\*(Aq], projects = [\*(Aqbar\*(Aq -+ env[\*(AqMSVSPROJECTSUFFIX\*(Aq]], variant = \*(AqRelease\*(Aq) +env\&.MSVSSolution(target=\*(AqBar\*(Aq + env[\*(AqMSVSSOLUTIONSUFFIX\*(Aq], projects=[\*(Aqbar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq]], variant=\*(AqRelease\*(Aq) + .fi .if n \{\ .RE @@ -5207,7 +5242,7 @@ The target packager may be selected with the "PACKAGETYPE" command line option o \fB$PACKAGETYPE\fR construction variable\&. Currently the following packagers available: .sp -* msi \- Microsoft Installer * rpm \- Redhat Package Manger * ipkg \- Itsy Package Management System * tarbz2 \- compressed tar * targz \- compressed tar * zip \- zip file * src_tarbz2 \- compressed tar source * src_targz \- compressed tar source * src_zip \- zip file source +* msi \- Microsoft Installer * rpm \- RPM Package Manger * ipkg \- Itsy Package Management System * tarbz2 \- bzip2 compressed tar * targz \- gzip compressed tar * tarxz \- xz compressed tar * zip \- zip file * src_tarbz2 \- bzip2 compressed tar source * src_targz \- gzip compressed tar source * src_tarxz \- xz compressed tar source * src_zip \- zip file source .sp An updated list is always available under the "package_type" option when running "scons \-\-help" on a project that has packaging activated\&. .sp @@ -6432,7 +6467,7 @@ Any occurrences of a key in the source are replaced by the corresponding value, .RS 4 .\} .nf -env = Environment(tools = [\*(Aqdefault\*(Aq, \*(Aqtextfile\*(Aq]) +env = Environment(tools=[\*(Aqdefault\*(Aq]) env[\*(Aqprefix\*(Aq] = \*(Aq/usr/bin\*(Aq script_dict = {\*(Aq@prefix@\*(Aq: \*(Aq/bin\*(Aq, \*(Aq@exec_prefix@\*(Aq: \*(Aq$prefix\*(Aq} @@ -6459,7 +6494,7 @@ env\&.Substfile(\*(Aqbar\&.in\*(Aq, SUBST_DICT = good_bar) # the SUBST_DICT may be in common (and not an override) substutions = {} -subst = Environment(tools = [\*(Aqtextfile\*(Aq], SUBST_DICT = substitutions) +subst = Environment(tools=[\*(Aqtextfile\*(Aq], SUBST_DICT=substitutions) substitutions[\*(Aq@foo@\*(Aq] = \*(Aqfoo\*(Aq subst[\*(AqSUBST_DICT\*(Aq][\*(Aq@bar@\*(Aq] = \*(Aqbar\*(Aq subst\&.Substfile(\*(Aqpgm1\&.c\*(Aq, [Value(\*(Aq#include "@foo@\&.h"\*(Aq), @@ -7708,7 +7743,7 @@ This specifies a list of default targets, which will be built by scons if no explicit targets are given on the command line\&. Multiple calls to \fBDefault\fR -are legal, and add to the list of default targets\&. +are legal, and add to the list of default targets\&. As noted above, both forms of this call affect the same global list of default targets; the construction environment method applies construction variable expansion to the targets\&. .sp Multiple targets should be specified as separate arguments to the \fBDefault\fR @@ -9238,7 +9273,7 @@ Creates a Scanner object for the specified \fIfunction\fR\&. See the section "Scanner Objects," below, for a complete explanation of the arguments and behavior\&. .RE .PP -SConscript(scripts, [exports, variant_dir, duplicate]), env\&.SConscript(scripts, [exports, variant_dir, duplicate]), SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate]), env\&.SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate]) +SConscript(scripts, [exports, variant_dir, duplicate, must_exist]), env\&.SConscript(scripts, [exports, variant_dir, duplicate, must_exist]), SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate, must_exist]), env\&.SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate, must_exist]) .RS 4 This tells scons @@ -9401,6 +9436,14 @@ SConscript(\*(Aqbuild/SConscript\*(Aq) .sp .sp +The optional +\fImust_exist\fR +argument, if true, causes an exception to be raised if a requested +SConscript +file is not found\&. The current default is false, causing only a warning to be omitted, but this behavior is deprecated\&. For scripts which truly intend to be optional, transition to explicty supplying +must_exist=False +to the call\&. +.sp Here are some composite examples: .sp .if n \{\ @@ -10352,7 +10395,7 @@ Example: .\} .nf print(str(DEFAULT_TARGETS[0])) -if \*(Aqfoo\*(Aq in map(str, DEFAULT_TARGETS): +if \*(Aqfoo\*(Aq in [str(t) for t in DEFAULT_TARGETS]: print("Don\*(Aqt forget to test the `foo\*(Aq program!") .fi .if n \{\ @@ -10369,13 +10412,13 @@ list change on on each successive call to the .RS 4 .\} .nf -print(map(str, DEFAULT_TARGETS)) # originally [] +print([str(t) for t in DEFAULT_TARGETS]) # originally [] Default(\*(Aqfoo\*(Aq) -print(map(str, DEFAULT_TARGETS)) # now a node [\*(Aqfoo\*(Aq] +print([str(t) for t in DEFAULT_TARGETS]) # now a node [\*(Aqfoo\*(Aq] Default(\*(Aqbar\*(Aq) -print(map(str, DEFAULT_TARGETS)) # now a node [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq] +print([str(t) for t in DEFAULT_TARGETS]) # now a node [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq] Default(None) -print(map(str, DEFAULT_TARGETS)) # back to [] +print([str(t) for t in DEFAULT_TARGETS]) # back to [] .fi .if n \{\ .RE @@ -10411,6 +10454,74 @@ if is set\&. Othervise it evaluates to an empty string\&. .RE .PP +_APPLELINK_COMPATIBILITY_VERSION +.RS 4 +A macro (by default a generator function) used to create the linker flags to specify apple\*(Aqs linker\*(Aqs \-compatibility_version flag\&. The default generator uses +\fB$APPLELINK_COMPATIBILITY_VERSION\fR +and +\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR +and +\fB$SHLIBVERSION\fR +to determine the correct flag\&. +.RE +.PP +APPLELINK_COMPATIBILITY_VERSION +.RS 4 +On Mac OS X this is used to set the linker flag: \-compatibility_version +.sp +The value is specified as X[\&.Y[\&.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and 255, Z can be omitted or between 1 and 255\&. This value will be derived from +\fB$SHLIBVERSION\fR +if not specified\&. The lowest digit will be dropped and replaced by a 0\&. +.sp +If the +\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR +is set then no \-compatibility_version will be output\&. +.sp +See MacOS\*(Aqs ld manpage for more details +.RE +.PP +_APPLELINK_CURRENT_VERSION +.RS 4 +A macro (by default a generator function) used to create the linker flags to specify apple\*(Aqs linker\*(Aqs \-current_version flag\&. The default generator uses +\fB$APPLELINK_CURRENT_VERSION\fR +and +\fB$APPLELINK_NO_CURRENT_VERSION\fR +and +\fB$SHLIBVERSION\fR +to determine the correct flag\&. +.RE +.PP +APPLELINK_CURRENT_VERSION +.RS 4 +On Mac OS X this is used to set the linker flag: \-current_version +.sp +The value is specified as X[\&.Y[\&.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and 255, Z can be omitted or between 1 and 255\&. This value will be set to +\fB$SHLIBVERSION\fR +if not specified\&. +.sp +If the +\fB$APPLELINK_NO_CURRENT_VERSION\fR +is set then no \-current_version will be output\&. +.sp +See MacOS\*(Aqs ld manpage for more details +.RE +.PP +APPLELINK_NO_COMPATIBILITY_VERSION +.RS 4 +Set this to any True (1|True|non\-empty string) value to disable adding \-compatibility_version flag when generating versioned shared libraries\&. +.sp +This overrides +\fB$APPLELINK_COMPATIBILITY_VERSION\fR\&. +.RE +.PP +APPLELINK_NO_CURRENT_VERSION +.RS 4 +Set this to any True (1|True|non\-empty string) value to disable adding \-current_version flag when generating versioned shared libraries\&. +.sp +This overrides +\fB$APPLELINK_CURRENT_VERSION\fR\&. +.RE +.PP AR .RS 4 The static library archiver\&. @@ -10422,7 +10533,11 @@ Specifies the system architecture for which the package is being built\&. The de Architecture: field in an Ipkg control -file, and as part of the name of a generated RPM file\&. +file, and the +BuildArch: +field in the RPM +\&.spec +file, as well as forming part of the name of a generated RPM package file\&. .RE .PP ARCOM @@ -10582,7 +10697,7 @@ or this: .\} .nf env = Environment() -env[\*(AqBUILDERS][\*(AqNewBuilder\*(Aq] = foo +env[\*(AqBUILDERS\*(Aq][\*(AqNewBuilder\*(Aq] = foo .fi .if n \{\ .RE @@ -10706,7 +10821,7 @@ for RPM, the control for Ipkg, the \&.wxs -for MSI)\&. If set, the function will be called after the SCons template for the file has been written\&. XXX +for MSI)\&. If set, the function will be called after the SCons template for the file has been written\&. .RE .PP CHANGED_SOURCES @@ -10766,7 +10881,7 @@ _CPPDEFFLAGS .RS 4 An automatically\-generated construction variable containing the C preprocessor command\-line options to define values\&. The value of \fB$_CPPDEFFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$CPPDEFPREFIX\fR and \fB$CPPDEFSUFFIX\fR @@ -10787,7 +10902,8 @@ is a string, the values of the \fB$CPPDEFPREFIX\fR and \fB$CPPDEFSUFFIX\fR -construction variables will be added to the beginning and end\&. +construction variables will be respectively prepended and appended to the beginning and end of each definition in +\fB$CPPDEFINES\fR\&. .sp .if n \{\ .RS 4 @@ -10807,7 +10923,7 @@ is a list, the values of the \fB$CPPDEFPREFIX\fR and \fB$CPPDEFSUFFIX\fR -construction variables will be appended to the beginning and end of each element in the list\&. If any element is a list or tuple, then the first item is the name being defined and the second item is its value: +construction variables will be respectively prepended and appended to the beginning and end of each element in the list\&. If any element is a list or tuple, then the first item is the name being defined and the second item is its value: .sp .if n \{\ .RS 4 @@ -10827,7 +10943,7 @@ is a dictionary, the values of the \fB$CPPDEFPREFIX\fR and \fB$CPPDEFSUFFIX\fR -construction variables will be appended to the beginning and end of each item from the dictionary\&. The key of each dictionary item is a name being defined to the dictionary item\*(Aqs corresponding value; if the value is +construction variables will be respectively prepended and appended to the beginning and end of each item from the dictionary\&. The key of each dictionary item is a name being defined to the dictionary item\*(Aqs corresponding value; if the value is None, then the name is defined without an explicit value\&. Note that the resulting flags are sorted by keyword to ensure that the order of the options on the command line is consistent each time scons is run\&. @@ -10847,7 +10963,7 @@ env = Environment(CPPDEFINES={\*(AqB\*(Aq:2, \*(AqA\*(Aq:None}) .PP CPPDEFPREFIX .RS 4 -The prefix used to specify preprocessor definitions on the C compiler command line\&. This will be appended to the beginning of each definition in the +The prefix used to specify preprocessor definitions on the C compiler command line\&. This will be prepended to the beginning of each definition in the \fB$CPPDEFINES\fR construction variable when the \fB$_CPPDEFFLAGS\fR @@ -10892,7 +11008,7 @@ _CPPINCFLAGS .RS 4 An automatically\-generated construction variable containing the C preprocessor command\-line options for specifying directories to be searched for include files\&. The value of \fB$_CPPINCFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$INCPREFIX\fR and \fB$INCSUFFIX\fR @@ -10932,7 +11048,7 @@ env = Environment(CPPPATH=include) .sp The directory list will be added to command lines through the automatically\-generated \fB$_CPPINCFLAGS\fR -construction variable, which is constructed by appending the values of the +construction variable, which is constructed by respectively prepending and appending the value of the \fB$INCPREFIX\fR and \fB$INCSUFFIX\fR @@ -12366,7 +12482,7 @@ _FORTRANINCFLAGS .RS 4 An automatically\-generated construction variable containing the Fortran compiler command\-line options for specifying directories to be searched for include files and module files\&. The value of \fB$_FORTRANINCFLAGS\fR -is created by prepending/appending +is created by respectively prepending and appending \fB$INCPREFIX\fR and \fB$INCSUFFIX\fR @@ -12381,7 +12497,7 @@ Directory location where the Fortran compiler should place any module files it g .PP FORTRANMODDIRPREFIX .RS 4 -The prefix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the beginning of the directory in the +The prefix used to specify a module directory on the Fortran compiler command line\&. This will be prepended to the beginning of the directory in the \fB$FORTRANMODDIR\fR construction variables when the \fB$_FORTRANMODFLAG\fR @@ -12390,7 +12506,7 @@ variables is automatically generated\&. .PP FORTRANMODDIRSUFFIX .RS 4 -The suffix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the beginning of the directory in the +The suffix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the end of the directory in the \fB$FORTRANMODDIR\fR construction variables when the \fB$_FORTRANMODFLAG\fR @@ -12401,7 +12517,7 @@ _FORTRANMODFLAG .RS 4 An automatically\-generated construction variable containing the Fortran compiler command\-line option for specifying the directory location where the Fortran compiler should place any module files that happen to get generated during compilation\&. The value of \fB$_FORTRANMODFLAG\fR -is created by prepending/appending +is created by respectively prepending and appending \fB$FORTRANMODDIRPREFIX\fR and \fB$FORTRANMODDIRSUFFIX\fR @@ -12453,7 +12569,7 @@ env = Environment(FORTRANPATH=include) .sp The directory list will be added to command lines through the automatically\-generated \fB$_FORTRANINCFLAGS\fR -construction variable, which is constructed by appending the values of the +construction variable, which is constructed by respectively prepending and appending the values of the \fB$INCPREFIX\fR and \fB$INCSUFFIX\fR @@ -12520,7 +12636,8 @@ On Mac OS X with gcc, a list containing the paths to search for frameworks\&. Us .RS 4 .\} .nf - env\&.AppendUnique(FRAMEWORKPATH=\*(Aq#myframeworkdir\*(Aq) + env\&.AppendUnique(FRAMEWORKPATH=\*(Aq#myframeworkdir\*(Aq) + .fi .if n \{\ .RE @@ -12532,7 +12649,8 @@ will add .RS 4 .\} .nf - \&.\&.\&. \-Fmyframeworkdir + \&.\&.\&. \-Fmyframeworkdir + .fi .if n \{\ .RE @@ -12574,7 +12692,8 @@ On Mac OS X with gcc, a list of the framework names to be linked into a program .RS 4 .\} .nf - env\&.AppendUnique(FRAMEWORKS=Split(\*(AqSystem Cocoa SystemConfiguration\*(Aq)) + env\&.AppendUnique(FRAMEWORKS=Split(\*(AqSystem Cocoa SystemConfiguration\*(Aq)) + .fi .if n \{\ .RE @@ -12723,7 +12842,7 @@ env = Environment(IMPLICIT_COMMAND_DEPENDENCIES = 0) .PP INCPREFIX .RS 4 -The prefix used to specify an include directory on the C compiler command line\&. This will be appended to the beginning of each directory in the +The prefix used to specify an include directory on the C compiler command line\&. This will be prepended to the beginning of each directory in the \fB$CPPPATH\fR and \fB$FORTRANPATH\fR @@ -12906,7 +13025,8 @@ The string displayed when compiling a directory tree of Java source files to cor .RS 4 .\} .nf -env = Environment(JAVACCOMSTR = "Compiling class files $TARGETS from $SOURCES") + env = Environment(JAVACCOMSTR = "Compiling class files $TARGETS from $SOURCES") + .fi .if n \{\ .RE @@ -12992,6 +13112,11 @@ JAVAHFLAGS General options passed to the C header and stub file generator for Java classes\&. .RE .PP +JAVAINCLUDES +.RS 4 +Include path for Java header files (such as jni\&.h) +.RE +.PP JAVASOURCEPATH .RS 4 Specifies the list of directories that will be searched for input @@ -13235,11 +13360,16 @@ LEXFLAGS General options passed to the lexical analyzer generator\&. .RE .PP +LEXUNISTD +.RS 4 +Used only on windows environments to set a lex flag to prevent \*(Aqunistd\&.h\*(Aq from being included\&. The default value is \*(Aq\-\-nounistd\*(Aq\&. +.RE +.PP _LIBDIRFLAGS .RS 4 An automatically\-generated construction variable containing the linker command\-line options for specifying directories to be searched for library\&. The value of \fB$_LIBDIRFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$LIBDIRPREFIX\fR and \fB$LIBDIRSUFFIX\fR @@ -13249,7 +13379,7 @@ to the beginning and end of each directory in .PP LIBDIRPREFIX .RS 4 -The prefix used to specify a library directory on the linker command line\&. This will be appended to the beginning of each directory in the +The prefix used to specify a library directory on the linker command line\&. This will be prepended to the beginning of each directory in the \fB$LIBPATH\fR construction variable when the \fB$_LIBDIRFLAGS\fR @@ -13274,7 +13404,7 @@ _LIBFLAGS .RS 4 An automatically\-generated construction variable containing the linker command\-line options for specifying libraries to be linked with the resulting target\&. The value of \fB$_LIBFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$LIBLINKPREFIX\fR and \fB$LIBLINKSUFFIX\fR @@ -13284,7 +13414,7 @@ to the beginning and end of each filename in .PP LIBLINKPREFIX .RS 4 -The prefix used to specify a library to link on the linker command line\&. This will be appended to the beginning of each library in the +The prefix used to specify a library to link on the linker command line\&. This will be prepended to the beginning of each library in the \fB$LIBS\fR construction variable when the \fB$_LIBFLAGS\fR @@ -13336,7 +13466,7 @@ env = Environment(LIBPATH=libs) .sp The directory list will be added to command lines through the automatically\-generated \fB$_LIBDIRFLAGS\fR -construction variable, which is constructed by appending the values of the +construction variable, which is constructed by respectively prepending and appending the values of the \fB$LIBDIRPREFIX\fR and \fB$LIBDIRSUFFIX\fR @@ -13373,7 +13503,7 @@ A list of one or more libraries that will be linked with any executable programs .sp The library list will be added to command lines through the automatically\-generated \fB$_LIBFLAGS\fR -construction variable, which is constructed by appending the values of the +construction variable, which is constructed by respectively prepending and appending the values of the \fB$LIBLINKPREFIX\fR and \fB$LIBLINKSUFFIX\fR @@ -13426,7 +13556,7 @@ list, the base library name, and these suffixes\&. .PP LICENSE .RS 4 -The abbreviated name of the license under which this project is released (gpl, lpgl, bsd etc\&.)\&. See http://www\&.opensource\&.org/licenses/alphabetical for a list of license names\&. +The abbreviated name, preferably the SPDX code, of the license under which this project is released (GPL\-3\&.0, LGPL\-2\&.1, BSD\-2\-Clause etc\&.)\&. See http://www\&.opensource\&.org/licenses/alphabetical for a list of license names and SPDX codes\&. .RE .PP LINESEPARATOR @@ -13795,6 +13925,7 @@ If is not set, SCons will (by default) select the latest version of Visual C/C++ installed on your system\&. If the specified version isn\*(Aqt installed, tool initialization will fail\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&. .sp Valid values for Windows are +14\&.1, 14\&.0, 14\&.0Exp, 12\&.0, @@ -13869,7 +14000,7 @@ PLATFORMSDK_MODULES dictionary of installed Platform SDK modules, where the dictionary keys are keywords for the various modules, and the values are 2\-tuples where the first is the release date, and the second is the version number\&. .RE .sp -If a value isn\*(Aqt set, it wasn\*(Aqt available in the registry\&. +If a value is not set, it was not available in the registry\&. .RE .PP MSVS_ARCH @@ -13881,7 +14012,11 @@ x86\&. amd64 is also supported by SCons -for some Visual Studio versions\&. Trying to set +for most Visual Studio versions\&. Since Visual Studio 2015 +arm +is supported, and since Visual Studio 2017 +arm64 +is supported\&. Trying to set \fB$MSVS_ARCH\fR to an architecture that\*(Aqs not supported for a given Visual Studio version will generate an error\&. .RE @@ -14768,7 +14903,7 @@ RCINCFLAGS .RS 4 An automatically\-generated construction variable containing the command\-line options for specifying directories to be searched by the resource compiler\&. The value of \fB$RCINCFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$RCINCPREFIX\fR and \fB$RCINCSUFFIX\fR @@ -14778,7 +14913,7 @@ to the beginning and end of each directory in .PP RCINCPREFIX .RS 4 -The prefix (flag) used to specify an include directory on the resource compiler command line\&. This will be appended to the beginning of each directory in the +The prefix (flag) used to specify an include directory on the resource compiler command line\&. This will be prepended to the beginning of each directory in the \fB$CPPPATH\fR construction variable when the \fB$RCINCFLAGS\fR @@ -14867,9 +15002,9 @@ _RPATH .RS 4 An automatically\-generated construction variable containing the rpath flags to be used when linking a program with shared libraries\&. The value of \fB$_RPATH\fR -is created by appending +is created by respectively prepending \fB$RPATHPREFIX\fR -and +and appending \fB$RPATHSUFFIX\fR to the beginning and end of each directory in \fB$RPATH\fR\&. @@ -14884,7 +15019,7 @@ in any way: if you want an absolute path, you must make it absolute yourself\&. .PP RPATHPREFIX .RS 4 -The prefix used to specify a directory to be searched for shared libraries when running programs\&. This will be appended to the beginning of each directory in the +The prefix used to specify a directory to be searched for shared libraries when running programs\&. This will be prepended to the beginning of each directory in the \fB$RPATH\fR construction variable when the \fB$_RPATH\fR @@ -15708,7 +15843,7 @@ _SWIGINCFLAGS .RS 4 An automatically\-generated construction variable containing the SWIG command\-line options for specifying directories to be searched for included files\&. The value of \fB$_SWIGINCFLAGS\fR -is created by appending +is created by respectively prepending and appending \fB$SWIGINCPREFIX\fR and \fB$SWIGINCSUFFIX\fR @@ -15718,7 +15853,7 @@ to the beginning and end of each directory in .PP SWIGINCPREFIX .RS 4 -The prefix used to specify an include directory on the SWIG command line\&. This will be appended to the beginning of each directory in the +The prefix used to specify an include directory on the SWIG command line\&. This will be prepended to the beginning of each directory in the \fB$SWIGPATH\fR construction variable when the \fB$_SWIGINCFLAGS\fR @@ -15777,7 +15912,7 @@ env = Environment(SWIGPATH=include) .sp The directory list will be added to command lines through the automatically\-generated \fB$_SWIGINCFLAGS\fR -construction variable, which is constructed by appending the values of the +construction variable, which is constructed by respectively prepending and appending the values of the \fB$SWIGINCPREFIX\fR and \fB$SWIGINCSUFFIX\fR @@ -15843,13 +15978,15 @@ TARGET_ARCH The name of the target hardware architecture for the compiled objects created by this Environment\&. This defaults to the value of HOST_ARCH, and the user can override it\&. Currently only set for Win32\&. .sp Sets the target architecture for Visual Studio compiler (i\&.e\&. the arch of the binaries generated by the compiler)\&. If not set, default to -\fB$HOST_ARCH\fR, or, if that is unset, to the architecture of the running machine\*(Aqs OS (note that the python build or architecture has no effect)\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&. This is currently only used on Windows, but in the future it will be used on other OSes as well\&. +\fB$HOST_ARCH\fR, or, if that is unset, to the architecture of the running machine\*(Aqs OS (note that the python build or architecture has no effect)\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&. This is currently only used on Windows, but in the future it will be used on other OSes as well\&. If this is set and MSVC_VERSION is not set, this will search for all installed MSVC\*(Aqs that support the TARGET_ARCH, selecting the latest version for use\&. .sp Valid values for Windows are x86, +arm, i386 (for 32 bits); amd64, +arm64, emt64, x86_64 (for 64 bits); and @@ -15876,7 +16013,12 @@ The suffix used for tar file names\&. .PP TEMPFILEPREFIX .RS 4 -The prefix for a temporary file used to execute lines longer than $MAXLINELENGTH\&. The default is \*(Aq@\*(Aq\&. This may be set for toolchains that use other values, such as \*(Aq\-@\*(Aq for the diab compiler or \*(Aq\-via\*(Aq for ARM toolchain\&. +The prefix for a temporary file used to store lines lines longer than $MAXLINELENGTH as operations which call out to a shell will fail if the line is too long, which particularly impacts linking\&. The default is \*(Aq@\*(Aq, which works for the Microsoft and GNU toolchains on Windows\&. Set this appropriately for other toolchains, for example \*(Aq\-@\*(Aq for the diab compiler or \*(Aq\-via\*(Aq for ARM toolchain\&. +.RE +.PP +TEMPFILESUFFIX +.RS 4 +The suffix used for the temporary file name used for long command lines\&. The name should include the dot (\*(Aq\&.\*(Aq) if one is wanted as it will not be added automatically\&. The default is \*(Aq\&.lnk\*(Aq\&. .RE .PP TEX @@ -16152,7 +16294,7 @@ This is used to fill in the BuildRequires: field in the RPM \&.spec -file\&. +file\&. Note this should only be used on a host managed by rpm as the dependencies will not be resolvable at build time otherwise\&. .RE .PP X_RPM_BUILDROOT @@ -16193,7 +16335,9 @@ X_RPM_EPOCH .RS 4 This is used to fill in the Epoch: -field in the controlling information for RPM packages\&. +field in the RPM +\&.spec +file\&. .RE .PP X_RPM_EXCLUDEARCH @@ -16214,6 +16358,32 @@ field in the RPM file\&. .RE .PP +X_RPM_EXTRADEFS +.RS 4 +A list used to supply extra defintions or flags to be added to the RPM +\&.spec +file\&. Each item is added as\-is with a carriage return appended\&. This is useful if some specific RPM feature not otherwise anticipated by SCons needs to be turned on or off\&. Note if this variable is omitted, SCons will by default supply the value +\*(Aq%global debug_package %{nil}\*(Aq +to disable debug package generation\&. To enable debug package generation, include this variable set either to None, or to a custom list that does not include the default line\&. Added in version 3\&.1\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +env\&.Package( + NAME = \*(Aqfoo\*(Aq, +\&.\&.\&. + X_RPM_EXTRADEFS = [ + \*(Aq%define _unpackaged_files_terminate_build 0\*(Aq + \*(Aq%define _missing_doc_files_terminate_build 0\*(Aq + ], +\&.\&.\&. ) +.fi +.if n \{\ +.RE +.\} +.RE +.PP X_RPM_GROUP .RS 4 This is used to fill in the @@ -18211,14 +18381,16 @@ If the first argument is a Python function, a function Action is returned\&. The \fBtarget\fR and \fBsource\fR -arguments may be lists of Node objects if there is more than one target file or source file\&. The actual target and source file name(s) may be retrieved from their Node objects via the built\-in Python str() function: +arguments may be lists of Node objects if there is more than one target file or source file\&. The actual target and source file name(s) may be retrieved from their Node objects via the built\-in Python +\fBstr\fR +function: .sp .if n \{\ .RS 4 .\} .nf target_file_name = str(target) -source_file_names = map(lambda x: str(x), source) +source_file_names = [str(x) for x in source] .fi .if n \{\ .RE @@ -19784,5 +19956,5 @@ Author. \fBSteven Knight and the SCons Development Team\fR .SH "COPYRIGHT" .br -Copyright \(co 2004 - 2016 The SCons Foundation +Copyright \(co 2004 - 2019 The SCons Foundation .br |