Commit Graph

2184 Commits

Author SHA1 Message Date
Liam Nichols
98ce05105b
Don't add PBXContainerItemProxy when reusing PBXReferenceProxy (#1377)
* Reproduce issue in FixtureTests

* Don't add PBXContainerItemProxy if existing PBXReferenceProxy was reused

* Move extenral target fixture to an iOS target so that it actually compiles

* Update CHANGELOG.md
2023-07-26 22:52:43 +10:00
Oleg Barenboim
af1adfe1cd
Update README for Xcode version (#1376) 2023-07-25 11:25:04 +10:00
Yonas Kolb
a9ed3cec08
Update CHANGELOG.md 2023-07-13 21:00:16 +10:00
LouisLWang
f33d600d50
adding support for enableGPUValidationMode (#1294)
* adding support for enableGPUValidationMode

* encode enableGPUValidationMode in Scheme.Run.toJSONValue()

* ci: commit fixtures changes

* docs: Add changelog for enableGPUValidationMode

update Doc ProjectSpec.md

* docs: update ProjectSpec.md for enableGPUValidationMode default value

---------

Co-authored-by: wanglulu <louiswang@lilith.com>
2023-07-13 20:58:32 +10:00
Roman Gardukevich
372f20fe5a
Reuse ReferenceProxy references when possible (#1354)
* Reuse ReferenceProxy references when possible

* Add changelog

* Update CHANGELOG.md

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-05-17 11:58:32 +10:00
Bartosz Kosiorek
9766326dcd
Display absolute path for invalidBuildScriptPath and invalidTargetConfigFile error print. (#1353)
* Display absolute path in invalidBuildScriptPath error print.

With previous implementation, the error message was not clear for end user:
  Spec validation error: Target "Project" has a script "SwiftLint" which has a path that doesn't exist "../../wrong-dir/scripts/run_swiftlint_in_xcode_wrapper.sh"

With new implementation with absolute path, it is easier to validate what is wrong with path:
  Spec validation error: Target "Project" has a script "SwiftLint" which has a path that doesn't exist "/Users/SomeUser/dev/fancy-project/wrong-dir/scripts/run_swiftlint_in_xcode_wrapper.sh"

* Display absolute path for invalidTargetConfigFile error print.

Without patch:
  2 Spec validations errors:
	- Target "MM" has invalid config file "../../xcodegen/MM/Build/xcconfig/conan_config.xcconfig" for config "Debug"
	- Target "MM" has invalid config file "../../xcodegen/MM/Build/xcconfig/conan_config.xcconfig" for config "Release"

After fix:
  2 Spec validations errors:
	- Target "MM" has invalid config file path "/Users/MyUser/dev/myproject/xcodegen/MM/Build/xcconfig/conan_config.xcconfig" for config "Release"
	- Target "MM" has invalid config file path "/Users/MyUser/dev/myproject/xcodegen/MM/Build/xcconfig/conan_config.xcconfig" for config "Debug"
2023-04-28 07:52:06 +10:00
Yonas Kolb
ee60884b13 Update to 2.35.0 2023-04-27 17:04:40 +10:00
Yonas Kolb
5cad63987e
Update ProjectSpec.md 2023-04-27 16:59:48 +10:00
Bartosz Kosiorek
10b99f1be0
Update documentation of Settings and Setting Groups (#1352)
What was changed:
- updated index,
- improve examples,
- improve formatting,
- add reference to Settings Group
- add information that Simple Map will be skipped if used with base, groups or configs
2023-04-27 16:54:58 +10:00
mat1th
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
Dale Myers
988afa0f5b
Sanitize the ends of folder source paths (#1341)
* Sanitize the ends of folder source paths

Setting the source: `/foo/bar` is _sometimes_ different from `/foo/bar/` even if `bar` is a folder in both cases. The result of this is that we often run into a race condition where we have two objects with the same hash but different properties. This fixes #1339 and #1131.

* Update CHANGELOG.md

* Update TargetSource.swift

* Update TargetSource.swift

* Update TargetSource.swift
2023-04-06 09:17:31 +10:00
Sara Tavares
5a34c489e1
chore(typos): fix typos (#1340) 2023-03-23 10:29:08 +11:00
Jierong Li
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
tzxdtc10
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
Yonas Kolb
39739b4efd ignore user data 2023-02-24 09:53:06 +11:00
Yonas Kolb
271ad593b8 Update to 2.34.0 2023-02-24 09:52:16 +11:00
Wendy Liga
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
Marcin Chojnacki
80e317206b
Remove SPM configurations warning from ProjectSpec (#1329)
ProjectSpec states that Swift Packages don't work in projects with configurations other than `Debug` and `Release`. It provides a link to Swift bugtracker to issue marked as duplicate. Original issue that it points to is closed and fixed since 2020 with Xcode 12.

Let's remove misleading note from ProjectSpec.

https://github.com/apple/swift-package-manager/issues/4674
2023-02-18 20:32:16 +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
Yonas Kolb
9551979e54
Update RELEASE.md 2023-01-24 13:08:09 +11:00
Hesham Salman
6caacce3df
Fix typo in 'fixtures' (#1316) 2023-01-22 01:32:22 +11:00
Yonas Kolb
386de7375e
Update CHANGELOG.md 2023-01-16 20:08:11 +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
Yonas Kolb
b6bc2a8d88
Update CHANGELOG.md 2023-01-16 17:58:33 +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
3327c44ad7 Update to 2.33.0 2022-12-09 21:35:49 +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
Kazumasa Shimomura
b142998dbb
Update Yams to 5.0.1 (#1297)
* Update yams

* Update CHANGELOG.md
2022-12-09 18:10:33 +11:00
Yonas Kolb
ad971a545a split variable 2022-12-07 11:20:24 +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
Roland
3e9fd048ef
allow multiple spec files to be provided to XcodeGen (#1270)
* allow spec to be a comma separated list of specs instead of one

* update readme and --spec command documentation

* update Changelog

* print project name
2022-11-02 17:42:22 +11:00
Yonas Kolb
87d7c7e136
Update CHANGELOG.md 2022-10-01 20:50:18 +10:00
SofteqDG
435c19443a
Extend possible paths for SettingsPresets (#1135)
* Search for presets in Bundle.main.resourcesPath dir (if exists)
2022-10-01 18:23:09 +10:00
Craig Siemens
ed5ec74668
Added scheme generation for aggregate targets (#1250)
* Updated SchemeGenerator to generate schemes for all projectTargets.

* Added changelog entry
2022-09-29 14:08:37 +10:00
Bobby Sudekum
6f331720c9
Add enableGPUFrameCaptureMode to Scheme (#1251) 2022-09-09 18:43:39 +10:00
Yonas Kolb
ebf70f1a71 Update to 2.32.0 2022-08-19 00:53:34 +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 Sheldon
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
Shinolr
ac525a445e
remove redundant bracket (#1243) 2022-08-10 00:32:33 +10:00
Isaac Halvorson
34f50d645e
Correct name of package in example yaml (#1240)
Hey there, I just noticed that one of the example yaml snippets had the wrong package name specified.
2022-08-02 08:27:14 +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
Yonas Kolb
de2a537ab4 Update to 2.31.0 2022-07-24 16:10:15 +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
Yonas Kolb
c1d5c65ae4 Update to 2.30.0 2022-07-16 16:57:26 +10:00
Aleksei Sapitskii
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
Luca Bartoletti
19817f3192
Fix watchapp2-container product name (#1219)
The correct name is `application.watchapp2-container`
2022-07-16 16:46:31 +10:00
JP Simard
f65dad7625
Speed up SettingsBuilder (#1221)
* Speed up SettingsBuilder

It's unnecessary to build up a whole grouped dictionary only to check
if all platforms are identical and then immediately discard the
dictionary.

Instead we can check if all targets match the first platform, which
avoids creating a new dictionary but also allows bailing early as soon
as a non-matching platform is found.

Generating a large project (36MB json spec) on an M1 Max machine leads
to a ~6% total speedup: 28.48s vs 30.07s.

* Add changelog entry
2022-06-16 13:54:28 +10:00
Mark Turner
a2348d0cfa
Example of vscode usage as a development environment (#1218) 2022-06-15 13:33:42 +10:00