mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2026-03-18 20:02:25 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user