You need to sign in or sign up before continuing.
Commits on Source (8)
-
Tristan Van Berkom authored
As discussed with Jürg on gitlab[0], it makes more sense to store the recursive element names and record the shape of the dependencies for non strict cache keys as well as strict ones. [0]: !1542 (comment 205598556)
-
Tristan Van Berkom authored
This patch allows specifying a dependency as `strict`, e.g.: build-depends: - filename: element.bst strict: true This allows finer tuning of projects which want to leverage the non-strict build mode; dependencies which are statically linked to, or who's content is otherwise included verbatim in the resulting output, should be marked `strict` to ensure these bits get reassembled if necessary when building in non-strict mode. This fixes #254 Change summary: o _loader/loadelement.pyx: Added 'strict' attribute to Dependency o _loader/types.pyx: Added 'strict' attribute to Dependency do the parsing work. o _loader/metaelement.py: Added 'strict_dependencies' list o _loader/loader.py: Resolve the 'strict_dependencies' list o element.py: Added __strict_dependencies list, and use this to conditionally use weak cache keys in place of names for the purpose of building the weak cache key (in the case of dependencies which are marked as strict).
-
Tristan Van Berkom authored
This adds documentation on the new keyword `strict` in dependency declarations, and adds a link to the strict mode user config section.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
This tests that the target which depends on a common dependency strictly in non strict mode needs to be rebuilt after this common dependency changes, while it is not the case when depending on the same common target non strictly. This is a regression test for #254
-
Tristan Van Berkom authored
This is in order to keep the door open to allowing the project.conf set the default of dependency 'strict'-ness which might be useful for projects which use mostly static linking and the like, in which case we can later interpret explicitly non-strict dependencies as an override of the project default.
-
Tristan Van Berkom authored
-
bst-marge-bot authored
Support strict build dependencies Closes #254 See merge request !1542
Showing
- doc/source/format_declaring.rst 11 additions, 0 deletionsdoc/source/format_declaring.rst
- doc/source/using_config.rst 2 additions, 0 deletionsdoc/source/using_config.rst
- src/buildstream/_loader/loadelement.pyx 5 additions, 2 deletionssrc/buildstream/_loader/loadelement.pyx
- src/buildstream/_loader/loader.py 4 additions, 2 deletionssrc/buildstream/_loader/loader.py
- src/buildstream/_loader/metaelement.py 1 addition, 0 deletionssrc/buildstream/_loader/metaelement.py
- src/buildstream/_loader/types.pyx 26 additions, 2 deletionssrc/buildstream/_loader/types.pyx
- src/buildstream/element.py 20 additions, 10 deletionssrc/buildstream/element.py
- tests/format/dependencies.py 14 additions, 0 deletionstests/format/dependencies.py
- tests/format/dependencies1/elements/invalidnonstrict.bst 10 additions, 0 deletionstests/format/dependencies1/elements/invalidnonstrict.bst
- tests/format/dependencies1/elements/invalidstrict.bst 9 additions, 0 deletionstests/format/dependencies1/elements/invalidstrict.bst
- tests/frontend/show.py 54 additions, 0 deletionstests/frontend/show.py
- tests/frontend/strict-depends/elements/base.bst 5 additions, 0 deletionstests/frontend/strict-depends/elements/base.bst
- tests/frontend/strict-depends/elements/non-strict-depends.bst 4 additions, 0 deletions...s/frontend/strict-depends/elements/non-strict-depends.bst
- tests/frontend/strict-depends/elements/strict-depends.bst 5 additions, 0 deletionstests/frontend/strict-depends/elements/strict-depends.bst
- tests/frontend/strict-depends/files/hello.txt 1 addition, 0 deletionstests/frontend/strict-depends/files/hello.txt
- tests/frontend/strict-depends/project.conf 2 additions, 0 deletionstests/frontend/strict-depends/project.conf
tests/frontend/strict-depends/project.conf
0 → 100644