Files
XcodeGen/Sources/ProjectSpec/XCProjExtensions.swift
T
Rahul Malik 8a46cde0b1 Add commandlineArguments to XcodeGenKit Scheme specifications (#172)
* Add commandlineArguments to XcodeGenKit Scheme specifications

* Update xcproj reference, format code, cleanup usage of
commandlineArguments in ProjectGenerator

* Update docs, CHANGELOG and equality checks in Scheme.swift

* Doc update

* Update fixture tests to have command line arguments. Fix remaining issue
with Scheme creation through "Test Scheme"
2017-11-28 11:02:59 -08:00

59 lines
1.4 KiB
Swift

import Foundation
import xcproj
import PathKit
extension PBXProductType {
init?(string: String) {
if let type = PBXProductType(rawValue: string) {
self = type
} else if let type = PBXProductType(rawValue: "com.apple.product-type.\(string)") {
self = type
} else {
return nil
}
}
public var isFramework: Bool {
return self == .framework
}
public var isLibrary: Bool {
return self == .staticLibrary || self == .dynamicLibrary
}
public var isExtension: Bool {
return fileExtension == "appex"
}
public var isApp: Bool {
return fileExtension == "app"
}
public var name: String {
return rawValue.replacingOccurrences(of: "com.apple.product-type.", with: "")
}
}
extension Platform {
public var emoji: String {
switch self {
case .iOS: return "📱"
case .watchOS: return "⌚️"
case .tvOS: return "📺"
case .macOS: return "🖥"
}
}
}
extension XCScheme.CommandLineArguments {
// Dictionary is a mapping from argument name and if it is enabled by default
public convenience init(_ dict: [String: Bool]) {
let args = dict.map { tuple in
XCScheme.CommandLineArguments.CommandLineArgument(name: tuple.key, enabled: tuple.value)
}
self.init(arguments: args)
}
}