summaryrefslogtreecommitdiffstats
path: root/SCons/Script
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup Warnings moduleMats Wichmann2024-03-081-3/+3
| | | | | | | | | | | | | | | | | | | | * Added docstrings on warning classes and module docstring. * Move globals to top of file. * Typing. * Dropped DeprecatedSourceCodeWarning, last use was removed, with the feature, for SCons 3.1.2. * Dropped TaskmasterNeedsExecuteWarning, now enforced by Python via an abstract base class (unused/unneeded since 4.0.0). * Dropped DeprecatedMissingSConscriptWarning. This was a transitional warning, no longer needed; can use MissingSConscriptWarning, which also is no longer used but is left in in case it might be useful. * Two in-use warnings added to manpage section on enabling warnings (cache-cleanup-error, future-reserved-variable). * Improve unittest a bit. * Sphinx build set not to show inherited memerber for Warnings - got ugly exception stuff otherwise. Signed-off-by: Mats Wichmann <mats@linux.com>
* doc: update Pseudo description and moreMats Wichmann2024-02-091-17/+24
| | | | | | | | | | | | The Pseudo manpage entry is updated to be more descriptive. Since they were near neighbors in Environment.py, it and the three functions Precious, Repository and Requires received minor docstring changes there; Precious and Requires also got a minor tweak to the manpage entry (mainly to clarify allowable argument types and list return value). Signed-off-by: Mats Wichmann <mats@linux.com>
* Add Pseudo() to global functions, had been omitted.Mats Wichmann2024-02-071-0/+1
| | | | | | | | | | | | | When Pseudo was added in SCons 2.3.1, it was not added to the GlobalDefaultEnvironmentFunctions table which makes environment methods available in the default environment. Reworked the test so it does not rewrite the test SConstruct, and added steps to test the global function version as well. Fixes #4474. Signed-off-by: Mats Wichmann <mats@linux.com>
* Disallow python without threading support on startupAndrew Morrow2024-01-261-0/+7
|
* review feedback: legacysched to legacy_schedAndrew Morrow2024-01-201-1/+1
|
* wipAndrew Morrow2024-01-191-1/+1
|
* Update SConscript.py: typoStenGruener2023-11-291-1/+4
|
* Fixing a bug with --debug=sconscript where no exit message was emitted on ↵StenGruener2023-11-291-1/+1
| | | | exception catch
* Updates to make ready for mergingWilliam Deegan2023-10-291-2/+2
|
* adding info to the man page, changed debug keyStenGruener2023-10-282-2/+2
|
* adding unit test, --debug flag, comments in changes.txtStenGruener2023-10-283-3/+5
|
* Adding tracing of scons script callsStenGruener2023-10-271-0/+4
|
* Elminate http: referencesMats Wichmann2023-10-171-1/+1
| | | | | | | | | | Most remaining http: references are either changed to https: or removed or changed in case they were also stale links, and a replacement was findable. Does not affect schema and stylesheet references, which can remain http: Signed-off-by: Mats Wichmann <mats@linux.com>
* SConscript() doc: minor tweaks after review [skip appveyor]Mats Wichmann2023-09-221-4/+4
| | | | Signed-off-by: Mats Wichmann <mats@linux.com>
* Updates for Export/Import doc [skip appveyor]Mats Wichmann2023-09-191-45/+81
| | | | | | | | Mention mutable objects - if an sconscript imports a previously exported variable, it is the same object, so changes propagete. Some wording tweaks in SConscript function. Signed-off-by: Mats Wichmann <mats@linux.com>
* Merge branch 'master' into feature/local-helpWilliam Deegan2023-08-245-38/+33
|\
| * Merge branch 'master' into maint/modernizeWilliam Deegan2023-08-243-35/+30
| |\
| | * missing-sconscript: fix Windows test againMats Wichmann2023-08-071-1/+1
| | | | | | | | | | | | | | | | | | | | | Also dropped the word Fatal from the error, it's not consistent with any other scons-generated exception. Signed-off-by: Mats Wichmann <mats@linux.com>
| | * Change the default to error on missing SConscriptMats Wichmann2023-08-063-35/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This completes a change begun in 3.0.2, when the behavior changed from "skip silently" to "skip but issue a warning"; that behavior was marked deprecated in 3.1. Use must_exist=False to get the old "skip silently" behavior. Fixes #3958 Signed-off-by: Mats Wichmann <mats@linux.com>
| * | "Modernize" to Python 3.6 via toolMats Wichmann2023-08-042-4/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $ pyupgrade --py36-plus $(<filelist) Here's mostly what it's done: - No more 'stringliteral'.encode('utf-8'): now b'stringliteral' - No more unicode literals - the default open mode is 'r', leaves out if default - some f-string conversions (if shorter) - catch OSError instead of subclasses - no more mention of "object" - generator expression instead of list comp. when safe - a few tests had a shebang but actually began with blank line - remove coding: utf-8 comment, per pep 3120 this is the default now Manually - if a file in test/ was modified, then did the copyright header conversion. Signed-off-by: Mats Wichmann <mats@linux.com>
* | Add ability to save "local" help onlyMats Wichmann2023-08-015-38/+123
|/ | | | | | | | | | | | | An additional keyword argument, "local_only", is now recorgnized by Help(). If true, and "append" is True, then only project-defined help messages are saved into the help text. That is, save help added by calls to AddOption, but not SCons' own help, which is added a different way. Fixes #2356 Fixes #3686 Signed-off-by: Mats Wichmann <mats@linux.com>
* Adjust help message about -HMats Wichmann2023-06-271-1/+1
| | | | | | | | | | | As noted in issue #2356 (which this change does not complete/close), the final line of help if the help message has been modified is 'Use scons -H for help about command-line options.'. This fails to mention that -H prints only those options that are defined in SCons itself, not options added via AddOption. Adjust the message to better indicate this. Signed-off-by: Mats Wichmann <mats@linux.com>
* refeactor module variables to be lower case per mwichmann's reviewWilliam Deegan2023-06-091-17/+17
|
* Address mwichmann's comments on PR. pep8 naming, abstract base class Stats, ↵William Deegan2023-06-081-8/+10
| | | | quiet some linting warnings where the use is intentional
* Skip checking for exception when writing to unwritable dir in test. Change ↵William Deegan2023-06-061-1/+3
| | | | logic which get's nodename to work on all platforms (was failing on windows)
* Added docsWilliam Deegan2023-06-051-0/+17
|
* Added test for --debug=json. Implemented DebugOptions(json). Create ↵William Deegan2023-06-052-5/+20
| | | | containing directory, and issue UserError if the directory is not creatable..
* Added test, CHANGES/RELEASE text. Fixturized SConstruct from ↵William Deegan2023-06-051-1/+0
| | | | test/option/debug-count.py, and used that in test/option/debug-json.py
* Merge remote-tracking branch 'upstream/master' into json_debug_time_outputWilliam Deegan2023-06-056-182/+282
|\
| * [ci skip] Fixed typoWilliam Deegan2023-05-231-1/+1
| |
| * Move pdb-support SConscript list to topMats Wichmann2023-05-091-9/+17
| | | | | | | | | | | | | | | | Define the list of recognized names for sconscript files for pdb to handle to the top, together with the existing list of names for SConstruct, to make it harder to miss any changes that should kept in sync. Signed-off-by: Mats Wichmann <mats@linux.com>
| * pdb: minor tweaks to doc [skip appveyor]Mats Wichmann2023-05-071-4/+7
| | | | | | | | | | | | | | Explanations of new "recognize sconscripts" behavior to debugger support are tweaked a bit to hopefully be more clear. Signed-off-by: Mats Wichmann <mats@linux.com>
| * pdb debugging now recognizes SConstruct/SConscriptMats Wichmann2023-05-061-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | Make it possible (once the project path has been added to sys.path) to set/clear breakpoints using file paths that end in SConstruct and SConscript - specializing pdb.Pdb to override the need for all paths that are not absolute to end in .py. Man: tried to address some surprise that pdb can't find the SConstruct when you start up in debugger mode. Signed-off-by: Mats Wichmann <mats@linux.com>
| * Merge branch 'master' into maint/validateOptionsWilliam Deegan2023-05-045-90/+91
| |\
| | * Add some cheap return and parameter annotationsMats Wichmann2023-05-015-91/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use: https://github.com/JelleZijlstra/autotyping to add "safe" return annotations. Where a parameter has a default value that is an obvious scalar type (bool, int, str, etc.) add those annotations as well. Also fixed two small bugs that popped up when sanity-checking with mypy. One in FortranCommon, where a return had been previously annotated to be a tuple of Action, which should be ActionBase - Action is the factory function, not the base class. The other was a typo in the error raised in _add_cppdefines - the message was formatted with the value of "define" which should have been "defines". Signed-off-by: Mats Wichmann <mats@linux.com>
| * | Minor cleanup ValidateOptions doc/code/testMats Wichmann2023-04-142-90/+133
| |/ | | | | | | | | | | | | | | | | | | | | | | Some nearby things in Main.py as well: - docstrings polished a bit, minor linting - move the list of predefined SConstruct file names into a constant defined at the top of the file, so it's a little less hidden, in the unlikely case of future changes. Manpage text and example revised a bit. Signed-off-by: Mats Wichmann <mats@linux.com>
* | Added build info to json, added --debug=json to docsWilliam Deegan2023-06-041-1/+1
| |
* | Initial support for writing --debug=time, count into a JSON fileWilliam Deegan2023-06-041-1/+5
| |
* | added --debug=json, which will dump object counts and memory into ↵William Deegan2023-04-222-77/+31
|/ | | | scons_stats.json in invocation directory
* man: add a "New in..." to ValidateOPtions [skip appveyor]Mats Wichmann2023-03-031-3/+3
| | | | | | | The new ValidateOptions had a :versionadded: in the docstring, but just noticed the actual manpage entry didn't have similar. Signed-off-by: Mats Wichmann <mats@linux.com>
* [ci skip] Update versionadded for ValidateOptions()William Deegan2023-03-021-1/+1
|
* Fixed using --diskcheck=none from command line. It was always broken. ↵William Deegan2022-12-201-1/+4
| | | | SetOption('diskcheck','none') has been working all along. Also refactored the DiskChecker class to have more meaningful properties and not shadow default python objects (list, dir)..
* Manpage tweaking [skip appveyor]Mats Wichmann2022-12-061-11/+9
| | | | | | | | | | | | | * Reworded the section on --experimental - separate when the two current features were made available, and when --experimental itself was added. * Reworded in GetOption * Changed tags on a few options * Use entity forms in more places (Python -> &Python;, SConscript -> &SConscript; etc.) * Make changed/added notifications more consistent with what Sphinx produces for the API docs (:versionadded: and :versionchanged: markup) Signed-off-by: Mats Wichmann <mats@linux.com>
* Added --experimental=tm_v2 which switches to use Andrew Morrow's new ↵William Deegan2022-12-041-2/+2
| | | | ParallelJob implementation. WHich should scale much better for highly parallel builds
* Migrate Taskmaster tracing to use python loggingWilliam Deegan2022-10-221-12/+1
|
* move Taskmaster and Jobs to SCons.TaskmasterWilliam Deegan2022-10-121-3/+3
|
* Do not initialize DefaultEnvironment onAnatoli Babenia2022-09-152-7/+13
| | | | Exit(), GetLaunchDir() and SConscriptChdir()
* Remove unused private method SConsEnvironment._exceeds_version()Anatoli Babenia2022-09-151-5/+0
|
* doc: change five functions to appear global-onlyMats Wichmann2022-09-142-10/+10
| | | | | | | | | | | | | The five functions EnsureSConsVersion, EnsurePythonVersion, Exit, GetLaunchDir, SConscriptChdir were listed as both global and environment functions, but they do nothing in the context of an environment, so marked in the xml as "global". This only changes the presentation in the manpage & userguide appendix, not the behavior. Minor tweaks in the code around SConscriptChdir - actually use a bool True/False instead of 0/1, and added a couple of type annotations. Signed-off-by: Mats Wichmann <mats@linux.com>
* Make EnsurePythonVersion static tooAnatoli Babenia2022-09-042-2/+3
|