Merge branch 'master' into xcodeproj_5

# Conflicts:
#	.circleci/config.yml
#	Sources/XcodeGenKit/PBXProjGenerator.swift
#	Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj
#	Tests/XcodeGenKitTests/ProjectFixtureTests.swift
#	Tests/XcodeGenKitTests/ProjectGeneratorTests.swift
This commit is contained in:
Yonas Kolb
2018-10-08 22:00:45 +11:00
31 changed files with 2626 additions and 250 deletions
+11 -3
View File
@@ -420,6 +420,14 @@ public class PBXProjGenerator {
return ["ATTRIBUTES": embedAttributes]
}
func getDependencyFrameworkSettings(dependency: Dependency) -> [String: Any]? {
var linkingAttributes: [String] = []
if dependency.weakLink {
linkingAttributes.append("Weak")
}
return !linkingAttributes.isEmpty ? ["ATTRIBUTES": linkingAttributes] : nil
}
for dependency in targetDependencies {
let embed = dependency.embed ?? target.shouldEmbedDependencies
@@ -442,7 +450,7 @@ public class PBXProjGenerator {
if link {
let dependencyFile = targetFileReferences[dependencyTargetName]!
let buildFile = addObject(
PBXBuildFile(file: dependencyFile)
PBXBuildFile(file: dependencyFile, settings: getDependencyFrameworkSettings(dependency: dependency))
)
targetFrameworkBuildFiles.append(buildFile)
@@ -496,7 +504,7 @@ public class PBXProjGenerator {
}
let buildFile = addObject(
PBXBuildFile(file: fileReference)
PBXBuildFile(file: fileReference, settings: getDependencyFrameworkSettings(dependency: dependency))
)
targetFrameworkBuildFiles.append(buildFile)
@@ -525,7 +533,7 @@ public class PBXProjGenerator {
let fileReference = sourceGenerator.getFileReference(path: frameworkPath, inPath: platformPath)
let buildFile = addObject(
PBXBuildFile(file: fileReference)
PBXBuildFile(file: fileReference, settings: getDependencyFrameworkSettings(dependency: dependency))
)
carthageFrameworksByPlatform[target.platform.carthageDirectoryName, default: []].insert(fileReference)
+4 -2
View File
@@ -21,8 +21,10 @@ public class ProjectGenerator {
return project.configs.first { $0.type == .release }!
}
public func generateXcodeProject() throws -> XcodeProj {
try project.validate()
public func generateXcodeProject(validate: Bool = true) throws -> XcodeProj {
if validate {
try project.validate()
}
let pbxProjGenerator = PBXProjGenerator(project: project)
let pbxProject = try pbxProjGenerator.generate()
let workspace = try generateWorkspace()