-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Workspace support for Cargo subprojects #14880
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0726b0e to
40d7758
Compare
40d7758 to
092376a
Compare
092376a to
f74bc2b
Compare
f74bc2b to
033802e
Compare
033802e to
43ec7f6
Compare
|
@xclaesse can you take a look? It does work with your gstreamer plugins testcase. |
43ec7f6 to
1c9e4d8
Compare
1c9e4d8 to
6c27914
Compare
a558538 to
7bb6efc
Compare
7bb6efc to
bb2c902
Compare
xclaesse
reviewed
Oct 15, 2025
xclaesse
reviewed
Oct 15, 2025
|
LGTM, thanks for rebasing my work! |
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
With workspace support, backslashes can appear in subdir() invocations
generated by the Cargo interpreter.
If the arguments form valid escapes, for example subdir('dir\foo'),
the interpreter will parse the '\f' as a single form feed character,
and produce errors such as
os.makedirs(os.path.join(self.environment.build_dir, subdir), exist_ok=True)
File "C:\hostedtoolcache\windows\Python\3.7.9\x64\lib\os.py", line 223, in makedirs
mkdir(name, mode)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'D:\\a\\1\\s\\b c09188aed5\\subprojects\\foo\\dir\x0coo'
Use escape=False just like the cmake interpreter does.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
Cargo workspaces will use this to have a single subproject defining multiple crates.
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>, adjusted to make it compile with cargo.
bb2c902 to
bc031d0
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My own cleaned up and fixed version of #14681. While crates.io splits member of a workspace into separate packages, it's still useful to support workspaces for "git" wraps.
There is one important change compared to both current versions and that PR: Meson will now parse amergedCargo.lockin the toplevel source directory, and use it to resolve the versions of Cargo subprojects in preference to per-subprojectCargo.lockfiles. This makes sure that all subprojects use a consistent version of a crate. This is logically a separate change, so I have pulled it out in #14906