This gives us an entry point for disabling specific project.yml
validations that sometimes shouldn't apply. The first example is
missingConfigs, which, if you use your .yml file in multiple projects,
can be too strict if the projects have different top level
configurations.
Fixes#193
This addresses the issue that it was impossible to test targets if
custom scheme was used by providing array of testables to `Test` action.
Now it should be possible using the following syntax:
```yaml
STCore:
build:
targets:
- target: STCore
buildTypes: all
test:
testables: [STCoreTests]
config: Staging-Debug
```
Note that original example in #193 has to be modified for this change
as it causes a confusion in Xcode: if we have 2 targets `STCore` and
`STCoreTests`, if `STCoreTests` is also added as testable Xcode
duplicates test target in build actions (i.e. `STCore`, `STCoreTests`,
`STCoreTests` are shown).
XcodeGen now supports "External Build Tool" target type (internally called
PBXLegacyTarget in Xcode). This is implied when the target provides a
`LegacyTarget` field in its spec.
PBXLegacyTargets are just like normal targets but the `isa` is different
and they have a notion of a buildTool. Most of the target logic doesn't
have to change.
* Add commandlineArguments to XcodeGenKit Scheme specifications
* Update xcproj reference, format code, cleanup usage of
commandlineArguments in ProjectGenerator
* Update docs, CHANGELOG and equality checks in Scheme.swift
* Doc update
* Update fixture tests to have command line arguments. Fix remaining issue
with Scheme creation through "Test Scheme"
* Resolves#169, added support for codeCoverageEnabled flag in target schemes.
* #170 @yonaskolb code review fix and docs update.
* More #170 @yonaskolb code review fix.
* Using gatherCoverageData instead of codeCoverageEnabled naming, thanks @kastiglione.
* Now using xcproj 1.5.0
* Another #170 @yonaskolb code review fix.
Added support for compilerFlags in source list. If any source file
metadata (like compilerFlags) is attached to a directory the metadata
propagates downwards to all children recursively until the files are
reached.
Files are now processed in the same way as directories in `getSources`
this depends on #108 to not over-eagerly cache groups. The `source` is
propagated as metadata down all the way (thanks @yonaskolb)
Fixtures and unit tests are updated as well.
This commit adds a new option `createIntermediateGroups` that defaults
to false. When it is false, the behavior of XcodeGen is the same as
before. When it is true, we make intermediate groups recursively until
we reach the basePath. In practice that means if you've chosen
`Platform/PINFoundation/Sources` as one of your sourcePaths, you get a
top-level group of `Platform` and under that `PINFoundation` and under
that `Sources`. This is instead of the default behavior of just making
`Sources` a top-level group (which is confusing when your directory is
called `Sources` for example).
This adds a new attribute to Dependency that allows consumers to choose
to not link a dependency. This is useful for if you have this dependency
tree with static libraries:
App -> A -> Shared
App -> B -> Shared
Where A and B both share a static library dependency, that is finally
linked into App. If Shared is added to the link phase of A and B, you
end up with duplicate symbols during the link phase. With this change
consumers could set link: False on A and B's dependency on Shared, this
way Shared will get build before A and B, but not linked.