summaryrefslogtreecommitdiffstats
path: root/SCons/PathList.py
Commit message (Collapse)AuthorAgeFilesLines
* API Docs build adjustment.Mats Wichmann2024-05-161-41/+43
| | | | | | | | | | | | | | | For a "package" which has a main piece and submodules, the main part is now processed before, rather than after, the submodules. Usally there's introductory material (e.g. in the main module's docstring) and it's more useful for this to appear at the top of a page rather than down after all the submodules. Made some docstring tweaks in two modules where the result didn't look very good - Debug and PathList. For PathList, Sphinx doesn't process both a class docstring and its __init__ method's docstring - you get one of the other, so joined those together. Signed-off-by: Mats Wichmann <mats@linux.com>
* Add LIBLITERAL to support gcc -l:filenameMats Wichmann2023-10-281-10/+11
| | | | | | | | | | | | | | | | | | | | | | This is done in a general way. using a construction var, although at the moment only the GNU linker is known to handle things this way. Had to do something funky, or it won't work when os.pathsep and LIBLITRAL are the same, as they are on Linux (i.e. ':'). That's because SCons.PathList.PathList is called and it does: class _Pathlist: def __init__(self, pathlist) -> None: if SCons.Util.is_String(pathlist): pathlist = pathlist.split(os.pathsep) Splitting has the effect of turning ":libm.a" into ((0, ''), (0, 'libm.a')] That is, the ':' is lost as part of the library specifier - so need to try to avoid that. Fixes #3951 Signed-off-by: Mats Wichmann <mats@linux.com>
* Add some cheap return and parameter annotationsMats Wichmann2023-05-011-3/+3
| | | | | | | | | | | | | | | | | 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>
* Update some copyright strings and drop __revision__ [skip appveyor]Mats Wichmann2020-09-231-10/+7
| | | | | | | | | | | | | | | | | | Touches the first and second levels of SCons (except SCons.Tool), not tests or docs which remain TODO. Make sure docstring is first non-comment content, eliminate cases where docstring is set elsewhere but assigns to __doc__ - this approach of course worked inside Python, but confuses various tools. Some module-level docstrings modified a bit, in particular the convention of having the name of the module as the first line is dropped, replaced by a summary description going there instead - this improves the look in the API Docs, which otherwise display something like: SCons.Foo - SCons.Foo Signed-off-by: Mats Wichmann <mats@linux.com>
* classes no longer explicitly inherit from objectMats Wichmann2020-05-241-2/+2
| | | | | | In Python3 this is the default. Signed-off-by: Mats Wichmann <mats@linux.com>
* Reorganize the repo. Moved src/engine/SCons to ./SCons to be more in line ↵William Deegan2020-05-061-0/+227
with current python packaging practices