loader: Allow dependencies to use ":" to refer to junctioned elements
This will allow cross-junction dependencies to be listed as strings on a single line. As part of this, some logic around initializing `Dependency()` objects have been moved out of `_extract_depends_from_node()` method into the constructor of `Dependency()` class, to keep all related code in one place. * _loader/types.py: While initializing `Dependency` objects, attempt to split filenames, only if no `junction` was specified explicitly. If a `junction` was specified, then filenames with `:` in their names will result in an error. * _loader/loadelement.py: Refactor logic to initialize `Dependency()` objects to move it to the `Dependency()` constructor. * tests/frontend/buildcheckout.py: Add tests to ensure the above. * _versions.py: Bump BST_FORMAT_VERSION. Fixes #809.
Showing with 193 additions and 40 deletions