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.