[1/n] Add support for reading JSON project descriptions #171
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.
Custom build systems such as Buck or Bazel need a way to generate mocks without an
.xcodeproj
file. This adds support for passing a JSON project description containing all of the required module and dependency graph information usually parsed from an Xcode project. The description format is roughly compatible with the output from$ swift package describe --type JSON
, although adding thedependency
field needs to be upstreamed.The
--project
generator option now accepts arbitrary files. Iff a file with anxcodeproj
extension is provided then it is read as an Xcode project. Cache metadata is stored in the same enclosing directory as the project description file under the.mockingbird
subdirectory.Since builds are run outside of an Xcode testing context, it's necessary to optionally provide a host test target with the
--testbundle
option to enable thunk pruning support.