-
Notifications
You must be signed in to change notification settings - Fork 417
Expand file tree
/
Copy pathWorkspace.swift
More file actions
61 lines (55 loc) · 2.34 KB
/
Workspace.swift
File metadata and controls
61 lines (55 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import Foundation
import ProjectDescription
import ProjectDescriptionHelpers
var projects: [Path] = [
"./Examples/rc-maestro/",
"./Examples/MagicWeather/",
"./Examples/MagicWeatherSwiftUI/",
"./Examples/testCustomEntitlementsComputation/",
"./Examples/PurchaseTester/",
"./Projects/PaywallsTester",
"./Projects/APITesters",
"./Projects/PaywallValidationTester",
"./Projects/BinarySizeTest",
"./Projects/RCTTester"
]
// These projects depend on external packages (Nimble, SnapshotTesting, OHHTTPStubs, GoogleMobileAds).
// Exclude them when TUIST_INCLUDE_TEST_DEPENDENCIES=false to allow skipping those downloads on CI.
if Environment.includeTestDependencies {
projects.append("./Projects/RevenueCatTests")
projects.append("./Projects/RevenueCatAdMob")
projects.append("./Projects/AdMobIntegrationSample")
}
// Include RevenueCat/RevenueCatUI Tuist projects only when using local Xcode project dependencies.
// In all other modes (localSwiftPackage, remoteSwiftPackage, remoteXcodeProject), the SPM package
// or external dependency provides these targets and including the local projects would cause
// duplicate framework names ("Multiple commands produce" build errors).
switch Environment.dependencyMode {
case .localXcodeProject:
projects.append("./Projects/RevenueCat")
projects.append("./Projects/RevenueCatUI")
case .localSwiftPackage, .remoteSwiftPackage, .remoteXcodeProject:
break
}
// Only include XCFrameworkInstallationTests when explicitly enabled via environment variable
// This allows tuist generate to run before xcframeworks are created in CI
// Set TUIST_INCLUDE_XCFRAMEWORK_INSTALLATION_TESTS=true to include it
if Environment.includeXCFrameworkInstallationTests {
projects.append("./Projects/XCFrameworkInstallationTests")
}
var additionalFiles: [FileElement] = [
.glob(pattern: "Global.xcconfig"),
.glob(pattern: "Tests/TestPlans/**/*.xctestplan"),
.glob(pattern: "Tests/RevenueCatUITests/TestPlans/**/*.xctestplan")
]
if FileManager.default.fileExists(atPath: "CI.xcconfig") {
additionalFiles.append(.glob(pattern: "CI.xcconfig"))
}
if FileManager.default.fileExists(atPath: "Local.xcconfig") {
additionalFiles.append(.glob(pattern: "Local.xcconfig"))
}
let workspace = Workspace(
name: "RevenueCat-Tuist",
projects: projects,
additionalFiles: additionalFiles
)