694 Commits
Author SHA1 Message Date
mat1thandYonas Kolb 8256008778 Add possiblity to add resources before the sources build phase (#1351)
* feat: Add possiblity to add resources before the sources build phase;

* feat(ios): Add change to Docs + CHANGELOG;

* fix: rename resourcesBeforeSourcesBuildPhase to putResourcesBeforeSourcesBuildPhase to make it more clear;

* Update CHANGELOG.md

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-04-25 11:57:44 +10:00
d1dd93aac4 Rebase #177 - Shared breakpoints support (#693)
* Resolves #173 - Shared breakpoints support

* Added breakpoints full documentation

* Invalid breakpoint just throw JSONUtilities decoding error.

* Use enumeration types instead of String for extensionIDs

* Remove a necessary line

* Remove unnecessary custom Equatable implementation

* Update CHANGELOG.md

* Ignore empty breakpoints

* Update Docs/ProjectSpec.md

Fix a typo

Co-Authored-By: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Change some properties that should be Int to Int

* Create 2 typealiases

* Use BreakpointType where it is missing

* Remove unused Location

* Change some names

* Add Breakpoint.Scope

* Add Breakpoint.StopOnStyle

* Change the type of the raw value to String

* Remove some properties that may cause confusing

* Require filePah and line when the type is .file

* Add tests about decoding breakpoints

* Add Breakpoint.Action.ConveyanceType

* Add default value for waitUntilDone

* Add Breakpoint.Action.SoundName

* Add tests about decoding breakpoint actions

* Fix some issues in ProjectSpec.md

* Improve ProjectSpec.md

* Add missing condition

* Add breakpoints to project.yml

* Use unwarp

* Remove the Breakpoint suffix

* Refactor BreakpointType

* Refactor Breakpoint.Action

* Remove unnecessary properties

* Adjust the line wrapping style for BreakpointGenerator

* Support column breakpoints

---------

Co-authored-by: Alex Rupérez <alejandro.ruperez@intelygenz.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-02-28 22:00:39 +11:00
tzxdtc10andYonas Kolb aa7fed0f5b Fix typo in 'addtional' (#1328)
* fix typo

* rename to included_additional.yml

* remove one

* fix typo

* Update Tests/ProjectSpecTests/SpecLoadingTests.swift

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-02-24 09:54:58 +11:00
Wendy LigaandTieme van Veen 43e40a9efc Added support for scheme management (#1142)
* wip

* Added scheme management metadata properties to TargetScheme

* wip

* Added Scheme.Management for metadata

* use sharedDefault

* move generateSchemeManagement to SchemeGenerator

* revert

* update changelog

* update docs

* update test case

* remove

* remove unused file

* revert

* changed on fixtures project

* Updated ProjectSpec docs index

* User Scheme.Management also for TargetSchemes, use XCUserData

* Changelog

* Switch XcodeProj back tuist/XcodeProj - 8.9.0

* Reindent TOC Docs/ProjectSpec.md

* Revert swift tools version

---------

Co-authored-by: Tieme van Veen <tiemevanveen@hotmail.com>
2023-02-24 09:49:57 +11:00
Hesham Salman 366981ba2e Support for swiftcrossimport folders (#1317)
* Naive support for swiftcrossimport

* Update SourceGenerator.swift

* Add changelog entry

* Update CHANGELOG.md

* Add test fixture

* Check-in generated diffs
2023-01-25 11:36:25 +11:00
Casper Riboe 15f3186731 Renamed Embed step to 'Embed Foundation Extensions' (#1310)
* Renamed Embed step

* Add changelog entry

* Add project diffs
2023-01-16 20:07:26 +11:00
Craig Siemens 0500db212d Handle imports with same relative path (#1262)
* Added test for when includes contain relative paths with the same name.

* Updated mergedDictionary to handle includes with the same file path.

* Removed the need to multiple places to pass in cachedSpecFiles.

* Converts the projectRoot into a absolute path before loading a project.

* Updated changelog.
2023-01-16 17:57:43 +11:00
Yonas Kolb fd24307120 add a dependency test case 2022-12-09 21:35:17 +11:00
Kazumasa Shimomura a607d0a0d2 Delete ignored try keyword. (#1298) 2022-12-09 18:11:20 +11:00
Mathieu Olivari e7f753785e Fix includes related issues and improve their performances (#1275)
* Fix recursive include path when relativePath is not set

If relativePath is not set on a particular include, the first level of
include will currently work, but starting at the second level of
iteration, the computed include path will fail as relativePath will be
appended over and over onto the filePath. We're fixing that recursion
problem here and adding the corresponding tests to make sure it doesn't
happen again.

* Include projectRoot in include paths

The projectRoot setting (when specified) is currently ignored when
computing the include paths. We're fixing that in that commit.

* Use memoization during recursive SpecFiles creation

SpecFile objects are created by recursive through includes. On a large
project with programatically generated SpecFile, it is not rare to have
hundreds of SpecFiles, creating a large web of include dependencies.
In such a case, it is not rare either for a particular SpecFile to be
included by multiple other SpecFiles. When that happens, XcodeGen
currently creates a SpecFile object every time a SpecFile gets included,
which can lead to an exponential growth of includes.

I have seen hundreds of files being turned into hundred of thousands of
SpecFile object creations, which leads to an impractical XcodeGen run of
tens of minutes.

This change adds memoization during SpecFile recursion, in order to
reuse the previously created SpecFiles, if available, instead of
re-creating them.

* Update CHANGELOG.md

Add the following changes to the changelog:
* b97bdc4 - Use memoization during recursive SpecFiles creation
* a6b96ad - Include projectRoot in include paths
* 557b074 - Fix recursive include path when relativePath is not set
2022-11-03 19:05:46 +11:00
Bobby Sudekum 6f331720c9 Add enableGPUFrameCaptureMode to Scheme (#1251) 2022-09-09 18:43:39 +10:00
freddi(Yuki Aki) 594c67fbe9 Add enable option for include to enable optional including for addtional spec (#1242)
* add new option enable for include of spec

* fix to see the environment variable when parsing include

* add test for include with environment variable

* fix how to parse boolean value

* add spec about enable for include

* add Change Log

* fix the number of PR in changelog

* fix include test to make more clear

* fix test to focus enable option more

* fix english error

* fix to expand variable only one time

* add new test case by setting environment object as NO
2022-08-12 16:21:43 +10:00
Steven SheldonandYonas Kolb e9295f1ff3 Fix profile action to not run frameworks (#1245)
* Fix profile action to not run frameworks

* Add PR number to changelog

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-08-11 22:45:06 +10:00
antonsergeev88 ff552f3880 Handle mlmodelc as a single unit (#1237)
* Handle mlmodelc as a single unit

* Add mlmodelc support in changelog
2022-07-31 18:33:20 +10:00
Aleksei Sapitskii 24572daeb5 Added duplicate dependencies validation (#1234)
**Reason**
 - More strict validation of added dependencies

**Contents**
 - Added changelog entry
 - Added check for duplicates in validation stage
 - Added test
2022-07-24 16:08:33 +10:00
matsuji da8aad004f Add a new CopyFilesBuildPhase, "Embed ExtensionKit Extensions" (#1230)
* Embed ExtensionKit Extensions

* Fix explicitFileType for extensionKit

* Update ChangeLog

* Fix if statement structure

* Add a new example extension to Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj

* Comment out example for extension kit extension in Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj
2022-07-21 21:25:34 +10:00
Aleksei SapitskiiandYonas Kolb c082bc0c7c Fix XcodeGen building after XcodeProj update to 8.8.0 (#1228)
* Fix XcodeGen building after XcodeProj update to 8.8.0

**Reason**
- XcodeProj has been updated and has API breaking changes

**Content**
- Added new enum case handling in `Linkage`
- Renamed the enum case name for `XCWorkspaceDataFileRef.init`

* add new product type to docs

* update changelog

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-07-16 16:46:42 +10:00
Yonas Kolb 0822efa5bd update xcodeproj (#1213) 2022-05-10 15:03:39 +10:00
Yonas KolbandOta Mares e35f7df14d Add Test Plans (#716)
* upgrade scheme and project versions

* parse test plans

* remove xctestplan from resources

* generate test plan references in schemes

* add test plan to fixture

* non-mutable way of creating [XCScheme.TestPlanReference]

* update fixture version

* Add documentation

* Add default test plan option

# Conflicts:
#	Sources/ProjectSpec/Scheme.swift
#	Tests/Fixtures/paths_test/included_paths_test.yml
#	Tests/ProjectSpecTests/SpecLoadingTests.swift

* Add test plan validation

# Conflicts:
#	Tests/ProjectSpecTests/ProjectSpecTests.swift

* Check for multiple default test plans

* set first plan as default default plan

* small tweaks

* fix test plan path properties

* add test plants to target scheme

* docs

* fix fixture test plan path

* update changelog

* added ability to disable test plan path validation

Co-authored-by: Ota Mares <ota@rebuy.com>
2022-05-10 13:27:31 +10:00
Yuya Hirayama 047e9968d6 Fix docc support (#1202)
* Update FileType.swift

* Update SourceGeneratorTests.swift

* Update fixture

* Update CHANGELOG.md
2022-04-05 14:08:02 +10:00
Vladislav Lisyanskiy 50aa8c51cc Fixed segmentation fault crash (#1198)
* Fixed glob segmentation fault

* Renamed AtomicDictionary to ThreadSafeDictionary

* Refactored ThreadSafeDictionary

* ThreadSafeDictionary replaced with ThreadSafeContainer

* Removed reader/writer

* ThreadSafeContainer replaced with Atomic
2022-03-31 16:15:58 +11:00
John Connolly be0c3c3926 Added ability to use custom location for local Swift packages (#1175)
* Added xcodePath functionality

* Added xcodePath functionality

* Renamed Xcode path to group

* Updated change log and added fixture tests
2022-03-25 11:26:06 +11:00
Maxim Bunkov 8530da5d00 fix(carthage): shell login (#1179)
* fix(carthage): shell login

* tests(fixtures): update fixtures

* tests(changelog): update changelog
2022-03-22 10:24:41 +11:00
yonaskolb f6cdd090c2 use new TestableTargetReference in TargetScheme.coverageTargets 2022-03-20 14:44:14 +11:00
245f17117a Support test target for local Swift Package (#1169)
* support local Swift Package test case into test scheme

* update test

* add test

* update CHABGELOG.md

* Update CHANGELOG.md

* revert resolved package test

* Update Sources/XcodeGenKit/SchemeGenerator.swift

Co-authored-by: Kohki Miki <giginet.net@gmail.com>

* make TargetReference convert from new JSON format

* add .package for location of target reference

* receive target reference format at target of scheme

* update test

* update XcodeProj

* add test and fix small bugs

* update docs

* support multiple style of coverageTargets

* add edge case of parsing test targets

* fix docs

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* create TestableTargetReference for not making API complex

* fix code format

* fix parameter name to Testable Target Reference

* support directly writing key of Testable Target Reference

* fix compile error in build

Co-authored-by: Kohki Miki <giginet.net@gmail.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-20 14:27:29 +11:00
Evan ColemanandYonas Kolb 7b9d95ab4c Skip compile sources for watch apps (#1185)
* Skip compile sources build phase for watch2 apps if empty

* add changelog entry

* Fix tests

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-20 14:19:23 +11:00
Gabriel LanataandYonas Kolb 3b5ca91b76 Add coverage targets for target schemes (#1189)
* Changes

* Tests and docs

* Update fixtures

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-17 15:56:03 +11:00
Kristopher JacksonandYonas Kolb c62277f150 Added location option to test target (#1153)
* Added location option to test target

* Updated XcodeProj

* Updated packages

* Removed extra toJSONValue()

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Removed optional location

* Renamed SimulateLocation to Location

* Removed Location struct and just pass location string directly

* Added tests for location with a test target

* Added example of location inside test target to project.yml

* Removed extra test target and add location to existing target

* Updated App_Scheme.xcscheme

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-01-07 11:09:58 +11:00
Paul Taykalo 10fb43137b Speed up search by using parallel Glob and Binary Search for including files checks (#1122)
* Use binary searchi for Checking if path is included in included files

* Do not run glob in parallel on Linux systems
2021-10-08 09:20:19 +11:00
Michael TholeandKryštof Matěj fa6c5c9173 Fix Xcode 13 build (alternate PR to kick CI) (#1130)
* Fix Xcode 13 build

* Extend Xcode 12 workaround to Xcode 13

* Update CHANGELOG

* Moved CHANGELOG into 'Next Version' section

Co-authored-by: Kryštof Matěj <krystof.matej@cleverlance.com>
2021-09-24 09:11:10 +10:00
Kryštof Matěj 12511afed8 Fix platformFilter for package dependencies (#1123) 2021-09-14 23:11:25 +10:00
Yuta Saito a4d7a61a68 Fix broken codesign option for bundle dependency (#1104)
* Fix missing codesign option for bundle dependency

* Add codeSign: false test case for bundle dependency

* Update CHANGELOG.md
2021-07-15 19:06:33 +10:00
d35d22f08b Added support for dependency destination specification. (Resolves #1038) (#1039)
* Added support for dependency destination specification. (Resolves #1038)

* More generic way covering more different dependency types. (#1038)

* Added unit-test for each possible dependency combination. First test current embeding then the new one with custom copy spec. (#1038)

* Review fixes. (#1038)

* Minimized unit-test boiler-plate (#1038)

* Update CHANGELOG.md

Co-authored-by: Jakub Bednář <jakub.bednar@avast.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-07-15 12:10:34 +10:00
Dalton Claybrook 66b1db4b5c Add support for specifying the UI testing screenshot behavior in a scheme test action (#942)
* Support for specifying UI testing snapshot behavior in scheme test action

* Add tests for new screenshot scheme options

* Update changelog

* Add new fields to Scheme.Test json encoding

* Only save values to JSON if they aren't the defaults

* Using new defaults constants
2021-06-27 22:25:26 +10:00
Dalton ClaybrookandYonas Kolb 81bd52be4b Add support for conditionally linking dependencies based on platform (#1087)
* 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>
2021-06-20 20:19:02 +10:00
Vlad Gorlov 4455919be3 Added support for "driver-extension" and "system-extension" product types (#1094)
* Squashed commit of the following:

commit 0bcdce0d1f0f1d13fb5a284404e4eaea4e805a89
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Fri Jun 18 00:58:50 2021 +0200

    [#1092] Dependency version update.

commit 0040c46fd4ce9f42102faeb744104027b6c2c757
Author: Bruce Evans <bruce.evans.dev@gmail.com>
Date:   Wed Jun 16 09:12:01 2021 +0900

    Add Support for DocC in Xcode 13 (#1091)

    * Add support for DocC

    DocC "files" are actually folders `.docc` appended to the name, but Xcode 13 treats them differently. Therefore, we need to exclude them from the normal BuildPhase.

    Resolves #1089

    * Add tests for DocC

    Expanded an existing test to include .docc support.

    Also added a .docc catalog to the Test Project.

    * Update changelog.md

    * Update changelog.md to get the correct PR Link

commit 5bb7ef4e1c632f80f63c49ee280d64b8dab1603f
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Wed Jun 16 01:03:42 2021 +0200

    Added support for missed product types.

commit 3f8bfdf749d0d15da8490550b95a31cf961d8649
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Wed Jun 16 00:01:47 2021 +0200

    Added support for missed product types.

commit 235ebe4fe906716a6a37421346318fc6515836ce
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Tue Jun 15 23:53:52 2021 +0200

    Added support for missed product types.

* [#1094] Fixes failing tests.

* [#1094] Added test project targets.

* [#1094] Making iig-file type of source code.

* [#1094] Attempt to fix CI failure.
2021-06-20 14:08:38 +10:00
Bruce Evans b8af21d12f Add Support for DocC in Xcode 13 (#1091)
* Add support for DocC

DocC "files" are actually folders `.docc` appended to the name, but Xcode 13 treats them differently. Therefore, we need to exclude them from the normal BuildPhase.

Resolves #1089

* Add tests for DocC

Expanded an existing test to include .docc support.

Also added a .docc catalog to the Test Project.

* Update changelog.md

* Update changelog.md to get the correct PR Link
2021-06-16 10:12:01 +10:00
Elliott Williams 8bfa2f33e4 Revert "Change FRAMEWORK_SEARCH_PATH for xcframeworks (#1015)" (#1081)
* Revert "Change FRAMEWORK_SEARCH_PATH for xcframeworks (#1015)"

This reverts commit 7b8f5a117f.

* Don't actually revert the changelog entry

* ProjectSpec.md: document how to link an xcframework

* Update CHANGELOG.md
2021-05-22 10:32:09 +10:00
Kryštof Matěj 38888237c7 Add platform filter to dependencies (#951) 2021-05-18 20:52:24 +10:00
David LeeandYonas Kolb b6d87a1cc6 added () to config variant trimming character set (#1078)
* added () to config variant trimming character set

* added test cases

* added test cases and changelog entry

* Update CHANGELOG.md

removed

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* fixed incorrect test case

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-05-16 17:12:04 +10:00
freddi(Yuki Aki) 4233cc8578 Support runPostActionsOnFailure on build scheme (#1075)
* supports runPostActionsOnFailure on build scheme

* updates test for runPostActionsOnFailure

update runPostActionsOnFailure tests

* update Docs for runPostActionsOnFailure

* update change log

* Update CHANGELOG.md

* Update CHANGELOG.md
2021-05-06 12:54:33 +10:00
Yonas Kolb 7c510af3d7 Fix Xcode alert on generation (#1072)
* fix xcode warning alert on regeneration

* commit fixture diffs

* update changelog
2021-05-06 08:33:42 +10:00
Yonas Kolb 8a0615e883 Fix config variant lookup (#1070)
* fix config lookup

* update changelog
2021-05-06 00:07:38 +10:00
Stefano MondinoandYonas Kolb dfe7f28bcb Scheme config variants wrong assignment for similar config names (#976)
* Failing test for #975

* fixes #975

* chore: refactor to properly select a config from a collection with specific variant and config type
chore: updated changelog

* fix: lowercase compare on config variant names

* fix CI

* fix missing scheme for CI

* fix schemes for CI

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Update Sources/ProjectSpec/Config.swift

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* - fix compilation issue
- duplicated test for config variant name (uppercase/lowercase)

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-05-01 15:50:39 +10:00
Elliott Williams fb559ba153 CarthageDependencyResolver: ignore order-only dependencies (#1041)
* CarthageDependencyResolver: ignore target-only dependencies

* Update fixtures for expected changed in watchOS apps' FRAMEWORK_SEARCH_PATHS

* Update CHANGELOG.md
2021-05-01 15:39:55 +10:00
Elliott Williams 35212a6154 Rename Core to avoid collisions with other packages (i.e. GraphViz) (#1057)
* Rename 'Core' to 'XcodeGenCore'

* Update CHANGELOG.md

* Update CHANGELOG.md
2021-05-01 13:39:34 +10:00
freddi(Yuki Aki) 56f943ec01 Support weak link for Swift Package Dependency (#1064)
* support weak link to Swift Package dependency

* update test for weak link

* add changelog about Swift Package Dependency

* Update CHANGELOG.md
2021-05-01 13:09:19 +10:00
0ac7a5f8c6 Added support for SelectedTests in schemes Test configuration. (#913)
* added support for selectedTests in test shemes

* added PR description to changelog

* CHANGELOG fix

* use presence of selectedTests for useTestSelectionWhitelist

Co-authored-by: Artem Semavin <Artem Semavin>
Co-authored-by: yonaskolb <yonaskolb@gmail.com>
2021-04-08 23:01:28 +10:00
209afcc898 Allowing override LastUpgradeCheck and LastUpgradeVersion (#1013)
* Allowing the property LastUpgradeCheck and LastUpgradeVersion to be overrided

* Updating changelod and project spec

* Updating changelog

Co-authored-by: André Lucas Ota <andrel.ota@PPM-SPO-6835.local>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-04-08 22:20:10 +10:00
Franz BuschandYonas Kolb 7b8f5a117f Change FRAMEWORK_SEARCH_PATH for xcframeworks (#1015)
* Change FRAMEWORK_SEARCH_PATH for xcframeworks

* Apply suggestions from code review

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-04-08 22:20:01 +10:00