From 6a9de2208a8caaccf83fdaa261b72d467344f266 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Fri, 20 Oct 2017 12:24:52 +0100 Subject: [PATCH] don't apply base project settings if config doesn't have a type --- Sources/XcodeGenKit/SettingsBuilder.swift | 3 +-- Tests/XcodeGenKitTests/ProjectGeneratorTests.swift | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Sources/XcodeGenKit/SettingsBuilder.swift b/Sources/XcodeGenKit/SettingsBuilder.swift index d549d070..6c81e28c 100644 --- a/Sources/XcodeGenKit/SettingsBuilder.swift +++ b/Sources/XcodeGenKit/SettingsBuilder.swift @@ -16,11 +16,10 @@ import JSONUtilities extension ProjectSpec { public func getProjectBuildSettings(config: Config) -> BuildSettings { - var buildSettings: BuildSettings = [:] - buildSettings += SettingsPresetFile.base.getBuildSettings() if let type = config.type { + buildSettings += SettingsPresetFile.base.getBuildSettings() buildSettings += SettingsPresetFile.config(type).getBuildSettings() } diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 6655c1ed..6fb551a8 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -62,6 +62,15 @@ func projectGeneratorTests() { try expect(configs).contains(name: "config1") try expect(configs).contains(name: "config2") } + + $0.it("clears config settings when missing type") { + let spec = ProjectSpec(name: "test", configs: [Config(name: "config")]) + let project = try getProject(spec) + guard let config = project.pbxproj.buildConfigurations.first else { + throw failure("configuration not found") + } + try expect(config.buildSettings.isEmpty).to.beTrue() + } $0.it("merges settings") { let spec = try ProjectSpec(path: fixturePath + "settings_test.yml")