-
Notifications
You must be signed in to change notification settings - Fork 4
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
Adopt PIF cache as a means for determining targets and relationships #62
Conversation
This file contains 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
This library derives it's behaviour from SPM's PIF decoding, but adjusts it to work with Xcode's internal json file format.
This allows us to switch out the Node value without massive changes
One test is failing because the output postprocessor is not moving dependencies - that still needs to be addressed
Closed
Check modification time to grab the most recent one.
These have different PIF cache locations in the build cache
NinjaLikesCheez
force-pushed
the
pif-cache
branch
from
May 27, 2024 12:41
6cf282c
to
8c687f0
Compare
This attempts to more accurately define what Gen-IR's idea of a target is, which is a bit different than the PIF representation. Not every target is considered buildable, so we also split out the storage of commands and pass them directly to CompilerCommandRunner.
bmxav
approved these changes
Jul 12, 2024
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.
This change adopts the ideas in and closes #61
PIF (Project Interchange Format) is a representation of a project model created by clients (SPM & Xcode) to send to the new build services XCBuild. A more in-depth description can be found in SPM's PIF.swift.
The reason to use PIF over PBXProject comes down to a couple reasons:
This change adds a new package
PIF
with a libraryPIFSupport
(and test executable) which supports the parsing of a PIF cache as it exists in Xcode's Derived Data. This module doesn't attempt to reason about it's contents - it is purely there for discovery and decoding of the cache.PIFCache
therefore exists to handle the reasoning of PIF targets and dependencies in the context of Gen IR.