Improve error message for unsupported rule types
PiperOrigin-RevId: 199167909
diff --git a/src/Tulsi/TulsiGeneratorConfigDocument.swift b/src/Tulsi/TulsiGeneratorConfigDocument.swift
index 9bd1eed..1effc05 100644
--- a/src/Tulsi/TulsiGeneratorConfigDocument.swift
+++ b/src/Tulsi/TulsiGeneratorConfigDocument.swift
@@ -269,8 +269,9 @@
let timeTaken = String(format: "%.4fs", Date().timeIntervalSince(startTime))
LogMessage.postSyslog("Generate[OK]: \(timeTaken)", context: config.projectName)
return .success(url)
- } catch TulsiXcodeProjectGenerator.GeneratorError.unsupportedTargetType(let targetType) {
- errorInfo = "Unsupported target type: \(targetType)"
+ } catch TulsiXcodeProjectGenerator.GeneratorError.unsupportedTargetType(let targetType,
+ let label) {
+ errorInfo = "Unsupported target type: \(targetType) (target \(label))"
} catch TulsiXcodeProjectGenerator.GeneratorError.serializationFailed(let details) {
errorInfo = "General failure: \(details)"
} catch _ {
diff --git a/src/TulsiGenerator/PBXTargetGenerator.swift b/src/TulsiGenerator/PBXTargetGenerator.swift
index 91cbfeb..0fd0914 100644
--- a/src/TulsiGenerator/PBXTargetGenerator.swift
+++ b/src/TulsiGenerator/PBXTargetGenerator.swift
@@ -121,7 +121,7 @@
enum ProjectSerializationError: Error {
case buildFileIsNotContainedByProjectRoot
case generalFailure(String)
- case unsupportedTargetType(String)
+ case unsupportedTargetType(String, String)
}
/// Names of Xcode build configurations to generate.
@@ -1473,7 +1473,7 @@
named name: String,
ruleEntryMap: RuleEntryMap) throws -> (PBXNativeTarget) {
guard let pbxTargetType = entry.pbxTargetType else {
- throw ProjectSerializationError.unsupportedTargetType(entry.type)
+ throw ProjectSerializationError.unsupportedTargetType(entry.type, entry.label.value)
}
let target = project.createNativeTarget(name,
deploymentTarget: entry.deploymentTarget,
diff --git a/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift b/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
index f4ca13a..7e254da 100644
--- a/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
+++ b/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
@@ -22,7 +22,7 @@
/// General Xcode project creation failure with associated debug info.
case serializationFailed(String)
/// The project config included an entry with the associated unsupported type.
- case unsupportedTargetType(String)
+ case unsupportedTargetType(String, String)
}
public static let ScriptDirectorySubpath = XcodeProjectGenerator.ScriptDirectorySubpath
@@ -92,8 +92,9 @@
LogMessage.postError("Project generation failed.")
xcodeProjectGenerator.logPendingMessages()
switch e {
- case PBXTargetGenerator.ProjectSerializationError.unsupportedTargetType(let targetType):
- throw GeneratorError.unsupportedTargetType(targetType)
+ case PBXTargetGenerator.ProjectSerializationError.unsupportedTargetType(let targetType,
+ let label):
+ throw GeneratorError.unsupportedTargetType(targetType, label)
case PBXTargetGenerator.ProjectSerializationError.generalFailure(let info):
throw GeneratorError.serializationFailed(info)
case XcodeProjectGenerator.ProjectGeneratorError.serializationFailed(let info):