Release 0.17.0¶
Change CCopy builder that calls a script and uses the batch_key feature in SCons.
Removed the options for hard-soft-copy, soft-hard-copy and soft-copy from the –copy commadline argument.
Added a CCOPY_BATCH_KEY_MAX_COUNT variable to control the max size of a batch.
A number of fixes to Symlink scanner.
Internal fixes to nodes that are defined by Parts. Among these fixes was the removal of the import.jsn files.
Some fixes to have Part process Directory target nodes better.
Added a new api.register.add_method() function to better register functions with the Scons Environment() and Scons OverrideEnvironment().
Add error check in recursive Pattern() logic to detect if Variant node value returned is being defined recursively by mistake.
moved to ccopy.py to parts.core.builders.
update a number of builders that do copy logic to define batch_key logic use in the new CCopy logic.
SetRpath should not try to modify object files now.
Internal function BottomLevelTargets and TopLevelTargets target refactored to work a magnitude faster.
Adding a new ExtractFiles() builder (still a WIP) to help with some furture features.
Notes¶
CCopy changes¶
The attempt here is to turn the copy logic into a script as this should allow SCons to scale better with -jN. The realtity is that helps a little, but not as much as desired. In certain cases it might slow the build down a little, which normally happens when builder has small batch sizes/ It is seen that when coping large amount of files that the build does speed up. This is seen in -J1 builds the most.
There is a CCOPY_BATCH_KEY_MAX_COUNT value that can be defined to control the max size of batch of files to copy. The current default is 50 as that was found to be a good value overall. Certain cases might perform better with a smaller or larger number. Having to large of a number can have very negative impact on the speed SCons can process the nodes.
The logic for coping files via hard-soft-copy, soft-hard-copy and soft-copy have been removed because the handling of the symlink node as first class objects would cause conflict with an incremental rebuild.