From 7ea32005e246d06ff501cb57b98b352cfb73cb7d Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 13 Aug 2023 00:15:50 +1000 Subject: [PATCH] add recommended settings for xcode 14 (#1385) * add recommended settings for xcode 14 * changelog --- CHANGELOG.md | 1 + SettingPresets/base.yml | 3 +++ Sources/XcodeGenKit/PBXProjGenerator.swift | 5 +++- Sources/XcodeGenKit/Version.swift | 4 ++-- .../Project.xcodeproj/project.pbxproj | 11 +++++++-- .../SPM/SPM.xcodeproj/project.pbxproj | 11 +++++++-- .../xcshareddata/xcschemes/App.xcscheme | 2 +- .../AnotherProject.xcodeproj/project.pbxproj | 23 +++++++++++++++++-- .../Project.xcodeproj/project.pbxproj | 23 +++++++++++++++++-- .../xcshareddata/xcschemes/App_Clip.xcscheme | 2 +- .../xcschemes/App_Scheme.xcscheme | 2 +- .../xcschemes/App_iOS Production.xcscheme | 2 +- .../xcschemes/App_iOS Staging.xcscheme | 2 +- .../xcschemes/App_iOS Test.xcscheme | 2 +- .../xcshareddata/xcschemes/App_macOS.xcscheme | 2 +- .../xcschemes/App_watchOS.xcscheme | 2 +- .../xcschemes/DriverKitDriver.xcscheme | 2 +- .../EndpointSecuritySystemExtension.xcscheme | 2 +- .../xcshareddata/xcschemes/Framework.xcscheme | 2 +- .../xcschemes/NetworkSystemExtension.xcscheme | 2 +- .../xcshareddata/xcschemes/Tool.xcscheme | 2 +- .../xcschemes/iMessageApp.xcscheme | 2 +- .../xcschemes/iMessageExtension.xcscheme | 2 +- .../TestProject.xcodeproj/project.pbxproj | 11 +++++++-- .../xcschemes/ExternalTarget.xcscheme | 2 +- .../xcschemes/Shared_TargetScheme.xcscheme | 2 +- .../xcschemes/User_ProjectScheme.xcscheme | 2 +- 27 files changed, 97 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e43cada2..827d9b29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - The project object version has been updated for Xcode 14.3 #1368 @leonardorock - Dropped support for Xcode 12 and 13, due to XcodeProj update #1384 @yonaskolb +- Updated recommended settings for Xcode 14 #1385 @yonaskolb ### Fixed diff --git a/SettingPresets/base.yml b/SettingPresets/base.yml index d7533a84..47ce5aa5 100644 --- a/SettingPresets/base.yml +++ b/SettingPresets/base.yml @@ -41,6 +41,9 @@ GCC_WARN_UNDECLARED_SELECTOR: YES GCC_WARN_UNINITIALIZED_AUTOS: YES_AGGRESSIVE GCC_WARN_UNUSED_FUNCTION: YES GCC_WARN_UNUSED_VARIABLE: YES +ENABLE_MODULE_VERIFIER: YES +MODULE_VERIFIER_SUPPORTED_LANGUAGES: "objective-c objective-c++" +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS: "gnu11 gnu++14" MTL_FAST_MATH: YES # Target Settings diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 686bc99c..02acb348 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -285,7 +285,10 @@ public class PBXProjGenerator { }.flatMap { $0 } ).sorted() - var projectAttributes: [String: Any] = project.attributes + let defaultAttributes: [String: Any] = [ + "BuildIndependentTargetsInParallel": "YES" + ] + var projectAttributes: [String: Any] = defaultAttributes.merged(project.attributes) // Set default LastUpgradeCheck if user did not specify let lastUpgradeKey = "LastUpgradeCheck" diff --git a/Sources/XcodeGenKit/Version.swift b/Sources/XcodeGenKit/Version.swift index c36a3992..0f4fed63 100644 --- a/Sources/XcodeGenKit/Version.swift +++ b/Sources/XcodeGenKit/Version.swift @@ -4,7 +4,7 @@ import ProjectSpec extension Project { public var xcodeVersion: String { - XCodeVersion.parse(options.xcodeVersion ?? "12.0") + XCodeVersion.parse(options.xcodeVersion ?? "14.3") } var schemeVersion: String { @@ -12,7 +12,7 @@ extension Project { } var compatibilityVersion: String { - "Xcode 11.0" + "Xcode 14.0" } var objectVersion: UInt { diff --git a/Tests/Fixtures/CarthageProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/CarthageProject/Project.xcodeproj/project.pbxproj index 375205ca..87cac545 100644 --- a/Tests/Fixtures/CarthageProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/CarthageProject/Project.xcodeproj/project.pbxproj @@ -312,12 +312,13 @@ 0FBAE303E3CFC2ABAC876A77 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; TargetAttributes = { }; }; buildConfigurationList = D91E14E36EC0B415578456F2 /* Build configuration list for PBXProject "Project" */; - compatibilityVersion = "Xcode 11.0"; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -403,6 +404,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -413,6 +415,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -579,6 +583,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -595,6 +600,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; diff --git a/Tests/Fixtures/SPM/SPM.xcodeproj/project.pbxproj b/Tests/Fixtures/SPM/SPM.xcodeproj/project.pbxproj index 9e09f0f1..50079a9e 100644 --- a/Tests/Fixtures/SPM/SPM.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/SPM/SPM.xcodeproj/project.pbxproj @@ -198,12 +198,13 @@ F7B09D77DB7447B17DCDA3C4 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; TargetAttributes = { }; }; buildConfigurationList = 425866ADA259DB93FC4AF1E3 /* Build configuration list for PBXProject "SPM" */; - compatibilityVersion = "Xcode 11.0"; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -422,6 +423,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -438,6 +440,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -499,6 +503,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -509,6 +514,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Tests/Fixtures/SPM/SPM.xcodeproj/xcshareddata/xcschemes/App.xcscheme b/Tests/Fixtures/SPM/SPM.xcodeproj/xcshareddata/xcschemes/App.xcscheme index 8e271576..353d320e 100644 --- a/Tests/Fixtures/SPM/SPM.xcodeproj/xcshareddata/xcschemes/App.xcscheme +++ b/Tests/Fixtures/SPM/SPM.xcodeproj/xcshareddata/xcschemes/App.xcscheme @@ -1,6 +1,6 @@