mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2026-03-18 20:02:25 +00:00
add package validation
This commit is contained in:
@@ -156,6 +156,10 @@ extension Project {
|
||||
errors.append(.invalidSDKDependency(target: target.name, dependency: dependency.reference))
|
||||
}
|
||||
}
|
||||
case .package:
|
||||
if packages[dependency.reference] == nil {
|
||||
errors.append(.invalidSwiftPackage(name: dependency.reference, target: target.name))
|
||||
}
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ public struct SpecValidationError: Error, CustomStringConvertible {
|
||||
case invalidTargetSchemeTest(target: String, testTarget: String)
|
||||
case invalidSchemeTarget(scheme: String, target: String)
|
||||
case invalidSchemeConfig(scheme: String, config: String)
|
||||
case invalidSwiftPackage(name: String, target: String)
|
||||
case invalidConfigFile(configFile: String, config: String)
|
||||
case invalidBuildSettingConfig(String)
|
||||
case invalidSettingsGroup(String)
|
||||
@@ -61,6 +62,8 @@ public struct SpecValidationError: Error, CustomStringConvertible {
|
||||
return "Invalid file group \(group.quoted)"
|
||||
case let .invalidConfigFileConfig(config):
|
||||
return "Config file has invalid config \(config.quoted)"
|
||||
case let .invalidSwiftPackage(name, target):
|
||||
return "Target \(target.quoted) has an invalid package dependency \(name.quoted)"
|
||||
case let .missingConfigForTargetScheme(target, configType):
|
||||
return "Target \(target.quoted) is missing a config of type \(configType.rawValue) to generate its scheme"
|
||||
case let .missingDefaultConfig(name):
|
||||
|
||||
@@ -134,7 +134,10 @@ class ProjectSpecTests: XCTestCase {
|
||||
settings: invalidSettings,
|
||||
configFiles: ["invalidConfig": "invalidConfigFile"],
|
||||
sources: ["invalidSource"],
|
||||
dependencies: [Dependency(type: .target, reference: "invalidDependency")],
|
||||
dependencies: [
|
||||
Dependency(type: .target, reference: "invalidDependency"),
|
||||
Dependency(type: .package(product: nil), reference: "invalidPackage")
|
||||
],
|
||||
preBuildScripts: [BuildScript(script: .path("invalidPreBuildScript"), name: "preBuildScript1")],
|
||||
postCompileScripts: [BuildScript(script: .path("invalidPostCompileScript"))],
|
||||
postBuildScripts: [BuildScript(script: .path("invalidPostBuildScript"))],
|
||||
@@ -142,6 +145,7 @@ class ProjectSpecTests: XCTestCase {
|
||||
)]
|
||||
|
||||
try expectValidationError(project, .invalidTargetDependency(target: "target1", dependency: "invalidDependency"))
|
||||
try expectValidationError(project, .invalidSwiftPackage(name: "invalidPackage", target: "target1"))
|
||||
try expectValidationError(project, .invalidTargetConfigFile(target: "target1", configFile: "invalidConfigFile", config: "invalidConfig"))
|
||||
try expectValidationError(project, .invalidTargetSchemeTest(target: "target1", testTarget: "invalidTarget"))
|
||||
try expectValidationError(project, .invalidTargetSource(target: "target1", source: "invalidSource"))
|
||||
|
||||
Reference in New Issue
Block a user