You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for traits in manifest code generation (#9173)
Add support for traits in manifest code generation
### Motivation:
Currently, manifest code generation does not support the trait feature.
This results in incomplete or incorrect generated manifests whenever
traits are involved. To ensure manifests accurately reflect the package
definition, trait-related constructs need to be supported.
### Modifications:
This patch implements trait support in manifest code generation.
Specifically, it adds support for three syntactic forms:
- Defining package traits
- Declaring trait conditions on package dependencies
- Declaring trait conditions on target dependencies
### Result:
Manifest code generation will correctly emit trait-related constructs.
Packages that define traits, or that depend on other packages/targets
conditionally based on traits, will now be represented accurately in the
generated manifest.
Copy file name to clipboardExpand all lines: Tests/WorkspaceTests/ManifestSourceGenerationTests.swift
+55Lines changed: 55 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,7 @@ final class ManifestSourceGenerationTests: XCTestCase {
107
107
XCTAssertEqual(newManifest.pkgConfig, manifest.pkgConfig,"pkgConfig not as expected"+ failureDetails, file: file, line: line)
108
108
XCTAssertEqual(newManifest.providers, manifest.providers,"providers not as expected"+ failureDetails, file: file, line: line)
109
109
XCTAssertEqual(newManifest.products, manifest.products,"products not as expected"+ failureDetails, file: file, line: line)
110
+
XCTAssertEqual(newManifest.traits, manifest.traits,"traits not as expected"+ failureDetails, file: file, line: line)
110
111
XCTAssertEqual(newManifest.dependencies, manifest.dependencies,"dependencies not as expected"+ failureDetails, file: file, line: line)
111
112
XCTAssertEqual(newManifest.targets, manifest.targets,"targets not as expected"+ failureDetails, file: file, line: line)
112
113
XCTAssertEqual(newManifest.swiftLanguageVersions, manifest.swiftLanguageVersions,"swiftLanguageVersions not as expected"+ failureDetails, file: file, line: line)
@@ -949,4 +950,58 @@ final class ManifestSourceGenerationTests: XCTestCase {
0 commit comments