-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Place build.db under the scratch directory #7471
Place build.db under the scratch directory #7471
Conversation
@swift-ci test |
2ec6fb1
to
010745d
Compare
@swift-ci test |
The build database should be shared between different triple builds to re-generate the build manifest correctly. Also this change splits llbuild target names for each triple to avoid cache invalidation when switching triple.
010745d
to
6be1d40
Compare
@swift-ci test |
@swift-ci test windows |
This change is to make the target names of llbuild targets unique by target triple so that switching triples will not invalidate target artifact cache.
@swift-ci test |
@swift-ci test Windows |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you! I started a source compatibility build with these changes @ swiftlang/swift#73908
Ok, source compat tests passed. At least this change does not break initial clean build 😌 |
The build database should be shared between different triple builds to re-generate the build manifest correctly. With the current implementation, the following build command sequence fails: ``` $ swift build --experimental-swift-sdk wasm32-unknown-wasi $ swift build $ swift build --experimental-swift-sdk wasm32-unknown-wasi $ swift build $ swift build --experimental-swift-sdk wasm32-unknown-wasi ``` This changes the llbuild build database to be placed under `.build/build.db` instead of `.build/<product triple>/build.db`. Also this change splits llbuild target names for each triple to avoid cache invalidation when switching triple. `build.db` will be shared across product target triples, and SwiftPM will keep consistent cache state when switching triples. (cherry picked from commit e9399c2)
Motivation:
The build database should be shared between different triple builds to re-generate the build manifest correctly.
With the current implementation, the following build command sequence fails:
Modifications:
This changes the llbuild build database to be placed under
.build/build.db
instead of.build/<product triple>/build.db
.Also this change splits llbuild target names for each triple to avoid cache invalidation when switching triple.
Result:
build.db
will be shared across product target triples, and SwiftPM will keep consistent cache state when switching triples.