-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Compile the package manifest properly on Windows #2821
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
Conversation
This argument is not supported on Windows and results in a linker error
This allows the executable to find the `PackageDescription.dll` successfully
|
@swift-ci please smoke test |
|
I don't have the knowledge to review the Windows side of the branches, but the non-Windows cases look to preserve the existing behavior as far as I can see. Is there someone else who should review the Windows side? Since AFAIK the Windows support is still being brought up, I'm inclined to merge even if it turns out that the Window branches end up needing further adjustments. |
|
CC @compnerd |
|
Hmm, the test failure seems to be unrelated to these changes... |
|
@swift-ci please smoke test |
|
I think that the commit the branch was created off shouldn't matter as it should run CI as if the branch is merged into |
|
Could this PR be merged if there are no issues with the changes? |
MaxDesiatov
left a comment
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
Currently SwiftPM compiles the package manifest with an
-rpathlinker argument which is not supported on Windows.On Windows it should instead execute the compiled manifest with an additional
PATHcomponent representing thePackageDescription.dlllocation.This implementation relies on swiftlang/swift-tools-support-core#92 to pass the
PATHenvironment variable to the manifest executable, but these PRs can be merged in any order.After this change the compiled manifests can be executed manually by running
id-manifest.exe -fileno 1– it prints the package manifest JSON to stdout.
(Execution by SwiftPM itself still fails because of a different issue: the file descriptor of the JSON output is not shared properly with the child process)