-
-
Notifications
You must be signed in to change notification settings - Fork 320
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
Added Build Tool Plug-ins
support
#784
Conversation
✅ Deploy Preview for xcodeproj ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
You can try how it works with XcodeGen 😊: Usage |
cool |
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.
Thanks for picking this up @BarredEwe 🙏
I ran a small test locally by creating a project with a build plugin in Xcode then attempted to read / write the project using this PR and noticed the following diffs:
(left is vanilla Xcode, right is the one from XcodeProj)
I believe the productName
needs to remove the plugin:
prefix (and use that to infer isPlugin
and only add it back when serialising productName
in the XCSwiftPackageProductDependency
section.
Sources/XcodeProj/Objects/SwiftPackage/XCSwiftPackageProductDependency.swift
Outdated
Show resolved
Hide resolved
b5a80ee
to
bd3882a
Compare
@kwridan Thanks for reviewing 😊 Here is what is generated now when adding a plugin: dependencies = (
975D5D662A613C2200317422 /* PBXTargetDependency */,
); 975D5D662A613C2200317422 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
productRef = 975D5D652A613C2200317422 /* SomePluginName */;
}; 975D5D652A613C2200317422 /* SomePluginName */ = {
isa = XCSwiftPackageProductDependency;
productName = "plugin:SomePluginName";
}; As far as I've been able to verify, this is exactly the same as what Xcode generates. |
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.
Thanks for the updates @BarredEwe
Sources/XcodeProj/Objects/SwiftPackage/XCSwiftPackageProductDependency.swift
Outdated
Show resolved
Hide resolved
…pendency.swift A more readable plugin definition Co-authored-by: Kas <[email protected]>
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.
thanks @BarredEwe
@pepicrft @yonaskolb Could you please review?) |
Build Tool Plug-ins
support
Could someone from the core team (or whoever can make the Merge button turn green) please review this? |
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.
I haven't been in this codebase in a while, but looks ok to me. Thanks @BarredEwe
Is this functionality available in Tuist? I can't seem to find any documentation Eta: Specifically I'm trying to integrate Cuckoo via SPM instead of cocoapods |
@mgray88 XcodeProj is used by Tuist but its not the only tool that uses this project. I'd open an issue in the Tuist repository |
Short description 📝
This is a continuation of #733, to support Build Tool Plug-ins. (Thanks to @technocidal)
Solution 📦
Added the difference between plugins and dependencies. Added correction of temporary identifiers for plugins.
Implementation 👩💻👨💻
Dependency
from plug-in:ReferenceGenerator
,XCSwiftPackageProductDependency