72 Commits

Author SHA1 Message Date
Tom Quist aaae772d0e Add ability to define templateAttributes within a target
This allows parameterizing templates. Also change
placeholder syntax to `${placeholderName}` also for
existing placeholders `$target_name`and `$platform`
and generate warnings when using the old placeholder
syntax.
2019-03-17 14:55:15 +01:00
Tom Quist 0c2554db2b Add support for nested templates
It would be convenient if templates could be nested, which means
a template can be based on another template.

This change implements support for nested templates. It avoids
cycles by just ignoring templates that have already been visited
when collecting the set of templates to use.
2019-03-17 11:29:50 +01:00
ainopara 520db0eb08 Make multi platform targets parse deployment target per platform. 2019-03-04 10:24:51 +08:00
Yonas Kolb 6f4c7d79ac replace $target_name in target templates 2019-01-28 15:54:56 +11:00
Ell Neal 8eadc2f96c Remove some imports that are no longer necessary 2019-01-27 15:34:41 +00:00
Ell Neal d2579bfe43 Refactor the PathContainer protocol to be a bit more expressive 2019-01-24 12:50:34 +00:00
Ell Neal 151d78ef98 Rename PathContaining -> PathContainer 2019-01-21 13:32:13 +00:00
Ell Neal 05a564c324 Use normal imports 2019-01-21 13:12:14 +00:00
Ell Neal 98aeef46dc Implement PathContaining on relevant models 2019-01-13 18:22:34 +00:00
Ell Neal a2684a96a4 Replace global merge function with extension on Dictionary 2019-01-13 18:16:17 +00:00
Brentley Jones ef0c87ecb5 Merge branch 'master' into copy-files-ordering 2018-11-05 10:38:21 -06:00
Yonas Kolb 1631236b7a format_code 2018-11-04 22:30:34 +11:00
Yonas Kolb ea2d38ecdd tweak project description 2018-11-03 20:09:46 +11:00
Yonas Kolb 3d87c61342 plist error handling 2018-10-30 22:22:51 +11:00
Yonas Kolb 228ab6620b generate info plist and entitlements 2018-10-30 00:44:12 +11:00
Yonas Kolb b1b7901f1e don't generate duplicate product file references for cross platform targets 2018-10-14 21:58:19 +11:00
Yonas Kolb e97b002655 upgrade to xcodeproj 5 2018-09-25 21:08:11 +10:00
Brentley Jones 296b938e82 Rename prebuildScripts and postbuildScripts
Also cleanup the documentation and add more tests for the newly added `postCompileScripts`.
2018-09-19 09:24:55 -05:00
Brentley Jones ffc6b92f88 Allow specifying run scripts to run right after compilation
With Xcode 10 dependent targets won't start compiling until compilation and all run scripts are done for the target. This means that your run script should run before Copy Files (and Copy Resources, etc.) phases unless it needs to run later, to allow dependent targets to compile faster.
2018-09-19 08:58:49 -05:00
Brentley Jones 8ebf27a122 Add directlyEmbedCarthageDependencies to Target
Allows for choice on if `copy-frameworks` or an `Embed Frameworks` build phase should be used to embed Carthage framworks. Defaults to `true` for macOS targets to match current behavior.
2018-07-24 19:56:08 -05:00
Brentley Jones 15af4fd1d9 Add requiresObjCLinking to Target
Allows a Target to indicate that any target that links to it needs to set `-ObjC` in `OTHER_LDFLAGS`.
2018-07-24 08:03:03 -05:00
Yonas Kolb 3b17164bbf add aggregate targets 2018-07-24 22:05:29 +10:00
Yonas Kolb c9ab3af76e merge target onto templates 2018-07-23 20:27:50 +10:00
Yonas Kolb 1741d69c3c seperate target resolvers 2018-07-23 20:08:55 +10:00
Yonas Kolb c50d1dd157 add target templates 2018-07-22 21:49:39 +10:00
Brentley Jones b7ba3628e9 Fix typo "transient" -> "transitive" 2018-07-03 13:34:20 -05:00
Yonas Kolb 01815e7e4e Update to 1.10.0 2018-07-03 21:45:00 +10:00
Brentley Jones 55b0ed1eeb Add option to turn off transiently linking dependencies 2018-06-29 14:04:31 -05:00
Yonas Kolb 701df1c915 Merge pull request #306 from yonaskolb/build_rule
Add build rules
2018-05-24 16:22:06 +10:00
Yonas Kolb 3533c2cb07 use AutoEquatable where possible 2018-05-13 19:05:32 +10:00
Yonas Kolb 542668d9f0 add build rules 2018-05-13 17:13:48 +10:00
Yonas Kolb 1ce6b97980 update to Swift 4.1 2018-05-12 15:10:18 +10:00
Yonas Kolb a1b631b405 add pre and post actions to target scheme 2018-03-30 01:47:25 +11:00
Yonas Kolb ebde9de151 Add target.attributes 2018-03-27 14:21:15 +11:00
Jerry Marino fda4f30713 Allow allocation of LegacyTarget
I'm now using XcodeGen data structures directly, which is awesome.

I need to allocate `LegacyTarget` in my code, so this method makes it
public.
2018-03-08 13:23:17 -08:00
Jakub Turek dcb098a39f Implement setting schema variables in xcodeproj 2018-02-26 22:22:07 +01:00
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
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 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
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
Yonas Kolb a2c41917e5 Fix groups (#144)
* failing createIntermediateDirectories test

* refactor sources

* add reference generator tests
2017-11-12 18:52:11 +01:00
Yonas Kolb 698d8d85b4 change target source from String to Source struct 2017-10-31 17:22:14 +01:00