* Add initial support for conditional platform dependencies
* Add tests for conditional platforms
* Update docs and changelog
* Respond to PR feedback
* Change name of field from 'conditionalPlatforms' to 'platforms'
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Adjust header search paths and legacy working directory for relative included projects
* Undo change to HEADER_SEARCH_PATHS
* Add test
* Update changelog
* Fix test
* Undo test changes
* Fix tests
* Prefix static library target filenames with 'lib' to match Xcode.
Given a target named 'MyTarget', Xcode automatically prefixes the filename with 'lib', resulting in the filename 'libMyTarget.a'.
* Update CHANGELOG.md
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Improving variable expansion runtime
The current implementation of variable expansion is O(n x m) with n being the
number of strings in the project spec and m being the number of project variables.
This implementation is now O(n).
Also, this effectively deprecates the support for $legacy_variables in favor of the
${new_variables} making this whole patch possible.
* Adding option to disable variable expansion
* Adding performance test for spec loading
* Updating changelog
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.
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.
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.
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.