Files
XcodeGen/Sources/ProjectSpec/Linkage.swift
T
Evan Coleman 6bfd620549 Support external target dependencies via subprojects (#701)
* Allow external target dependencies via subprojects

* Update CHANGELOG

* Update ProjectSpec

* Fix test

* Use existing fixture for test

* Sort subprojects by name

* Throw subproject generation error instead of crashing

* Cleanup target dependency generation

* Update test fixture project

* Combine extentions in Linkage

* Update XcodeProj to 7.7.0

* Update CHANGELOG.md

* Update ProjectSpec.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2020-02-02 09:44:56 +11:00

46 lines
1.1 KiB
Swift

import Foundation
import XcodeProj
public enum Linkage {
case dynamic
case `static`
case none
}
extension PBXProductType {
public var defaultLinkage: Linkage {
switch self {
case .none,
.appExtension,
.application,
.bundle,
.commandLineTool,
.instrumentsPackage,
.intentsServiceExtension,
.messagesApplication,
.messagesExtension,
.ocUnitTestBundle,
.stickerPack,
.tvExtension,
.uiTestBundle,
.unitTestBundle,
.watchApp,
.watchExtension,
.watch2App,
.watch2AppContainer,
.watch2Extension,
.xcodeExtension,
.xpcService:
return .none
case .framework, .xcFramework:
// TODO: This should check `MACH_O_TYPE` in case this is a "Static Framework"
return .dynamic
case .dynamicLibrary:
return .dynamic
case .staticLibrary, .staticFramework:
return .static
}
}
}