Commit Graph

349 Commits

Author SHA1 Message Date
Yonas Kolb a176f85875 xcproj 4.0 2018-01-25 20:59:28 +10:30
Yonas Kolb a7380e106d generate target product name for file reference path 2018-01-21 22:41:23 +10:30
Keith Smiley b6ef82b3df Add new option for disabling validations
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.
2018-01-05 11:41:33 -08:00
Yonas Kolb 0bc2f3415e minor 2017-12-26 22:46:36 +08:00
Yonas Kolb 75e0644b99 wrap long lines 2017-12-26 18:47:18 +08:00
Yonas Kolb e75b1c1e89 format code 2017-12-26 17:56:02 +08:00
Yonas Kolb 554a9d2524 Merge pull request #205 from yonaskolb/platform_version
Add deployment target
2017-12-26 17:55:14 +08:00
Yonas Kolb e3a6739b2a rename deploymentTargets to deploymentTarget 2017-12-26 17:48:01 +08:00
Yonas Kolb cd6d179325 rename platformVersion to deploymentTarget 2017-12-26 17:36:41 +08:00
Yonas Kolb 4a90d33951 Add Version type 2017-12-26 17:36:41 +08:00
Yonas Kolb f0486c644e add options.platformVersions and target.platformVersion 2017-12-26 17:36:22 +08:00
Yonas Kolb d4fc0916a2 Merge pull request #203 from yonaskolb/scheme_build_types
Change Scheme.Build.targets spec
2017-12-26 16:40:11 +08:00
Yonas Kolb cb3ffc3d2b change Scheme.Build.targets spec 2017-12-22 18:59:23 +08:00
Yonas Kolb cf6df044cf add TargetSource.buildPhase for overriding build phase 2017-12-22 18:57:15 +08:00
Yonas Kolb 7c7bbce783 refactor TargetScheme -> Scheme initialization 2017-12-21 19:02:29 +08:00
Yonas Kolb e7b9d99b4c allow scheme build target build types to be defined with an array 2017-12-21 18:26:19 +08:00
Yonas Kolb 375d322b3f Merge pull request #200 from allu22/optional-file
Allow missing files in sources
2017-12-21 17:38:23 +08:00
Alvar Hansen 24c8668eb7 Allow missing files in sources
Adds `optional` flag to `TargetSource` to allow files that do not exist yet.
This is useful in cases where build script will generate files.
2017-12-21 11:33:04 +02:00
Valerii Hiora 9bcd1db486 Missed one more testables occurence 2017-12-21 10:58:37 +02:00
Valerii Hiora 5a3e37218d Added support for testables in Scheme
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).
2017-12-21 10:50:47 +02:00
Yonas Kolb 5a30baf77e add xcodeVersion option 2017-12-20 23:13:31 +08:00
Brandon Kase 4c96dbb323 Support indentation options from xcproj (#190) 2017-12-18 13:28:33 -08:00
Brandon Kase 69b1368013 Support Legacy Targets (#175)
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.
2017-12-18 13:26:49 -08:00
Rahul Malik 8a46cde0b1 Add commandlineArguments to XcodeGenKit Scheme specifications (#172)
* 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"
2017-11-28 11:02:59 -08:00
Alex Rupérez c59c6a02db Added support for codeCoverageEnabled flag in target schemes. (#170)
* 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.
2017-11-24 11:45:56 +01:00
Yonas Kolb 8da828a029 minor logging change 2017-11-23 20:32:48 +01:00
Yonas Kolb 0c1325cc5f remove header comments 2017-11-22 13:01:17 +01:00
Cameron Mc Gorian f143b907f8 Review feedback 2017-11-21 13:51:04 +01:00
Cameron Mc Gorian 99f8bafccf Update init method 2017-11-21 11:14:58 +01:00
Cameron Mc Gorian 5eb9468e97 Add implicit type to Dependency 2017-11-21 07:50:46 +01:00
Yonas Kolb 8b0cc83416 add linking to Dependency init 2017-11-17 00:37:36 +01:00
Yonas Kolb 0004cdd333 Update to 1.4.0 2017-11-16 11:49:30 +01:00
ryohey 3fb7a15c74 Fix option parsing 2017-11-16 01:45:28 +09:00
Yonas Kolb cf426ba5eb add ProjectSpec.options.developmentLanguage 2017-11-15 12:13:32 +01:00
Yonas Kolb ce0f3b5665 add folder reference support 2017-11-15 01:22:02 +01:00
Yonas Kolb e8188ad9f8 swiftformat 2017-11-13 21:33:59 +01:00
Yonas Kolb 63c2d08977 add TargetSource.name for renaming sources (#146) 2017-11-12 20:26:36 +01:00
Yonas Kolb a2c41917e5 Fix groups (#144)
* failing createIntermediateDirectories test

* refactor sources

* add reference generator tests
2017-11-12 18:52:11 +01:00
Peyman Khanjan 91729a9694 Add support for simple files excludes from sources #5. (#135)
* Add support for simple files excludes from sources #5.

* Add pattern matching for Source excludes #5.

* Simplify getting Source.excludes from jsonDictionary.

* Remove recursive pattern matching and formatting.
2017-11-11 00:22:07 +01:00
Yonas Kolb 7cdc496f45 test refactoring 2017-11-10 23:28:16 +01:00
Yonas Kolb 68b4214c24 json loading refactoring
- don't convert to string and back
2017-11-04 02:05:39 +01:00
rmalik 91056efc8a Load json files directly with NSJSONSerialization if the spec path extension is
`json`
2017-11-03 12:10:00 -07:00
Brandon Kase 6b17b76435 Support CompilerFlags in Sources
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.
2017-11-02 13:47:26 -07:00
Brandon Kase e48045da9e Optionally make intermediate filler groups
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).
2017-11-01 18:02:31 -07:00
Yonas Kolb 698d8d85b4 change target source from String to Source struct 2017-10-31 17:22:14 +01:00
Yonas Kolb 92c2e5c5b5 run format-code.sh 2017-10-29 22:27:05 +01:00
Yonas Kolb f8b4b5792e move and rename files 2017-10-29 22:15:02 +01:00
Yonas Kolb 9a41bb9ab6 minor refactoring of spec validation 2017-10-29 20:32:36 +01:00
Yonas Kolb 770b502638 change target description 2017-10-27 00:50:21 +02:00
Keith Smiley 08de6077d9 Add option for not linking dependencies
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.
2017-10-25 15:55:49 -07:00