From aaa3f8be8f903385d4b8c5a6822d9aae19044c98 Mon Sep 17 00:00:00 2001 From: evanbacon Date: Sat, 7 Mar 2026 11:11:31 -0800 Subject: [PATCH] Add comprehensive BuildSettings types and TS fixes Expand the BuildSettings interface with a large, organized set of Xcode build setting keys (SDK, Architectures, Deployment, Versioning, Product, Info.plist keys, Code Signing, Swift, Clang, GCC, Linking, warnings, and more), adding precise types, enums and documentation comments for each section. Also remove a couple of transient @ts-expect-error comments in XCBuildConfiguration when resolving settings so the code relies on the improved typings. These changes increase TypeScript coverage for Xcode settings and clean up previously suppressed type errors; review callers for potential typing adjustments if they depended on looser types. --- src/api/XCBuildConfiguration.ts | 2 - src/json/types.ts | 2235 +++++++++++++++++++++++++++---- 2 files changed, 2009 insertions(+), 228 deletions(-) diff --git a/src/api/XCBuildConfiguration.ts b/src/api/XCBuildConfiguration.ts index 34ea3b4..21403d4 100644 --- a/src/api/XCBuildConfiguration.ts +++ b/src/api/XCBuildConfiguration.ts @@ -149,13 +149,11 @@ export class XCBuildConfiguration extends AbstractObject extends AbstractPhysicalFileObject { /** The list of exceptions applying to this group. */ exceptions?: TException[]; - /** Maps relative paths inside the synchronized root group to a particular file type. If a path doesn't have a particular file type specified, Xcode defaults to the default file type based on the extension of the file. */ - explicitFileTypes?: Record; + /** Maps relative paths inside the synchronized root group to a particular file type. If a path doesn’t have a particular file type specified, Xcode defaults to the default file type based on the extension of the file. */ + explicitFileTypes: Record; /** List of relative paths to children folder whose configuration is overwritten. */ - explicitFolders?: string[]; + explicitFolders: string[]; } /** Object for referencing files that should be excluded from synchronization with the file system. */ @@ -900,19 +900,8 @@ export interface PBXProject< knownRegions: ("en" | "Base" | (string & {}))[]; /** Object is a UUID for a `PBXGroup`. */ mainGroup: TMainGroup; - /** - * Minimize reference proxies in the project. - * @example `1` - */ - minimizedProjectReferenceProxies?: BoolNumber; /** Object is a UUID for a `PBXGroup`. */ productRefGroup?: TProductRefGroup; - /** - * Preferred object version for the project. - * Used in modern Xcode projects (objectVersion 77+). - * @example `77` - */ - preferredProjectObjectVersion?: number; /** Relative path for the project. */ projectDirPath: string; /** Relative root path for the project. */ @@ -955,234 +944,472 @@ export interface XCBuildConfiguration name: XCBuildConfigurationName; } +/** + * Xcode build settings that control how a target is built. + * @see https://developer.apple.com/documentation/xcode/build-settings-reference + */ export interface BuildSettings { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION?: BoolString; - CLANG_WARN_DOCUMENTATION_COMMENTS?: BoolString; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER?: BoolString; - CLANG_WARN_UNGUARDED_AVAILABILITY?: BoolString; - CODE_SIGN_STYLE?: "Automatic" | (string & {}); - SWIFT_ACTIVE_COMPILATION_CONDITIONS?: - | "DEBUG" - | "DEBUG $(inherited)" - | (string & {}); + // ============================================================================ + // Build Action & Configuration + // ============================================================================ + + /** A string identifying the build system action being performed. */ + ACTION?: string; + + /** A list of components being built during this action. */ + BUILD_COMPONENTS?: string[]; + + /** Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product. */ + CONFIGURATION?: string; + + // ============================================================================ + // SDK & Platform + // ============================================================================ + + /** The name or path of the base SDK being used during the build. */ + SDKROOT?: string; + + /** The locations of any sparse SDKs that should be layered on top of the one specified by `SDKROOT`. */ + ADDITIONAL_SDKS?: string[]; + + /** The list of supported platforms from which a base SDK can be used. */ + SUPPORTED_PLATFORMS?: string; + + /** Support building this target for Mac Catalyst. */ + SUPPORTS_MACCATALYST?: BoolString; + + /** Show the Mac (Designed for iPhone) and Mac (Designed for iPad) destinations. */ + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD?: BoolString; + + /** Show the Apple Vision (Designed for iPhone) and Apple Vision (Designed for iPad) destinations. */ + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD?: BoolString; + + /** Indicates whether the target is building for Mac Catalyst. */ + IS_MACCATALYST?: BoolString; + + // ============================================================================ + // Architectures + // ============================================================================ + + /** A list of the architectures for which the product will be built. */ + ARCHS?: string | string[]; + + /** A list of architectures for which the target should not be built. */ + EXCLUDED_ARCHS?: string | string[]; + + /** If enabled, only the active architecture is built. */ + ONLY_ACTIVE_ARCH?: BoolString; + + /** The name of the active architecture being processed. */ + CURRENT_ARCH?: string; + + /** Identifies the architecture on which the build is being performed. */ + NATIVE_ARCH?: string; + + /** If enabled, allows targets to build multiple times within a single build operation. */ + ALLOW_TARGET_PLATFORM_SPECIALIZATION?: BoolString; + + // ============================================================================ + // Deployment Targets + // ============================================================================ + + IPHONEOS_DEPLOYMENT_TARGET?: string; + MACOSX_DEPLOYMENT_TARGET?: string; + TVOS_DEPLOYMENT_TARGET?: string; + WATCHOS_DEPLOYMENT_TARGET?: string; + /** visionOS deployment target version. @example `"2.0"` */ + XROS_DEPLOYMENT_TARGET?: string; + + /** The name of the build setting for the deployment target for the effective platform. */ + DEPLOYMENT_TARGET_SETTING_NAME?: string; + + // ============================================================================ + // Versioning + // ============================================================================ + + /** This setting defines the current version of the project. The value must be an integer or floating point number. */ + CURRENT_PROJECT_VERSION?: string | number; + + /** This setting defines the user-visible version of the project. */ + MARKETING_VERSION?: number | string; + + /** Compatibility version of the resulting library, bundle, or framework binary. */ + DYLIB_COMPATIBILITY_VERSION?: string; + + /** Current version of any framework built by the project. */ + DYLIB_CURRENT_VERSION?: string; + + /** Selects the process used for version-stamping generated files. */ + VERSIONING_SYSTEM?: "apple-generic" | "apple-generic-hidden" | (string & {}); + + /** Reference to the user performing a build to be included in the generated Apple Generic Versioning stub. */ + VERSION_INFO_BUILDER?: string; + + /** Prefix string for the version info symbol declaration. */ + VERSION_INFO_EXPORT_DECL?: string; + + /** Name for the source file that will be generated by Apple Generic Versioning. */ + VERSION_INFO_FILE?: string; + + /** Prefix for the name of the version info symbol. */ + VERSION_INFO_PREFIX?: string; + + /** Suffix for the name of the version info symbol. */ + VERSION_INFO_SUFFIX?: string; + + // ============================================================================ + // Product Settings + // ============================================================================ + + /** A string that uniquely identifies the bundle. */ + PRODUCT_BUNDLE_IDENTIFIER?: string; + + /** The basename of the product generated by the target. */ + PRODUCT_NAME?: string; + + /** The name to use for the source code module constructed for this target. */ + PRODUCT_MODULE_NAME?: string; + + /** Build product type ID. */ + PRODUCT_TYPE?: string; + + /** Path to a file specifying additional requirements for a product archive. */ + PRODUCT_DEFINITION_PLIST?: string; + + /** Targeted Device Families - comma-separated list of integers corresponding to device families. */ + TARGETED_DEVICE_FAMILY?: string; + + /** Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device. */ + RESOURCES_TARGETED_DEVICE_FAMILY?: string; + + // ============================================================================ + // Info.plist + // ============================================================================ + + /** The project-relative path to the property list file that contains the `Info.plist` information. */ + INFOPLIST_FILE?: string; + + /** Automatically generate an Info.plist file. */ GENERATE_INFOPLIST_FILE?: BoolString; + + /** If enabled, don't automatically generate an Info.plist file for wrapped products when `INFOPLIST_FILE` is empty. */ + DONT_GENERATE_INFOPLIST_FILE?: BoolString; + + /** Expand build settings in the `Info.plist` file. */ + INFOPLIST_EXPAND_BUILD_SETTINGS?: BoolString; + + /** Preprocess the `Info.plist` file using the C Preprocessor. */ + INFOPLIST_PREPROCESS?: BoolString; + + /** Implicitly include the given file when preprocessing the `Info.plist` file. */ + INFOPLIST_PREFIX_HEADER?: string; + + /** Space-separated list of preprocessor macros for preprocessing the `Info.plist` file. */ + INFOPLIST_PREPROCESSOR_DEFINITIONS?: string; + + /** Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file. */ + INFOPLIST_OTHER_PREPROCESSOR_FLAGS?: string; + + /** Specifies the output encoding for the output `Info.plist`. */ + INFOPLIST_OUTPUT_FORMAT?: "binary" | "XML" | (string & {}); + + /** Specifies the path to the bundle's information property list file. */ + INFOPLIST_PATH?: string; + + /** Creates a section called `__info_plist` in the `__TEXT` segment of the linked binary. */ + CREATE_INFOPLIST_SECTION_IN_BINARY?: BoolString; + + // ============================================================================ + // Info.plist Keys (GENERATE_INFOPLIST_FILE) + // ============================================================================ + + /** Bundle Display Name */ INFOPLIST_KEY_CFBundleDisplayName?: string; - INFOPLIST_KEY_NSHumanReadableCopyright?: ""; + + /** Complication Principal Class */ + INFOPLIST_KEY_CLKComplicationPrincipalClass?: string; + + /** Supports Game Controller User Interaction */ + INFOPLIST_KEY_GCSupportsControllerUserInteraction?: BoolString; + + /** Supports Game Mode */ + INFOPLIST_KEY_GCSupportsGameMode?: BoolString; + + /** App Uses Non-Exempt Encryption */ + INFOPLIST_KEY_ITSAppUsesNonExemptEncryption?: BoolString; + + /** App Encryption Export Compliance Code */ + INFOPLIST_KEY_ITSEncryptionExportComplianceCode?: string; + + /** Application Category */ + INFOPLIST_KEY_LSApplicationCategoryType?: string; + + /** Application is Background Only */ + INFOPLIST_KEY_LSBackgroundOnly?: BoolString; + + /** Supports Opening Documents in Place */ + INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace?: BoolString; + + /** Application is Agent (UIElement) */ + INFOPLIST_KEY_LSUIElement?: BoolString; + + /** Metal Capture Enabled */ + INFOPLIST_KEY_MetalCaptureEnabled?: BoolString; + + /** Privacy - NFC Scan Usage Description */ + INFOPLIST_KEY_NFCReaderUsageDescription?: string; + + /** Privacy - Accessory Tracking Usage Description */ + INFOPLIST_KEY_NSAccessoryTrackingUsageDescription?: string; + + /** Privacy - Other Application Data Usage Description */ + INFOPLIST_KEY_NSAppDataUsageDescription?: string; + + /** Privacy - AppleEvents Sending Usage Description */ + INFOPLIST_KEY_NSAppleEventsUsageDescription?: string; + + /** Privacy - Media Library Usage Description */ + INFOPLIST_KEY_NSAppleMusicUsageDescription?: string; + + /** Privacy - Bluetooth Always Usage Description */ + INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription?: string; + + /** Privacy - Bluetooth Peripheral Usage Description */ + INFOPLIST_KEY_NSBluetoothPeripheralUsageDescription?: string; + + /** Privacy - Bluetooth While In Use Usage Description */ + INFOPLIST_KEY_NSBluetoothWhileInUseUsageDescription?: string; + + /** Privacy - Calendars Full Access Usage Description */ + INFOPLIST_KEY_NSCalendarsFullAccessUsageDescription?: string; + + /** Privacy - Calendars Usage Description */ + INFOPLIST_KEY_NSCalendarsUsageDescription?: string; + + /** Privacy - Calendars Write Only Usage Description */ + INFOPLIST_KEY_NSCalendarsWriteOnlyAccessUsageDescription?: string; + + /** Privacy - Camera Usage Description */ + INFOPLIST_KEY_NSCameraUsageDescription?: string; + + /** Privacy - Contacts Usage Description */ + INFOPLIST_KEY_NSContactsUsageDescription?: string; + + /** Privacy - Critical Messaging Usage Description */ + INFOPLIST_KEY_NSCriticalMessagingUsageDescription?: string; + + /** Privacy - Desktop Folder Usage Description */ + INFOPLIST_KEY_NSDesktopFolderUsageDescription?: string; + + /** Privacy - Documents Folder Usage Description */ + INFOPLIST_KEY_NSDocumentsFolderUsageDescription?: string; + + /** Privacy - Downloads Folder Usage Description */ + INFOPLIST_KEY_NSDownloadsFolderUsageDescription?: string; + + /** Privacy - Face ID Usage Description */ + INFOPLIST_KEY_NSFaceIDUsageDescription?: string; + + /** Privacy - Fall Detection Usage Description */ + INFOPLIST_KEY_NSFallDetectionUsageDescription?: string; + + /** Privacy - Access to a File Provide Domain Usage Description */ + INFOPLIST_KEY_NSFileProviderDomainUsageDescription?: string; + + /** Privacy - File Provider Presence Usage Description */ + INFOPLIST_KEY_NSFileProviderPresenceUsageDescription?: string; + + /** Privacy - Financial Data Usage Description */ + INFOPLIST_KEY_NSFinancialDataUsageDescription?: string; + + /** Privacy - Focus Status Usage Description */ + INFOPLIST_KEY_NSFocusStatusUsageDescription?: string; + + /** Privacy - GameKit Friend List Usage Description */ + INFOPLIST_KEY_NSGKFriendListUsageDescription?: string; + + /** Privacy - Hands Tracking Usage Description */ + INFOPLIST_KEY_NSHandsTrackingUsageDescription?: string; + + /** Privacy - Health Records Usage Description */ + INFOPLIST_KEY_NSHealthClinicalHealthRecordsShareUsageDescription?: string; + + /** Privacy - Health Share Usage Description */ + INFOPLIST_KEY_NSHealthShareUsageDescription?: string; + + /** Privacy - Health Update Usage Description */ + INFOPLIST_KEY_NSHealthUpdateUsageDescription?: string; + + /** Privacy - HomeKit Usage Description */ + INFOPLIST_KEY_NSHomeKitUsageDescription?: string; + + /** Copyright (Human-Readable) */ + INFOPLIST_KEY_NSHumanReadableCopyright?: string; + + /** Privacy - Identity Usage Description */ + INFOPLIST_KEY_NSIdentityUsageDescription?: string; + + /** Privacy - Local Network Usage Description */ + INFOPLIST_KEY_NSLocalNetworkUsageDescription?: string; + + /** Privacy - Location Always and When In Use Usage Description */ + INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription?: string; + + /** Privacy - Location Always Usage Description */ + INFOPLIST_KEY_NSLocationAlwaysUsageDescription?: string; + + /** Privacy - Location Temporary Usage Description Dictionary */ + INFOPLIST_KEY_NSLocationTemporaryUsageDescriptionDictionary?: string; + + /** Privacy - Location Usage Description */ + INFOPLIST_KEY_NSLocationUsageDescription?: string; + + /** Privacy - Location When In Use Usage Description */ + INFOPLIST_KEY_NSLocationWhenInUseUsageDescription?: string; + + /** Privacy - Main Camera Usage Description */ + INFOPLIST_KEY_NSMainCameraUsageDescription?: string; + + /** Main Nib File Base Name */ + INFOPLIST_KEY_NSMainNibFile?: string; + + /** AppKit Main Storyboard File Base Name */ + INFOPLIST_KEY_NSMainStoryboardFile?: string; + + /** Privacy - Microphone Usage Description */ + INFOPLIST_KEY_NSMicrophoneUsageDescription?: string; + + /** Privacy - Motion Usage Description */ + INFOPLIST_KEY_NSMotionUsageDescription?: string; + + /** Privacy - Nearby Interaction Allow Once Usage Description */ + INFOPLIST_KEY_NSNearbyInteractionAllowOnceUsageDescription?: string; + + /** Privacy - Nearby Interaction Usage Description */ + INFOPLIST_KEY_NSNearbyInteractionUsageDescription?: string; + + /** Privacy - Network Volumes Usage Description */ + INFOPLIST_KEY_NSNetworkVolumesUsageDescription?: string; + + /** Privacy - Photo Library Additions Usage Description */ + INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription?: string; + + /** Privacy - Photo Library Usage Description */ + INFOPLIST_KEY_NSPhotoLibraryUsageDescription?: string; + + /** Principal Class */ + INFOPLIST_KEY_NSPrincipalClass?: string; + + /** Privacy - Reminders Full Access Usage Description */ + INFOPLIST_KEY_NSRemindersFullAccessUsageDescription?: string; + + /** Privacy - Reminders Usage Description */ + INFOPLIST_KEY_NSRemindersUsageDescription?: string; + + /** Privacy - Removable Volumes Usage Description */ + INFOPLIST_KEY_NSRemovableVolumesUsageDescription?: string; + + /** Privacy - SensorKit Privacy Policy URL */ + INFOPLIST_KEY_NSSensorKitPrivacyPolicyURL?: string; + + /** Privacy - SensorKit Usage Description */ + INFOPLIST_KEY_NSSensorKitUsageDescription?: string; + + /** Privacy - Siri Usage Description */ + INFOPLIST_KEY_NSSiriUsageDescription?: string; + + /** Privacy - Speech Recognition Usage Description */ + INFOPLIST_KEY_NSSpeechRecognitionUsageDescription?: string; + + /** Sticker Sharing Level */ + INFOPLIST_KEY_NSStickerSharingLevel?: string; + + /** Supports Live Activities */ + INFOPLIST_KEY_NSSupportsLiveActivities?: BoolString; + + /** Supports Frequent Updates of Live Activities */ + INFOPLIST_KEY_NSSupportsLiveActivitiesFrequentUpdates?: BoolString; + + /** Privacy - System Administration Usage Description */ + INFOPLIST_KEY_NSSystemAdministrationUsageDescription?: string; + + /** Privacy - System Extension Usage Description */ + INFOPLIST_KEY_NSSystemExtensionUsageDescription?: string; + + /** Privacy - Tracking Usage Description */ + INFOPLIST_KEY_NSUserTrackingUsageDescription?: string; + + /** Privacy - TV Provider Usage Description */ + INFOPLIST_KEY_NSVideoSubscriberAccountUsageDescription?: string; + + /** Privacy - VoIP Usage Description */ + INFOPLIST_KEY_NSVoIPUsageDescription?: string; + + /** Privacy - World Sensing Usage Description */ + INFOPLIST_KEY_NSWorldSensingUsageDescription?: string; + + /** Privacy - Driver Extension Usage Description */ + INFOPLIST_KEY_OSBundleUsageDescription?: string; + + /** Application Scene Manifest (Generation) */ INFOPLIST_KEY_UIApplicationSceneManifest_Generation?: BoolString; + + /** Supports Indirect Events */ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents?: BoolString; + + /** Launch Screen (Generation) */ INFOPLIST_KEY_UILaunchScreen_Generation?: BoolString; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad?: string; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone?: string; - INFOPLIST_KEY_UISupportedInterfaceOrientations?: string; - /** bundle identifier of the main application target. */ - INFOPLIST_KEY_WKCompanionAppBundleIdentifier?: string; - // INFOPLIST_KEY_MetalCaptureEnabled - // INFOPLIST_KEY_WKWatchOnly - // INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp - // INFOPLIST_KEY_WKExtensionDelegateClassName - // INFOPLIST_KEY_WKCompanionAppBundleIdentifier - // INFOPLIST_KEY_CLKComplicationPrincipalClass - // INFOPLIST_KEY_UISupportsDocumentBrowser - // INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone - // INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad - // INFOPLIST_KEY_UIStatusBarStyle - // INFOPLIST_KEY_UIStatusBarHidden - // INFOPLIST_KEY_UIRequiresFullScreen - // INFOPLIST_KEY_UIApplicationSceneManifest_Generation - // INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents - // INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace - // INFOPLIST_KEY_UIUserInterfaceStyle - // INFOPLIST_KEY_UISupportedInterfaceOrientations - // INFOPLIST_KEY_UIRequiredDeviceCapabilities - // INFOPLIST_KEY_UIMainStoryboardFile - // INFOPLIST_KEY_UILaunchStoryboardName - // INFOPLIST_KEY_UILaunchScreen_Generation - // INFOPLIST_KEY_NSMainStoryboardFile - // INFOPLIST_KEY_NSMainNibFile - // INFOPLIST_KEY_LSUIElement - // INFOPLIST_KEY_LSBackgroundOnly - // INFOPLIST_KEY_OSBundleUsageDescription - // INFOPLIST_KEY_NSVoIPUsageDescription - // INFOPLIST_KEY_NSVideoSubscriberAccountUsageDescription - // INFOPLIST_KEY_NSUserTrackingUsageDescription - // INFOPLIST_KEY_NSSystemExtensionUsageDescription - // INFOPLIST_KEY_NSSystemAdministrationUsageDescription - // INFOPLIST_KEY_NSSpeechRecognitionUsageDescription - // INFOPLIST_KEY_NSSiriUsageDescription - // INFOPLIST_KEY_NSSensorKitUsageDescription - // INFOPLIST_KEY_NSSensorKitPrivacyPolicyURL - // INFOPLIST_KEY_NSRemovableVolumesUsageDescription - // INFOPLIST_KEY_NSRemindersUsageDescription - // INFOPLIST_KEY_NSPhotoLibraryUsageDescription - // INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription - // INFOPLIST_KEY_NSNetworkVolumesUsageDescription - // INFOPLIST_KEY_NSNearbyInteractionUsageDescription - // INFOPLIST_KEY_NSNearbyInteractionAllowOnceUsageDescription - // INFOPLIST_KEY_NSMotionUsageDescription - // INFOPLIST_KEY_NSMicrophoneUsageDescription - // INFOPLIST_KEY_NSLocationWhenInUseUsageDescription - // INFOPLIST_KEY_NSLocationUsageDescription - // INFOPLIST_KEY_NSLocationTemporaryUsageDescription - // INFOPLIST_KEY_NSLocationAlwaysUsageDescription - // INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription - // INFOPLIST_KEY_NSLocalNetworkUsageDescription - // INFOPLIST_KEY_NSHomeKitUsageDescription - // INFOPLIST_KEY_NSHealthUpdateUsageDescription - // INFOPLIST_KEY_NSHealthShareUsageDescription - // INFOPLIST_KEY_NSHealthClinicalHealthRecordsShareUsageDescription - // INFOPLIST_KEY_NSGKFriendListUsageDescription - // INFOPLIST_KEY_NSFocusStatusUsageDescription - // INFOPLIST_KEY_NSFileProviderPresenceUsageDescription - // INFOPLIST_KEY_NSFileProviderDomainUsageDescription - // INFOPLIST_KEY_NSFallDetectionUsageDescription - // INFOPLIST_KEY_NSFaceIDUsageDescription - // INFOPLIST_KEY_NSDownloadsFolderUsageDescription - // INFOPLIST_KEY_NSDocumentsFolderUsageDescription - // INFOPLIST_KEY_NSDesktopFolderUsageDescription - // INFOPLIST_KEY_NSContactsUsageDescription - // INFOPLIST_KEY_NSCameraUsageDescription - // INFOPLIST_KEY_NSCalendarsUsageDescription - // INFOPLIST_KEY_NSBluetoothWhileInUseUsageDescription - // INFOPLIST_KEY_NSBluetoothPeripheralUsageDescription - // INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription - // INFOPLIST_KEY_NSAppleMusicUsageDescription - // INFOPLIST_KEY_NSAppleEventsUsageDescription - // INFOPLIST_KEY_NFCReaderUsageDescription - // INFOPLIST_KEY_NSPrincipalClass - // INFOPLIST_KEY_NSHumanReadableCopyright - // INFOPLIST_KEY_LSApplicationCategoryType + /** Launch Screen Interface File Base Name */ + INFOPLIST_KEY_UILaunchStoryboardName?: string; - WATCHOS_DEPLOYMENT_TARGET?: string; - /** visionOS deployment target version. @example `"26.2"` */ - XROS_DEPLOYMENT_TARGET?: string; - MARKETING_VERSION?: number | string; - SKIP_INSTALL?: BoolString; - SWIFT_EMIT_LOC_STRINGS?: BoolString; - TARGETED_DEVICE_FAMILY?: string; - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES?: BoolString; - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME?: string; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME?: string; - BUNDLE_LOADER?: string; - IPHONEOS_DEPLOYMENT_TARGET?: string; - MACOSX_DEPLOYMENT_TARGET?: string; - TVOS_DEPLOYMENT_TARGET?: string; - PRODUCT_BUNDLE_IDENTIFIER: string; - PRODUCT_NAME?: string; - TEST_HOST?: string; - COPY_PHASE_STRIP?: BoolString; - DEVELOPMENT_TEAM?: string; - ASSETCATALOG_COMPILER_APPICON_NAME?: string; - CURRENT_PROJECT_VERSION?: string | number; - ENABLE_BITCODE?: string; - /** Path to the Info.plist file on disk, relative to root. */ - INFOPLIST_FILE: string; - LD_RUNPATH_SEARCH_PATHS?: string | string[]; - OTHER_LDFLAGS?: string[]; - SWIFT_COMPILATION_MODE?: "wholemodule" | (string & {}); - SWIFT_OPTIMIZATION_LEVEL?: "-O" | "-Onone" | "-Owholemodule" | (string & {}); - SWIFT_VERSION?: "4.2" | "5" | "5.0" | (string & {}); - /** Enables Swift's approachable concurrency mode. */ - SWIFT_APPROACHABLE_CONCURRENCY?: BoolString; - /** Default actor isolation for Swift code. @example `"MainActor"` */ - SWIFT_DEFAULT_ACTOR_ISOLATION?: "MainActor" | (string & {}); - /** Enable Swift upcoming feature for member import visibility. */ - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY?: BoolString; + /** UIKit Main Storyboard File Base Name */ + INFOPLIST_KEY_UIMainStoryboardFile?: string; - ENABLE_USER_SCRIPT_SANDBOXING?: BoolString; - ALWAYS_SEARCH_USER_PATHS?: BoolString; - CLANG_ANALYZER_NONNULL?: BoolString; + /** Required Device Capabilities */ + INFOPLIST_KEY_UIRequiredDeviceCapabilities?: string; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED?: string; + /** Requires Full Screen */ + INFOPLIST_KEY_UIRequiresFullScreen?: BoolString; - CLANG_CXX_LANGUAGE_STANDARD?: - | "gnu++0x" - | "gnu++14" - | "gnu++20" - | (string & {}); - CLANG_CXX_LIBRARY?: "libc++" | (string & {}); - VERSIONING_SYSTEM?: "apple-generic" | (string & {}); + /** Status Bar Initially Hidden */ + INFOPLIST_KEY_UIStatusBarHidden?: BoolString; - DEVELOPMENT_ASSET_PATHS?: string; - ENABLE_PREVIEWS?: BoolString; - CLANG_ENABLE_MODULES?: BoolString; - CLANG_ENABLE_OBJC_ARC?: BoolString; - CLANG_ENABLE_OBJC_WEAK?: BoolString; - CODE_SIGN_ENTITLEMENTS?: string; - INSTALL_PATH?: string; + /** Status Bar Style */ + INFOPLIST_KEY_UIStatusBarStyle?: string; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING?: BoolString; - CLANG_WARN_BOOL_CONVERSION?: BoolString; - CLANG_WARN_COMMA?: string; - CLANG_WARN_CONSTANT_CONVERSION?: string; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS?: string; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE?: string; - CLANG_WARN_EMPTY_BODY?: string; - CLANG_WARN_ENUM_CONVERSION?: string; - CLANG_WARN_INFINITE_RECURSION?: string; - CLANG_WARN_INT_CONVERSION?: string; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION?: string; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF?: string; - CLANG_WARN_OBJC_LITERAL_CONVERSION?: string; - CLANG_WARN_OBJC_ROOT_CLASS?: string; - CLANG_WARN_RANGE_LOOP_ANALYSIS?: string; - CLANG_WARN_STRICT_PROTOTYPES?: string; - CLANG_WARN_SUSPICIOUS_MOVE?: string; - CLANG_WARN_UNREACHABLE_CODE?: string; - CLANG_WARN__DUPLICATE_METHOD_MATCH?: string; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]"?: "iPhone Developer" | (string & {}); - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]"?: BoolString; - ENABLE_STRICT_OBJC_MSGSEND?: string; - ENABLE_TESTABILITY?: string; - GCC_C_LANGUAGE_STANDARD?: "gnu11" | "gnu17" | (string & {}); - GCC_DYNAMIC_NO_PIC?: BoolString; - GCC_NO_COMMON_BLOCKS?: BoolString; - GCC_OPTIMIZATION_LEVEL?: string; - GCC_PREPROCESSOR_DEFINITIONS?: string[]; - GCC_SYMBOLS_PRIVATE_EXTERN?: string; - GCC_WARN_64_TO_32_BIT_CONVERSION?: BoolString; - GCC_WARN_ABOUT_RETURN_TYPE?: BoolString; - GCC_WARN_UNDECLARED_SELECTOR?: BoolString; - GCC_WARN_UNINITIALIZED_AUTOS?: BoolString; - GCC_WARN_UNUSED_FUNCTION?: BoolString; - GCC_WARN_UNUSED_VARIABLE?: BoolString; - LIBRARY_SEARCH_PATHS?: string[]; - PREBINDING?: BoolString; - MTL_ENABLE_DEBUG_INFO?: BoolString | "INCLUDE_SOURCE"; - MTL_FAST_MATH?: BoolString; - ONLY_ACTIVE_ARCH?: BoolString; - SDKROOT?: string; - ENABLE_NS_ASSERTIONS?: BoolString; - VALIDATE_PRODUCT?: string; - DEBUG_INFORMATION_FORMAT?: "dwarf" | "dwarf-with-dsym" | (string & {}); + /** Supported Interface Orientations */ + INFOPLIST_KEY_UISupportedInterfaceOrientations?: string; - /** `"iphoneos iphonesimulator macosx xros xrsimulator"` */ - SUPPORTED_PLATFORMS?: string; + /** Supported Interface Orientations (iPad) */ + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad?: string; - SUPPORTS_MACCATALYST?: BoolString; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD?: BoolString; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD?: BoolString; - ENABLE_HARDENED_RUNTIME?: BoolString; - LOCALIZATION_PREFERS_STRING_CATALOGS?: BoolString; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS?: BoolString; - DEAD_CODE_STRIPPING?: BoolString; + /** Supported Interface Orientations (iPhone) */ + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone?: string; - // Modern SwiftUI multiplatform app settings - /** Enable App Sandbox for macOS apps. */ - ENABLE_APP_SANDBOX?: BoolString; - /** - * Register app groups capability. Required for extensions to access - * app group containers. Should be `YES` for any target using App Groups. - * Without this, extensions may silently fail to access shared containers. - * @see https://developer.apple.com/documentation/Xcode/configuring-app-groups - */ - REGISTER_APP_GROUPS?: BoolString; - /** Enable user-selected files access. @example `"readonly"` */ - ENABLE_USER_SELECTED_FILES?: "readonly" | "readwrite" | (string & {}); - /** Generate Swift symbols for string catalogs. */ - STRING_CATALOG_GENERATE_SYMBOLS?: BoolString; + /** Supports Document Browser */ + INFOPLIST_KEY_UISupportsDocumentBrowser?: BoolString; + + /** User Interface Style */ + INFOPLIST_KEY_UIUserInterfaceStyle?: string; + + /** WatchKit Companion App Bundle Identifier */ + INFOPLIST_KEY_WKCompanionAppBundleIdentifier?: string; + + /** WatchKit Extension Delegate Class Name */ + INFOPLIST_KEY_WKExtensionDelegateClassName?: string; + + /** App Can Run Independently of Companion iPhone App */ + INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp?: BoolString; - // SDK-specific build settings (platform-conditional) + /** Supports Launch for Live Activity Attribute Types */ + INFOPLIST_KEY_WKSupportsLiveActivityLaunchAttributeTypes?: string; + + /** App is Available Only on Apple Watch */ + INFOPLIST_KEY_WKWatchOnly?: BoolString; + + // Platform-specific Info.plist key overrides + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]"?: BoolString; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]"?: BoolString; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]"?: BoolString; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]"?: BoolString; @@ -1190,5 +1417,1561 @@ export interface BuildSettings { "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]"?: BoolString; "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]"?: string; "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]"?: string; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]"?: string | string[]; + + // ============================================================================ + // Code Signing + // ============================================================================ + + /** The path to a file specifying code-signing entitlements. */ + CODE_SIGN_ENTITLEMENTS?: string; + + /** The name of a valid code-signing certificate in a keychain. */ + CODE_SIGN_IDENTITY?: string; + + /** SDK-specific code signing identity override. */ + "CODE_SIGN_IDENTITY[sdk=iphoneos*]"?: "iPhone Developer" | (string & {}); + + /** Automatically inject entitlements from the platform's BaseEntitlements.plist. */ + CODE_SIGN_INJECT_BASE_ENTITLEMENTS?: BoolString; + + /** This setting specifies the method used to acquire and locate signing assets. */ + CODE_SIGN_STYLE?: "Automatic" | "Manual" | (string & {}); + + /** The team ID of a development team to use for signing certificates and provisioning profiles. */ + DEVELOPMENT_TEAM?: string; + + /** Must contain a profile name (or UUID). */ + PROVISIONING_PROFILE_SPECIFIER?: string; + + // ============================================================================ + // Swift Settings + // ============================================================================ + + /** A list of compilation conditions to enable for conditional compilation expressions. */ + SWIFT_ACTIVE_COMPILATION_CONDITIONS?: string; + + /** Enables upcoming features that aim to provide a more approachable path to Swift Concurrency. */ + SWIFT_APPROACHABLE_CONCURRENCY?: BoolString; + + /** This setting controls the way the Swift files in a module are rebuilt. */ + SWIFT_COMPILATION_MODE?: "singlefile" | "wholemodule" | (string & {}); + + /** Controls default actor isolation for unannotated code. */ + SWIFT_DEFAULT_ACTOR_ISOLATION?: "MainActor" | "nonisolated" | (string & {}); + + /** Disable runtime safety checks when optimizing. */ + SWIFT_DISABLE_SAFETY_CHECKS?: BoolString; + + /** A list of protocol names whose conformances the Swift compiler is to emit compile-time-known values for. */ + SWIFT_EMIT_CONST_VALUE_PROTOCOLS?: string[]; + + /** When enabled, the Swift compiler will be used to extract Swift string literal and interpolation types during localization export. */ + SWIFT_EMIT_LOC_STRINGS?: BoolString; + + /** Enables the use of the forward slash syntax for regular-expressions. */ + SWIFT_ENABLE_BARE_SLASH_REGEX?: BoolString; + + /** Emit the extracted compile-time known values from the Swift compiler. */ + SWIFT_ENABLE_EMIT_CONST_VALUES?: BoolString; + + /** Coordinates the build of the main module's modular dependencies via explicit tasks. */ + SWIFT_ENABLE_EXPLICIT_MODULES?: BoolString; + + /** Enforce exclusive access at run-time. */ + SWIFT_ENFORCE_EXCLUSIVE_ACCESS?: "on" | "off" | "full" | (string & {}); + + /** A list of paths to be searched by the Swift compiler for additional Swift modules. */ + SWIFT_INCLUDE_PATHS?: string | string[]; + + /** For frameworks, install the Swift module so it can be accessed from Swift code. */ + SWIFT_INSTALL_MODULE?: BoolString; + + /** For frameworks, install the C++/Objective-C generated header. */ + SWIFT_INSTALL_OBJC_HEADER?: BoolString; + + /** Automatically link frameworks and libraries that are referenced using `import`. */ + SWIFT_MODULES_AUTOLINK?: BoolString; + + /** Path to the header defining the Objective-C interfaces to be exposed in Swift. */ + SWIFT_OBJC_BRIDGING_HEADER?: string; + + /** Name to use for the header that is generated by the Swift compiler. */ + SWIFT_OBJC_INTERFACE_HEADER_NAME?: string; + + /** Determines whether Swift can interoperate with C++ in addition to Objective-C. */ + SWIFT_OBJC_INTEROP_MODE?: "objc" | "objcxx" | (string & {}); + + /** Optimization level for Swift compiler. */ + SWIFT_OPTIMIZATION_LEVEL?: "-Onone" | "-O" | "-Osize" | (string & {}); + + /** An identifier that allows grouping of modules with access to symbols with a package access modifier. */ + SWIFT_PACKAGE_NAME?: string; + + /** Generate a precompiled header for the Objective-C bridging header. */ + SWIFT_PRECOMPILE_BRIDGING_HEADER?: BoolString; + + /** This setting controls the level of reflection metadata the Swift compiler emits. */ + SWIFT_REFLECTION_METADATA_LEVEL?: "all" | "without-names" | "none" | (string & {}); + + /** When enabled, does not automatically link any frameworks which are referenced using `import`. */ + SWIFT_SKIP_AUTOLINKING_ALL_FRAMEWORKS?: BoolString; + + /** A list of framework names which should not be automatically linked. */ + SWIFT_SKIP_AUTOLINKING_FRAMEWORKS?: string[]; + + /** A list of library names which should not be automatically linked. */ + SWIFT_SKIP_AUTOLINKING_LIBRARIES?: string[]; + + /** Enables strict concurrency checking to produce warnings for possible data races. */ + SWIFT_STRICT_CONCURRENCY?: "minimal" | "targeted" | "complete" | (string & {}); + + /** Enable strict memory safety checking. */ + SWIFT_STRICT_MEMORY_SAFETY?: BoolString; + + /** Don't emit any warnings. */ + SWIFT_SUPPRESS_WARNINGS?: BoolString; + + /** A list of paths to be searched by the Swift compiler for additional system Swift modules. */ + SWIFT_SYSTEM_INCLUDE_PATHS?: string | string[]; + + /** Treat all warnings as errors. */ + SWIFT_TREAT_WARNINGS_AS_ERRORS?: BoolString; + + /** The language version used to compile the target's Swift code. */ + SWIFT_VERSION?: string; + + /** Specify diagnostic groups that should be treated as errors. */ + SWIFT_WARNINGS_AS_ERRORS_GROUPS?: string; + + /** Specify diagnostic groups that should remain warnings. */ + SWIFT_WARNINGS_AS_WARNINGS_GROUPS?: string; + + // Swift Upcoming Features + SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE?: BoolString; + SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN?: BoolString; + SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION?: BoolString; + SWIFT_UPCOMING_FEATURE_DYNAMIC_ACTOR_ISOLATION?: BoolString; + SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY?: BoolString; + SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES?: BoolString; + SWIFT_UPCOMING_FEATURE_GLOBAL_ACTOR_ISOLATED_TYPES_USABILITY?: BoolString; + SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY?: BoolString; + SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS?: BoolString; + SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS?: BoolString; + SWIFT_UPCOMING_FEATURE_INFER_ISOLATED_CONFORMANCES?: BoolString; + SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES?: BoolString; + SWIFT_UPCOMING_FEATURE_INTERNAL_IMPORTS_BY_DEFAULT?: BoolString; + SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES?: BoolString; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY?: BoolString; + SWIFT_UPCOMING_FEATURE_NONFROZEN_ENUM_EXHAUSTIVITY?: BoolString; + SWIFT_UPCOMING_FEATURE_NONISOLATED_NONSENDING_BY_DEFAULT?: BoolString; + SWIFT_UPCOMING_FEATURE_REGION_BASED_ISOLATION?: BoolString; + + // ============================================================================ + // Clang Settings + // ============================================================================ + + /** Choose a standard or non-standard C++ language dialect. */ + CLANG_CXX_LANGUAGE_STANDARD?: + | "c++98" + | "gnu++98" + | "c++11" + | "gnu++11" + | "c++14" + | "gnu++14" + | "c++17" + | "gnu++17" + | "c++20" + | "gnu++20" + | "c++23" + | "gnu++23" + | "gnu++0x" + | (string & {}); + + /** Enable hardening in the C++ standard library. */ + CLANG_CXX_STANDARD_LIBRARY_HARDENING?: "none" | "fast" | "extensive" | "debug" | (string & {}); + + /** Toggles the amount of debug information emitted when debug symbols are enabled. */ + CLANG_DEBUG_INFORMATION_LEVEL?: "default" | "line-tables-only" | (string & {}); + + /** Enables compiler rewriting of allocation calls in C++ to provide type information to the allocator. */ + CLANG_ENABLE_CPLUSPLUS_TYPED_ALLOCATOR_SUPPORT?: BoolString; + + /** Controls whether variables with static or thread storage duration should have their exit-time destructors run. */ + CLANG_ENABLE_CPP_STATIC_DESTRUCTORS?: BoolString; + + /** Enables compiler rewriting of allocation calls in C to provide type information to the allocator. */ + CLANG_ENABLE_C_TYPED_ALLOCATOR_SUPPORT?: BoolString; + + /** Enables the use of modules for system APIs. */ + CLANG_ENABLE_MODULES?: BoolString; + + /** When enabled, `clang` will use the shared debug info available in `clang` modules and precompiled headers. */ + CLANG_ENABLE_MODULE_DEBUGGING?: BoolString; + + /** Compiles reference-counted Objective-C code to use Automatic Reference Counting. */ + CLANG_ENABLE_OBJC_ARC?: BoolString; + + /** This setting causes clang to use exception-handler-safe code when synthesizing retains and releases. */ + CLANG_ENABLE_OBJC_ARC_EXCEPTIONS?: BoolString; + + /** Compiles Objective-C code to enable weak references for code compiled with manual retain release semantics. */ + CLANG_ENABLE_OBJC_WEAK?: BoolString; + + /** Automatically initializes stack variables to zero as a security protection. */ + CLANG_ENABLE_STACK_ZERO_INIT?: BoolString; + + /** When linking a target using Objective-C code, implicitly link in Foundation. */ + CLANG_LINK_OBJC_RUNTIME?: BoolString; + + /** Automatically link SDK frameworks that are referenced using `#import` or `#include`. */ + CLANG_MODULES_AUTOLINK?: BoolString; + + /** Disable warnings related to the recommended use of private module naming. */ + CLANG_MODULES_DISABLE_PRIVATE_WARNING?: BoolString; + + /** The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled. */ + CLANG_OPTIMIZATION_PROFILE_FILE?: string; + + /** The depth the static analyzer uses during the Build action. */ + CLANG_STATIC_ANALYZER_MODE?: "shallow" | "deep" | (string & {}); + + /** The depth the static analyzer uses during the Analyze action. */ + CLANG_STATIC_ANALYZER_MODE_ON_ANALYZE_ACTION?: "shallow" | "deep" | (string & {}); + + /** Specify whether stack variables should be uninitialized or pattern-initialized. */ + CLANG_TRIVIAL_AUTO_VAR_INIT?: "uninitialized" | "pattern" | (string & {}); + + /** Check for unsigned integer overflow in addition to checks for signed integer overflow. */ + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER?: BoolString; + + /** Check for violations of nullability annotations. */ + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY?: BoolString; + + /** When enabled, `clang` will use the optimization profile collected for a target. */ + CLANG_USE_OPTIMIZATION_PROFILE?: BoolString; + + /** When enabled, the build system will use response files to share common arguments. */ + CLANG_USE_RESPONSE_FILE?: BoolString; + + /** Enables the use of extended vector instructions. */ + CLANG_X86_VECTOR_INSTRUCTIONS?: "default" | "sse3" | "ssse3" | "sse4.1" | "sse4.2" | "avx" | "avx2" | "avx512" | (string & {}); + + /** Check for C++ container overflow when Address Sanitizer is enabled. */ + CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW?: BoolString; + + /** Enabling this setting allows non-modular includes to be used from within framework modules. */ + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES?: BoolString; + + // ============================================================================ + // Clang Static Analyzer + // ============================================================================ + + /** Check for values stored to variables and never read again. */ + CLANG_ANALYZER_DEADCODE_DEADSTORES?: BoolString; + + /** Check for division by zero. */ + CLANG_ANALYZER_DIVIDE_BY_ZERO?: BoolString; + + /** Check for misuses of the Grand Central Dispatch API. */ + CLANG_ANALYZER_GCD?: BoolString; + + /** Check for Grand Central Dispatch idioms that may lead to poor performance. */ + CLANG_ANALYZER_GCD_PERFORMANCE?: BoolString; + + /** Finds leaks and over-releases associated with objects inheriting from OSObject. */ + CLANG_ANALYZER_LIBKERN_RETAIN_COUNT?: BoolString; + + /** Warn when a call to an `NSLocalizedString()` macro is missing a context comment. */ + CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT?: BoolString; + + /** Warn when a nonlocalized string is passed to a user interface method expecting a localized string. */ + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED?: BoolString; + + /** Warn about memory leaks, use-after-free, and other API misuses. */ + CLANG_ANALYZER_MEMORY_MANAGEMENT?: BoolString; + + /** Warn when a MIG routine violates memory management conventions. */ + CLANG_ANALYZER_MIG_CONVENTIONS?: BoolString; + + /** Check for misuses of `nonnull` parameter and return types. */ + CLANG_ANALYZER_NONNULL?: BoolString; + + /** Check for dereferences of null pointers. */ + CLANG_ANALYZER_NULL_DEREFERENCE?: BoolString; + + /** Warn when a number object is compared or converted to a primitive value. */ + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION?: BoolString; + + /** Warn on `nil` pointers used as mutexes for `@synchronized`. */ + CLANG_ANALYZER_OBJC_ATSYNC?: BoolString; + + /** Warn if `CF` collections are created with non-pointer-size values. */ + CLANG_ANALYZER_OBJC_COLLECTIONS?: BoolString; + + /** Warn when an instance is improperly cleaned up in `-dealloc`. */ + CLANG_ANALYZER_OBJC_DEALLOC?: BoolString; + + /** Warn if a specialized generic type is converted to an incompatible type. */ + CLANG_ANALYZER_OBJC_GENERICS?: BoolString; + + /** Warn about Objective-C method signatures with type incompatibilities. */ + CLANG_ANALYZER_OBJC_INCOMP_METHOD_TYPES?: BoolString; + + /** Warn if functions accepting `CFErrorRef` or `NSError` cannot indicate that an error occurred. */ + CLANG_ANALYZER_OBJC_NSCFERROR?: BoolString; + + /** Warn on leaks and improper reference count management. */ + CLANG_ANALYZER_OBJC_RETAIN_COUNT?: BoolString; + + /** Check that `super init` is properly called within an Objective-C initialization method. */ + CLANG_ANALYZER_OBJC_SELF_INIT?: BoolString; + + /** Warn about private ivars that are never used. */ + CLANG_ANALYZER_OBJC_UNUSED_IVARS?: BoolString; + + /** Warn when a C-style cast is used for downcasting a pointer to an OSObject. */ + CLANG_ANALYZER_OSOBJECT_C_STYLE_CAST?: BoolString; + + /** Check for potential buffer overflows. (EXPERIMENTAL) */ + CLANG_ANALYZER_SECURITY_BUFFER_OVERFLOW_EXPERIMENTAL?: BoolString; + + /** Warn on using a floating point value as a loop counter. */ + CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER?: BoolString; + + /** Warn on uses of `getpw` and `gets`. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS?: BoolString; + + /** Warn on uses of `mktemp`, which produces predictable temporary files. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP?: BoolString; + + /** Warn on uses of `rand`, `random`, and related functions. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND?: BoolString; + + /** Warn on uses of the `strcpy` and `strcat` functions. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY?: BoolString; + + /** Warn on uses of sensitive functions whose return values must be always checked. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN?: BoolString; + + /** Warn on uses of the `vfork` function. */ + CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK?: BoolString; + + /** Check for leaks of keychain attribute lists and data buffers. */ + CLANG_ANALYZER_SECURITY_KEYCHAIN_API?: BoolString; + + /** Warn when a C++ object is used after it has been moved from. */ + CLANG_ANALYZER_USE_AFTER_MOVE?: BoolString; + + // ============================================================================ + // Clang Tidy + // ============================================================================ + + /** Warn when condition of assert or NSAssert has a side effect. */ + CLANG_TIDY_BUGPRONE_ASSERT_SIDE_EFFECT?: BoolString; + + /** Warn when a loop is discovered to have no termination condition. */ + CLANG_TIDY_BUGPRONE_INFINITE_LOOP?: BoolString; + + /** Warn when use of std::move on a universal reference would cause non-expiring lvalue arguments to be moved. */ + CLANG_TIDY_BUGPRONE_MOVE_FORWARDING_REFERENCE?: BoolString; + + /** Warn when an if-statement is redundant because its condition is equivalent to an enclosing if-statement. */ + CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION?: BoolString; + + /** Warn when a sub-expression of an arithmetic or logic expression can be omitted. */ + CLANG_TIDY_MISC_REDUNDANT_EXPRESSION?: BoolString; + + // ============================================================================ + // Clang Warnings + // ============================================================================ + + /** Warn about assigning integer constants to enum values that are out of range. */ + CLANG_WARN_ASSIGN_ENUM?: BoolString; + + /** Warns when an atomic is used with an implicitly sequentially-consistent memory order. */ + CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST?: BoolString; + + /** Warn about block captures of implicitly autoreleasing parameters. */ + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING?: BoolString; + + /** Warn about implicit conversions to boolean values that are suspicious. */ + CLANG_WARN_BOOL_CONVERSION?: BoolString; + + /** Warn about suspicious uses of the comma operator. */ + CLANG_WARN_COMMA?: BoolString; + + /** Warn when a function-like parameter annotated as a completion handler is called more than once or not at all. */ + CLANG_WARN_COMPLETION_HANDLER_MISUSE?: BoolString; + + /** Warn about implicit conversions of constant values that cause the constant value to change. */ + CLANG_WARN_CONSTANT_CONVERSION?: BoolString; + + /** When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions. */ + CLANG_WARN_CXX0X_EXTENSIONS?: BoolString; + + /** Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor. */ + CLANG_WARN_DELETE_NON_VIRTUAL_DTOR?: BoolString; + + /** Warn if an Objective-C class either subclasses a deprecated class or overrides a deprecated method. */ + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS?: BoolString; + + /** Warn about direct accesses to the Objective-C `isa` pointer. */ + CLANG_WARN_DIRECT_OBJC_ISA_USAGE?: BoolString; + + /** Warns about issues in documentation comments. */ + CLANG_WARN_DOCUMENTATION_COMMENTS?: BoolString; + + /** Warn about loop bodies that are suspiciously empty. */ + CLANG_WARN_EMPTY_BODY?: BoolString; + + /** Warn about implicit conversions between different kinds of enum values. */ + CLANG_WARN_ENUM_CONVERSION?: BoolString; + + /** Warn about implicit conversions that turn floating-point numbers into integers. */ + CLANG_WARN_FLOAT_CONVERSION?: BoolString; + + /** Warns when a public framework header includes a private framework header. */ + CLANG_WARN_FRAMEWORK_INCLUDE_PRIVATE_FROM_PUBLIC?: BoolString; + + /** Warn about implicit fallthrough in switch statement. */ + CLANG_WARN_IMPLICIT_FALLTHROUGH?: BoolString; + + /** Warn about implicit integer conversions that change the signedness of an integer value. */ + CLANG_WARN_IMPLICIT_SIGN_CONVERSION?: BoolString; + + /** Warn if all paths through a function call itself. */ + CLANG_WARN_INFINITE_RECURSION?: BoolString; + + /** Warn about implicit conversions between pointers and integers. */ + CLANG_WARN_INT_CONVERSION?: BoolString; + + /** Warn about noescape annotations that are missing in a method's signature. */ + CLANG_WARN_MISSING_NOESCAPE?: BoolString; + + /** Warn about non-literal expressions that evaluate to zero being treated as a null pointer. */ + CLANG_WARN_NON_LITERAL_NULL_CONVERSION?: BoolString; + + /** Warns when a nullable expression is used somewhere it's not allowed. */ + CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION?: BoolString; + + /** Warn about implicit ownership types on Objective-C object references as out parameters. */ + CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE?: BoolString; + + /** Warn about `@property` declarations that are implicitly atomic. */ + CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES?: BoolString; + + /** Warn about implicit retains of `self` within blocks. */ + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF?: BoolString; + + /** Warn about instance variable declarations in `@interface`. */ + CLANG_WARN_OBJC_INTERFACE_IVARS?: BoolString; + + /** Warn about implicit conversions from Objective-C literals to values of incompatible type. */ + CLANG_WARN_OBJC_LITERAL_CONVERSION?: BoolString; + + /** Warn about properties that are not explicitly synthesized. */ + CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS?: BoolString; + + /** Warn about repeatedly using a weak reference without assigning the weak reference to a strong reference. */ + CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK?: BoolString; + + /** Warn about classes that unintentionally do not subclass a root class. */ + CLANG_WARN_OBJC_ROOT_CLASS?: BoolString; + + /** Warn when a translation unit is missing terminating '#pragma pack (pop)' directives. */ + CLANG_WARN_PRAGMA_PACK?: BoolString; + + /** Warn about private modules that do not use the recommended private module layout. */ + CLANG_WARN_PRIVATE_MODULE?: BoolString; + + /** Warns when a quoted include is used instead of a framework style include in a framework header. */ + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER?: BoolString; + + /** Warn about ranged-based for loops. */ + CLANG_WARN_RANGE_LOOP_ANALYSIS?: BoolString; + + /** Warn about ignored semicolon between a method implementation's signature and body. */ + CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY?: BoolString; + + /** Warn about non-prototype declarations. */ + CLANG_WARN_STRICT_PROTOTYPES?: BoolString; + + /** Warn about various implicit conversions that can lose information or are otherwise suspicious. */ + CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION?: BoolString; + + /** Warn about suspicious uses of `std::move`. */ + CLANG_WARN_SUSPICIOUS_MOVE?: BoolString; + + /** Warn if an API that is newer than the deployment target is used without guards. */ + CLANG_WARN_UNGUARDED_AVAILABILITY?: BoolString; + + /** Warns about potentially unreachable code. */ + CLANG_WARN_UNREACHABLE_CODE?: BoolString; + + /** Warn about a parsing ambiguity between a variable declaration and a function-style cast. */ + CLANG_WARN_VEXING_PARSE?: BoolString; + + /** Warn about using `__bridge` casts when not using ARC. */ + CLANG_WARN__ARC_BRIDGE_CAST_NONARC?: BoolString; + + /** Warn about declaring the same method more than once within the same `@interface`. */ + CLANG_WARN__DUPLICATE_METHOD_MATCH?: BoolString; + + /** Warn about destructors for C++ objects that are called when an application is terminating. */ + CLANG_WARN__EXIT_TIME_DESTRUCTORS?: BoolString; + + // ============================================================================ + // GCC Settings + // ============================================================================ + + /** Enabling this setting causes `char` to be unsigned by default. */ + GCC_CHAR_IS_UNSIGNED_CHAR?: BoolString; + + /** Enable the CodeWarrior/Microsoft syntax for inline assembly code. */ + GCC_CW_ASM_SYNTAX?: BoolString; + + /** Choose a standard or non-standard C language dialect. */ + GCC_C_LANGUAGE_STANDARD?: + | "ansi" + | "c89" + | "gnu89" + | "c99" + | "gnu99" + | "c11" + | "gnu11" + | "c17" + | "gnu17" + | "c23" + | "gnu23" + | (string & {}); + + /** Faster function calls for applications. Not appropriate for shared libraries. */ + GCC_DYNAMIC_NO_PIC?: BoolString; + + /** Controls whether `asm`, `inline`, and `typeof` are treated as keywords. */ + GCC_ENABLE_ASM_KEYWORD?: BoolString; + + /** Controls whether builtin functions that do not begin with `__builtin_` are recognized. */ + GCC_ENABLE_BUILTIN_FUNCTIONS?: BoolString; + + /** Enable C++ exception handling. */ + GCC_ENABLE_CPP_EXCEPTIONS?: BoolString; + + /** Enable generation of information for C++ runtime type identification. */ + GCC_ENABLE_CPP_RTTI?: BoolString; + + /** Enable exception handling. */ + GCC_ENABLE_EXCEPTIONS?: BoolString; + + /** Generate output containing library calls for floating point. */ + GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS?: BoolString; + + /** Activating this setting enables kernel development mode. */ + GCC_ENABLE_KERNEL_DEVELOPMENT?: BoolString; + + /** This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. */ + GCC_ENABLE_OBJC_EXCEPTIONS?: BoolString; + + /** Recognize and construct Pascal-style string literals. */ + GCC_ENABLE_PASCAL_STRINGS?: BoolString; + + /** Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions. */ + GCC_ENABLE_SSE3_EXTENSIONS?: BoolString; + + /** Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions. */ + GCC_ENABLE_SSE41_EXTENSIONS?: BoolString; + + /** Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions. */ + GCC_ENABLE_SSE42_EXTENSIONS?: BoolString; + + /** Controls whether or not trigraphs are permitted in the source code. */ + GCC_ENABLE_TRIGRAPHS?: BoolString; + + /** Enables some floating point optimizations that are not IEEE754-compliant. */ + GCC_FAST_MATH?: BoolString; + + /** Enables or disables generation of debug symbols. */ + GCC_GENERATE_DEBUGGING_SYMBOLS?: BoolString; + + /** Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use. */ + GCC_GENERATE_TEST_COVERAGE_FILES?: BoolString; + + /** Enabling this option will enable increased sharing of precompiled headers among targets. */ + GCC_INCREASE_PRECOMPILED_HEADER_SHARING?: BoolString; + + /** When enabled, out-of-line copies of inline methods are declared `private extern`. */ + GCC_INLINES_ARE_PRIVATE_EXTERN?: BoolString; + + /** Specifies whether to compile each source file according to its file type. */ + GCC_INPUT_FILETYPE?: string; + + /** Activating this setting indicates that code should be added so program flow arcs are instrumented. */ + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS?: BoolString; + + /** Enabling this option allows linking with the shared libraries. */ + GCC_LINK_WITH_DYNAMIC_LIBRARIES?: BoolString; + + /** In C, allocate even uninitialized global variables in the data section of the object file. */ + GCC_NO_COMMON_BLOCKS?: BoolString; + + /** Specifies the degree to which the generated code is optimized for speed and binary size. */ + GCC_OPTIMIZATION_LEVEL?: "0" | "1" | "2" | "3" | "s" | "fast" | "z" | (string & {}); + + /** Generates a precompiled header for the prefix header. */ + GCC_PRECOMPILE_PREFIX_HEADER?: BoolString; + + /** Implicitly include the named header. */ + GCC_PREFIX_HEADER?: string; + + /** Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. */ + GCC_PREPROCESSOR_DEFINITIONS?: string | string[]; + + /** Space-separated list of preprocessor macros not used in precompiled headers. */ + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS?: string[]; + + /** Reuse string literals. */ + GCC_REUSE_STRINGS?: BoolString; + + /** Make enums only as large as needed for the range of possible values. */ + GCC_SHORT_ENUMS?: BoolString; + + /** Optimize code by making more aggressive assumptions about whether pointers can point to the same objects. */ + GCC_STRICT_ALIASING?: BoolString; + + /** When enabled, all symbols are declared `private extern` unless explicitly marked to be exported. */ + GCC_SYMBOLS_PRIVATE_EXTERN?: BoolString; + + /** Emits extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics. */ + GCC_THREADSAFE_STATICS?: BoolString; + + /** Causes warnings about missing function prototypes to be treated as errors. */ + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS?: BoolString; + + /** Enabling this option causes warnings about incompatible pointer types to be treated as errors. */ + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS?: BoolString; + + /** Enabling this option causes all warnings to be treated as errors. */ + GCC_TREAT_WARNINGS_AS_ERRORS?: BoolString; + + /** Unrolls loops. */ + GCC_UNROLL_LOOPS?: BoolString; + + /** Controls whether the standard system directories are searched for header files. */ + GCC_USE_STANDARD_INCLUDE_SEARCHING?: BoolString; + + /** The compiler to use for C, C++, and Objective-C. */ + GCC_VERSION?: string; + + // ============================================================================ + // GCC Warnings + // ============================================================================ + + /** Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. */ + GCC_WARN_64_TO_32_BIT_CONVERSION?: BoolString; + + /** Warn about the use of deprecated functions, variables, and types. */ + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS?: BoolString; + + /** Suppress warnings from applying the `offsetof` macro to a non-POD type. */ + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO?: BoolString; + + /** Warn if a structure's initializer has some fields missing. */ + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS?: BoolString; + + /** Warn when a source file does not end with a newline. */ + GCC_WARN_ABOUT_MISSING_NEWLINE?: BoolString; + + /** Causes warnings to be emitted about missing prototypes. */ + GCC_WARN_ABOUT_MISSING_PROTOTYPES?: BoolString; + + /** Warn when pointers passed via arguments or assigned to a variable differ in sign. */ + GCC_WARN_ABOUT_POINTER_SIGNEDNESS?: BoolString; + + /** Causes warnings to be emitted when a function with a defined return type contains a return statement without a return-value. */ + GCC_WARN_ABOUT_RETURN_TYPE?: BoolString; + + /** Warn if methods required by a protocol are not implemented in the class adopting it. */ + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL?: BoolString; + + /** Warn whenever a switch statement has an index of enumeral type and lacks a case. */ + GCC_WARN_CHECK_SWITCH_STATEMENTS?: BoolString; + + /** Warn about four-char literals. */ + GCC_WARN_FOUR_CHARACTER_CONSTANTS?: BoolString; + + /** Warn when a function declaration hides virtual functions from a base class. */ + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS?: BoolString; + + /** Inhibit all warning messages. */ + GCC_WARN_INHIBIT_ALL_WARNINGS?: BoolString; + + /** Warn if an aggregate or union initializer is not fully bracketed. */ + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED?: BoolString; + + /** Warn if parentheses are omitted in certain contexts. */ + GCC_WARN_MISSING_PARENTHESES?: BoolString; + + /** Warn when a class declares a nonvirtual destructor that should probably be virtual. */ + GCC_WARN_NON_VIRTUAL_DESTRUCTOR?: BoolString; + + /** Issue all the warnings demanded by strict ISO C and ISO C++. */ + GCC_WARN_PEDANTIC?: BoolString; + + /** Warn whenever a local variable shadows another local variable, parameter or global variable. */ + GCC_WARN_SHADOW?: BoolString; + + /** Warn when a comparison between signed and unsigned values could produce an incorrect result. */ + GCC_WARN_SIGN_COMPARE?: BoolString; + + /** Warn if multiple methods with differing argument and/or return types are found for a given selector. */ + GCC_WARN_STRICT_SELECTOR_MATCH?: BoolString; + + /** Check calls to `printf` and `scanf` to make sure that the arguments supplied have types appropriate to the format string. */ + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF?: BoolString; + + /** Warn if a `@selector(...)` expression referring to an undeclared selector is found. */ + GCC_WARN_UNDECLARED_SELECTOR?: BoolString; + + /** Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization. */ + GCC_WARN_UNINITIALIZED_AUTOS?: BoolString; + + /** Warn when a `#pragma` directive is encountered that is not understood by GCC. */ + GCC_WARN_UNKNOWN_PRAGMAS?: BoolString; + + /** Warn whenever a static function is declared but not defined or a non-inline static function is unused. */ + GCC_WARN_UNUSED_FUNCTION?: BoolString; + + /** Warn whenever a label is declared but not used. */ + GCC_WARN_UNUSED_LABEL?: BoolString; + + /** Warn whenever a function parameter is unused aside from its declaration. */ + GCC_WARN_UNUSED_PARAMETER?: BoolString; + + /** Warn whenever a statement computes a result that is explicitly not used. */ + GCC_WARN_UNUSED_VALUE?: BoolString; + + /** Warn whenever a local variable or nonconstant static variable is unused aside from its declaration. */ + GCC_WARN_UNUSED_VARIABLE?: BoolString; + + // ============================================================================ + // Linking + // ============================================================================ + + /** Specifies the executable that will load the bundle output file being linked. */ + BUNDLE_LOADER?: string; + + /** Activating this setting causes the `-dead_strip` flag to be passed to `ld`. */ + DEAD_CODE_STRIPPING?: BoolString; + + /** This is a project-relative path to a file that lists the symbols to export. */ + EXPORTED_SYMBOLS_FILE?: string; + + /** This is a list of paths to folders containing frameworks to be searched by the compiler. */ + FRAMEWORK_SEARCH_PATHS?: string | string[]; + + /** This is a list of paths to folders to be searched by the compiler for included or imported header files. */ + HEADER_SEARCH_PATHS?: string | string[]; + + /** Activating this setting will preserve private external symbols. */ + KEEP_PRIVATE_EXTERNS?: BoolString; + + /** This setting passes the value with `-client_name` when linking the executable. */ + LD_CLIENT_NAME?: string; + + /** This setting defines the path to which the linker should emit information about what files it used as inputs. */ + LD_DEPENDENCY_INFO_FILE?: string; + + /** This setting restricts the clients allowed to link a dylib. */ + LD_DYLIB_ALLOWABLE_CLIENTS?: string[]; + + /** Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. */ + LD_DYLIB_INSTALL_NAME?: string; + + /** This setting allows `key=value` pairs of `dyld` environment variables to be embedded. */ + LD_ENVIRONMENT?: string[]; + + /** Export symbols from the binaries. */ + LD_EXPORT_SYMBOLS?: BoolString; + + /** Activating this setting will cause the linker to write a map file to disk. */ + LD_GENERATE_MAP_FILE?: BoolString; + + /** This setting defines the path to the map file written by the linker. */ + LD_MAP_FILE_PATH?: string; + + /** Activating this setting will prevent Xcode from building a main executable that is position independent (PIE). */ + LD_NO_PIE?: BoolString; + + /** This setting controls whether arguments to the linker should be quoted using `-Xlinker`. */ + LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER?: BoolString; + + /** This is a list of paths to be added to the `runpath` search path list for the image being created. */ + LD_RUNPATH_SEARCH_PATHS?: string | string[]; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]"?: string | string[]; + + /** Warn for linking the same library multiple times. */ + LD_WARN_DUPLICATE_LIBRARIES?: BoolString; + + /** Warn for any dylib linked to but not used. */ + LD_WARN_UNUSED_DYLIBS?: BoolString; + + /** This is a list of paths to folders to be searched by the linker for libraries used by the product. */ + LIBRARY_SEARCH_PATHS?: string | string[]; + + /** Activating this setting causes the linker to display mangled names for C++ symbols. */ + LINKER_DISPLAYS_MANGLED_NAMES?: BoolString; + + /** When this setting is enabled, the compiler driver will automatically pass its standard libraries to the linker. */ + LINK_WITH_STANDARD_LIBRARIES?: BoolString; + + /** Enabling this setting allows optimization across file boundaries during linking. */ + LLVM_LTO?: "NO" | "YES" | "YES_THIN" | (string & {}); + + /** This setting determines the format of the produced binary. */ + MACH_O_TYPE?: "mh_execute" | "mh_dylib" | "mh_bundle" | "staticlib" | "mh_object" | (string & {}); + + /** The path to a file that alters the order in which functions and data are laid out. */ + ORDER_FILE?: string; + + /** Options defined in this setting are passed to invocations of the linker. */ + OTHER_LDFLAGS?: string | string[]; + + /** Options defined in this setting are passed to all invocations of the archive librarian. */ + OTHER_LIBTOOLFLAGS?: string | string[]; + + /** A project-relative path to a file that lists the symbols not to export. */ + UNEXPORTED_SYMBOLS_FILE?: string; + + // ============================================================================ + // Build Directories & Paths + // ============================================================================ + + /** Identifies the directory under which all the product's files can be found. */ + BUILT_PRODUCTS_DIR?: string; + + /** The base path where build products will be placed during a build for a given configuration. */ + CONFIGURATION_BUILD_DIR?: string; + + /** The base path where intermediates will be placed during a build for a given configuration. */ + CONFIGURATION_TEMP_DIR?: string; + + /** Specifies the directory inside the generated bundle that contains the product's files. */ + CONTENTS_FOLDER_PATH?: string; + + /** Identifies the directory into which derived source files are placed. */ + DERIVED_FILE_DIR?: string; + + /** Identifies the directory that contains the bundle's documentation files. */ + DOCUMENTATION_FOLDER_PATH?: string; + + /** The path at which all products will be rooted when performing an install build. */ + DSTROOT?: string; + + /** Sets the base value for the internal `install path` (`LC_ID_DYLIB`) in a dynamic library. */ + DYLIB_INSTALL_NAME_BASE?: string; + + /** Identifies the directory that contains additional binary files. */ + EXECUTABLES_FOLDER_PATH?: string; + + /** Identifies the directory that contains the binary the target builds. */ + EXECUTABLE_FOLDER_PATH?: string; + + /** Specifies the name of the binary the target produces. */ + EXECUTABLE_NAME?: string; + + /** Specifies the path to the binary the target produces within its bundle. */ + EXECUTABLE_PATH?: string; + + /** Specifies the directory that contains the product's embedded frameworks. */ + FRAMEWORKS_FOLDER_PATH?: string; + + /** Identifies the directory in the developer's filesystem into which the installed product is placed. */ + INSTALL_DIR?: string; + + /** The directory in which to install the build products. */ + INSTALL_PATH?: string; + + /** Specifies the directory that contains the product's Clang module maps and Swift module content. */ + MODULES_FOLDER_PATH?: string; + + /** Absolute path of folder in which compiler stores its cached modules. */ + MODULE_CACHE_DIR?: string; + + /** Partially identifies the directory into which variant object files are placed. */ + OBJECT_FILE_DIR?: string; + + /** The path where intermediate files will be placed during a build. */ + OBJROOT?: string; + + /** Specifies the directory that contains the product's plugins. */ + PLUGINS_FOLDER_PATH?: string; + + /** The location to copy the private headers to during building. */ + PRIVATE_HEADERS_FOLDER_PATH?: string; + + /** The location to copy the public headers to during building. */ + PUBLIC_HEADERS_FOLDER_PATH?: string; + + /** Identifies the directory containing the target's source files. */ + SRCROOT?: string; + + /** Identifies the root of the directory hierarchy that contains the product's files. */ + TARGET_BUILD_DIR?: string; + + /** Identifies the directory containing the target's intermediate build files. */ + TARGET_TEMP_DIR?: string; + + /** The path at which all products will be placed when performing a build. */ + SYMROOT?: string; + + /** Specifies the directory that contains the product's scripts. */ + SCRIPTS_FOLDER_PATH?: string; + + /** Specifies the directory that contains the product's shared frameworks. */ + SHARED_FRAMEWORKS_FOLDER_PATH?: string; + + /** The path where precompiled prefix header files are placed during a build. */ + SHARED_PRECOMPS_DIR?: string; + + /** Specifies the directory that contains the product's unlocalized resources. */ + UNLOCALIZED_RESOURCES_FOLDER_PATH?: string; + + // ============================================================================ + // Build Options + // ============================================================================ + + /** Always embed the Swift standard libraries in the target's products. */ + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES?: BoolString; + + /** This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. */ + ALWAYS_SEARCH_USER_PATHS?: BoolString; + + /** When enabled, this causes the compiler and linker to disallow use of APIs that are not available to app extensions. */ + APPLICATION_EXTENSION_API_ONLY?: BoolString; + + /** Enabling this setting will cause files in the target's Copy Files build phases to be processed by build rules. */ + APPLY_RULES_IN_COPY_FILES?: BoolString; + + /** Enabling this setting will cause all Public and Private headers in the target's Copy Headers build phase to be processed by build rules. */ + APPLY_RULES_IN_COPY_HEADERS?: BoolString; + + /** Ensures that your libraries are built for distribution. */ + BUILD_LIBRARY_FOR_DISTRIBUTION?: BoolString; + + /** A list of the build variants of the linked binary that will be produced. */ + BUILD_VARIANTS?: string[]; + + /** Combines image files at different resolutions into one multi-page TIFF file. */ + COMBINE_HIDPI_IMAGES?: BoolString; + + /** Caches the results of compilations for a particular set of inputs. */ + COMPILATION_CACHE_ENABLE_CACHING?: BoolString; + + /** Emits diagnostic information for cached compilation tasks. */ + COMPILATION_CACHE_ENABLE_DIAGNOSTIC_REMARKS?: BoolString; + + /** Control whether the compiler should emit index data while building. */ + COMPILER_INDEX_STORE_ENABLE?: BoolString; + + /** If enabled, PNG resource files are compressed as they are copied. */ + COMPRESS_PNG_FILES?: BoolString; + + /** Causes the copying of resources to preserve resource forks and Finder info. */ + COPYING_PRESERVES_HFS_DATA?: BoolString; + + /** If enabled, headers are run through the `unifdef(1)` tool when copied to the product. */ + COPY_HEADERS_RUN_UNIFDEF?: BoolString; + + /** Specifies the flags to pass to `unifdef(1)` when copying headers. */ + COPY_HEADERS_UNIFDEF_FLAGS?: string; + + /** Specifies whether binary files that are copied during the build should be stripped of debugging symbols. */ + COPY_PHASE_STRIP?: BoolString; + + /** The type of debug information to produce. */ + DEBUG_INFORMATION_FORMAT?: "dwarf" | "dwarf-with-dsym" | (string & {}); + + /** The format of the debug information to produce. */ + DEBUG_INFORMATION_VERSION?: "compiler-default" | "dwarf4" | "dwarf5" | (string & {}); + + /** If enabled, the product will be treated as defining its own module. */ + DEFINES_MODULE?: BoolString; + + /** If enabled, built products are placed in their installed locations in addition to the built products folder. */ + DEPLOYMENT_LOCATION?: BoolString; + + /** If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values. */ + DEPLOYMENT_POSTPROCESSING?: BoolString; + + /** When enabled, Xcode will automatically derive a bundle identifier for this target from its original bundle identifier when building for Mac Catalyst. */ + DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER?: BoolString; + + /** Files and directories used only for development. Archive and install builds will exclude this content. */ + DEVELOPMENT_ASSET_PATHS?: string; + + /** If enabled, the build system will emit a TBD file for Swift-only framework and dynamic library targets. */ + EAGER_LINKING?: BoolString; + + /** Embed all the built asset packs inside the product bundle. */ + EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE?: BoolString; + + /** When set, enables App Sandbox for a target. */ + ENABLE_APP_SANDBOX?: BoolString; + + /** Enables building with code coverage instrumentation. */ + ENABLE_CODE_COVERAGE?: BoolString; + + /** Enables a strict programming model that guarantees bounds safety in C++. */ + ENABLE_CPLUSPLUS_BOUNDS_SAFE_BUFFERS?: BoolString; + + /** Enables the -fbounds-safety language extension, which guarantees bounds safety for C. */ + ENABLE_C_BOUNDS_SAFETY?: BoolString; + + /** If enabled, debug builds of app and app extension targets will be built with the main binary code in a separate dylib. */ + ENABLE_DEBUG_DYLIB?: BoolString; + + /** Enables a set of security build settings. */ + ENABLE_ENHANCED_SECURITY?: BoolString; + + /** This setting indicates whether App Sandbox allows access to files in the user's downloads directory. */ + ENABLE_FILE_ACCESS_DOWNLOADS_FOLDER?: BoolString; + + /** This setting indicates whether App Sandbox allows access to files in the user's movies directory. */ + ENABLE_FILE_ACCESS_MOVIES_FOLDER?: BoolString; + + /** This setting indicates whether App Sandbox allows access to files in the user's music directory. */ + ENABLE_FILE_ACCESS_MUSIC_FOLDER?: BoolString; + + /** This setting indicates whether App Sandbox allows access to files in the user's pictures directory. */ + ENABLE_FILE_ACCESS_PICTURE_FOLDER?: BoolString; + + /** Enable hardened runtime restrictions. */ + ENABLE_HARDENED_RUNTIME?: BoolString; + + /** Specifies whether to automatically track dependencies on included header files. */ + ENABLE_HEADER_DEPENDENCIES?: BoolString; + + /** When set, enables incoming network connections. */ + ENABLE_INCOMING_NETWORK_CONNECTIONS?: BoolString; + + /** Enabled the incremental `distill` option in the asset catalog compiler. */ + ENABLE_INCREMENTAL_DISTILL?: BoolString; + + /** Enables clang module verification for frameworks. */ + ENABLE_MODULE_VERIFIER?: BoolString; + + /** Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code. */ + ENABLE_NS_ASSERTIONS?: BoolString; + + /** Omit inapplicable resources when building for a single device. */ + ENABLE_ONLY_ACTIVE_RESOURCES?: BoolString; + + /** If enabled, tagged assets are built into asset packs based on their combination of tags. */ + ENABLE_ON_DEMAND_RESOURCES?: BoolString; + + /** When set, enables outgoing network connections. */ + ENABLE_OUTGOING_NETWORK_CONNECTIONS?: BoolString; + + /** Builds the target with pointer authentication enabled. */ + ENABLE_POINTER_AUTHENTICATION?: BoolString; + + /** When enabled, literal strings in SwiftUI will be extracted during localization export. */ + ENABLE_PREVIEWS?: BoolString; + + /** When set, enables capture of audio with the built-in and external microphones. */ + ENABLE_RESOURCE_ACCESS_AUDIO_INPUT?: BoolString; + + /** When set, enables communication with connected Bluetooth devices. */ + ENABLE_RESOURCE_ACCESS_BLUETOOTH?: BoolString; + + /** When set, enables read-write access to the user's calendar. */ + ENABLE_RESOURCE_ACCESS_CALENDARS?: BoolString; + + /** When set, enables capture of images and movies with the built-in and external cameras. */ + ENABLE_RESOURCE_ACCESS_CAMERA?: BoolString; + + /** When set, enables read-write access to the user's Contacts database. */ + ENABLE_RESOURCE_ACCESS_CONTACTS?: BoolString; + + /** When set, enables access to determine the user's location using Location Services. */ + ENABLE_RESOURCE_ACCESS_LOCATION?: BoolString; + + /** A Boolean value that indicates whether the app has read-write access to the user's Photos library. */ + ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY?: BoolString; + + /** When set, enables access to print documents and media. */ + ENABLE_RESOURCE_ACCESS_PRINTING?: BoolString; + + /** When set, enables communication with connected USB devices. */ + ENABLE_RESOURCE_ACCESS_USB?: BoolString; + + /** Enables a set of security-relevant compiler warnings. */ + ENABLE_SECURITY_COMPILER_WARNINGS?: BoolString; + + /** Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called. */ + ENABLE_STRICT_OBJC_MSGSEND?: BoolString; + + /** Enabling this setting will build the target with options appropriate for running automated tests. */ + ENABLE_TESTABILITY?: BoolString; + + /** Specifies whether the build system should add the search paths necessary for compiling and linking against testing-related libraries. */ + ENABLE_TESTING_SEARCH_PATHS?: BoolString; + + /** If enabled, the build system will sandbox user scripts to disallow undeclared input/output dependencies. */ + ENABLE_USER_SCRIPT_SANDBOXING?: BoolString; + + /** This setting indicates whether App Sandbox allows access to files the user selects. */ + ENABLE_USER_SELECTED_FILES?: "none" | "read-only" | "read-write" | (string & {}); + + /** This is the extension used for the executable product generated by the target. */ + EXECUTABLE_EXTENSION?: string; + + /** The prefix used for the executable product generated by the target. */ + EXECUTABLE_PREFIX?: string; + + /** Specifies the suffix of the binary filename. */ + EXECUTABLE_SUFFIX?: string; + + /** Framework bundles are versioned by having contents in subfolders of a version folder. */ + FRAMEWORK_VERSION?: string; + + /** If enabled, consecutive run script phases will be allowed to run in parallel. */ + FUSE_BUILD_SCRIPT_PHASES?: BoolString; + + /** Automatically generate an Info.plist file. */ + GENERATE_INFOPLIST_FILE_?: BoolString; + + /** Enables the generation of intermediate Text-Based stubs for dynamic libraries and frameworks. */ + GENERATE_INTERMEDIATE_TEXT_BASED_STUBS?: BoolString; + + /** Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected. */ + GENERATE_PKGINFO_FILE?: BoolString; + + /** Activating this setting will cause the object files built by a target to be prelinked using `ld -r`. */ + GENERATE_PRELINK_OBJECT_FILE?: BoolString; + + /** Activating this setting will cause the compiler and linker to generate profiling code. */ + GENERATE_PROFILING_CODE?: BoolString; + + /** Enables the generation of Text-Based stubs for dynamic libraries and frameworks. */ + GENERATE_TEXT_BASED_STUBS?: BoolString; + + /** Specifies whether the header map contains a name/path entry for every header in the target being built. */ + HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT?: BoolString; + + /** Specifies whether the header map contains a framework-name/path entry for every header in the target being built. */ + HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES?: BoolString; + + /** Specifies whether the header map contains a name/path entry for every header in the project. */ + HEADERMAP_INCLUDES_PROJECT_HEADERS?: BoolString; + + /** This setting allows for better control of sharing precompiled prefix header files between projects. */ + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR?: BoolString; + + /** If enabled, don't install built products even if deployment locations are active. */ + SKIP_INSTALL?: BoolString; + + /** Activating this setting will cause Xcode to run the `Clang` static analysis tool on qualifying source files during every build. */ + RUN_CLANG_STATIC_ANALYZER?: BoolString; + + /** Also build documentation as part of the 'Build' action. */ + RUN_DOCUMENTATION_COMPILER?: BoolString; + + /** Activating this setting will cause all source files to be scanned for includes when computing the dependency graph. */ + SCAN_ALL_SOURCE_FILES_FOR_INCLUDES?: BoolString; + + /** If enabled, perform validation checks on the product as part of the build process. */ + VALIDATE_PRODUCT?: BoolString; + + /** Specifies whether the target's Copy Files build phases generate additional information when copying files. */ + VERBOSE_PBXCP?: BoolString; + + // ============================================================================ + // Stripping + // ============================================================================ + + /** Additional flags to be passed when stripping the linked product of the build. */ + STRIPFLAGS?: string; + + /** If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing. */ + STRIP_INSTALLED_PRODUCT?: BoolString; + + /** Metadata in the form of text chunks in PNG files will be removed to reduce their footprint on disk. */ + STRIP_PNG_TEXT?: BoolString; + + /** The level of symbol stripping to be performed on the linked product of the build. */ + STRIP_STYLE?: "all" | "non-global" | "debugging" | (string & {}); + + /** Adjust the level of symbol stripping so that when the linked product is stripped, all Swift symbols will be removed. */ + STRIP_SWIFT_SYMBOLS?: BoolString; + + // ============================================================================ + // Asset Catalog + // ============================================================================ + + /** A set of additional app icon set names to include in the built product. */ + ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES?: string; + + /** Name of an app icon set for the target's default app icon. */ + ASSETCATALOG_COMPILER_APPICON_NAME?: string; + + /** The name of a watch complication to use from the asset catalog. */ + ASSETCATALOG_COMPILER_COMPLICATION_NAME?: string; + + /** Generate asset symbols for each color and image in the catalog. */ + ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS?: BoolString; + + /** Generate asset symbol support for the specified UI frameworks. */ + ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_FRAMEWORKS?: string; + + /** Generate asset symbol extensions on Apple framework color and image types. */ + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS?: BoolString; + + /** The name of a color resource to use as the target's accent color. */ + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME?: string; + + /** When true, all app icon assets from the target's Asset Catalogs will be included in the built product. */ + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS?: BoolString; + + /** When enabled, includes the localization information of the selected assets in the generated partial Info.plist file. */ + ASSETCATALOG_COMPILER_INCLUDE_INFOPLIST_LOCALIZATIONS?: BoolString; + + /** Name of an asset catalog launch image set whose contents will be merged into the `Info.plist`. */ + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME?: string; + + /** Leaderboards in the asset catalog may optionally specify a Game Center identifier. */ + ASSETCATALOG_COMPILER_LEADERBOARD_IDENTIFIER_PREFIX?: string; + + /** Leaderboard sets in the asset catalog may optionally specify a Game Center identifier. */ + ASSETCATALOG_COMPILER_LEADERBOARD_SET_IDENTIFIER_PREFIX?: string; + + /** With no value, the compiler uses the default optimization. */ + ASSETCATALOG_COMPILER_OPTIMIZATION?: "" | "time" | "space" | (string & {}); + + /** Whether to perform App Store-specific behaviors such as validations. */ + ASSETCATALOG_COMPILER_SKIP_APP_STORE_DEPLOYMENT?: BoolString; + + /** Controls whether loose PNG or ICNS files are created for the primary app icon. */ + ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR?: "default" | "all" | "none" | (string & {}); + + /** Sticker Packs in the asset catalog may optionally specify an identifier. */ + ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX?: string; + + /** The name of a color resource to use as the background color for a widget. */ + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME?: string; + + /** Show notices encountered during the compilation of asset catalogs. */ + ASSETCATALOG_NOTICES?: BoolString; + + /** Pass additional flags through to the asset catalog compiler. */ + ASSETCATALOG_OTHER_FLAGS?: string; + + /** Show warnings encountered during the compilation of asset catalogs. */ + ASSETCATALOG_WARNINGS?: BoolString; + + /** If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. */ + ASSET_PACK_MANIFEST_URL_PREFIX?: string; + + // ============================================================================ + // Metal + // ============================================================================ + + /** Space-separated list of metal linker flags */ + MTLLINKER_FLAGS?: string; + + /** Space-separated list of compiler flags */ + MTL_COMPILER_FLAGS?: string; + + /** Debugging information is required for shader debugging and profiling. */ + MTL_ENABLE_DEBUG_INFO?: BoolString | "INCLUDE_SOURCE"; + + /** Control whether the compiler should emit index data while building. */ + MTL_ENABLE_INDEX_STORE?: BoolString; + + /** Enable the use of modules. */ + MTL_ENABLE_MODULES?: "all" | "stdlib" | "none" | (string & {}); + + /** Enable optimizations for floating-point arithmetic that may violate the IEEE 754 standard. */ + MTL_FAST_MATH?: BoolString; + + /** This is a list of paths to folders to be searched by the compiler for included or imported header files when compiling Metal. */ + MTL_HEADER_SEARCH_PATHS?: string | string[]; + + /** Enabling this option causes all warnings to be ignored. */ + MTL_IGNORE_WARNINGS?: BoolString; + + /** Determine the language revision to use. */ + MTL_LANGUAGE_REVISION?: string; + + /** Controls default math functions for single precision floating-point */ + MTL_MATH_FP32_FUNCTIONS?: string; + + /** Controls floating-point optimizations */ + MTL_MATH_MODE?: string; + + /** Optimization level for the Metal compiler. */ + MTL_OPTIMIZATION_LEVEL?: "default" | "s" | (string & {}); + + /** Space-separated list of preprocessor macros of the form "foo" or "foo=bar". */ + MTL_PREPROCESSOR_DEFINITIONS?: string | string[]; + + /** Enabling this option causes all warnings to be treated as errors. */ + MTL_TREAT_WARNINGS_AS_ERRORS?: BoolString; + + // ============================================================================ + // Other Compiler Flags + // ============================================================================ + + /** Space-separated list of additional flags to pass to the compiler for C and Objective-C files. */ + OTHER_CFLAGS?: string | string[]; + + /** A list of additional options to pass to `codesign(1)`. */ + OTHER_CODE_SIGN_FLAGS?: string | string[]; + + /** Space-separated list of additional flags to pass to the compiler for C++ and Objective-C++ files. */ + OTHER_CPLUSPLUSFLAGS?: string | string[]; + + /** A list of additional flags to pass to DocC */ + OTHER_DOCC_FLAGS?: string | string[]; + + /** Space-separated list of additional flags to pass to the `iig` invocation of clang. */ + OTHER_IIG_CFLAGS?: string; + + /** Space-separated list of additional flags to pass to the `iig` compiler. */ + OTHER_IIG_FLAGS?: string; + + /** Space-separated list of additional flags to pass to `mig`. */ + OTHER_MIGFLAGS?: string; + + /** Additional flags to pass to the modules-verifier tool. */ + OTHER_MODULE_VERIFIER_FLAGS?: string | string[]; + + /** Space-separated list of additional flags to pass to `osacompile`. */ + OTHER_OSACOMPILEFLAGS?: string; + + /** Space-separated list of additional flags to pass to the `Rez` compiler. */ + OTHER_REZFLAGS?: string; + + /** A list of additional flags to pass to the Swift compiler. */ + OTHER_SWIFT_FLAGS?: string | string[]; + + /** Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool. */ + OTHER_TAPI_FLAGS?: string | string[]; + + /** Space-separated list of additional warning flags to pass to the compiler. */ + WARNING_CFLAGS?: string | string[]; + + // ============================================================================ + // Localization + // ============================================================================ + + /** When enabled, localizable content in this target/project can be exported. */ + LOCALIZATION_EXPORT_SUPPORTED?: BoolString; + + /** When enabled, string tables generated in a localization export will prefer the String Catalog format. */ + LOCALIZATION_PREFERS_STRING_CATALOGS?: BoolString; + + /** The base names for NSLocalizedString-like macros or functions used to produce localized strings in source code. */ + LOCALIZED_STRING_MACRO_NAMES?: string; + + /** When enabled, literal strings in SwiftUI will be extracted during localization export. */ + LOCALIZED_STRING_SWIFTUI_SUPPORT?: BoolString; + + /** The location to write .stringsdata files to when SWIFT_EMIT_LOC_STRINGS is enabled. */ + STRINGSDATA_DIR?: string; + + /** The location to traverse and collect .stringsdata files from when exporting for localization. */ + STRINGSDATA_ROOT?: string; + + /** If enabled, renames .strings files whose basename matches that of the target's Info.plist file. */ + STRINGS_FILE_INFOPLIST_RENAME?: BoolString; + + /** Specify the output encoding to be used for Strings files. */ + STRINGS_FILE_OUTPUT_ENCODING?: string; + + /** When enabled, symbols will be generated for manually-managed strings in String Catalogs. */ + STRING_CATALOG_GENERATE_SYMBOLS?: BoolString; + + // ============================================================================ + // Testing + // ============================================================================ + + /** Path to the executable into which a bundle of tests is injected. */ + TEST_HOST?: string; + + /** When running tests that measure performance via `XCTestCase`, report missing baselines as test failures. */ + TREAT_MISSING_BASELINES_AS_TEST_FAILURES?: BoolString; + + // ============================================================================ + // Miscellaneous + // ============================================================================ + + /** When enabled, generates assets needed for App Shortcuts Flexible Matching. */ + APP_SHORTCUTS_ENABLE_FLEXIBLE_MATCHING?: BoolString; + + /** A Boolean value that indicates whether the app may prompt the user for permission to send Apple events. */ + AUTOMATION_APPLE_EVENTS?: BoolString; + + /** C++ Standard Library to use. */ + CLANG_CXX_LIBRARY?: "libc++" | "libstdc++" | (string & {}); + + /** The Source-code language to use for generated CoreML model class. */ + COREML_CODEGEN_LANGUAGE?: "Automatic" | "Swift" | "Objective-C" | "None" | (string & {}); + + /** Generate Swift model classes that are marked with @objc and are descendants of NSObject. */ + COREML_CODEGEN_SWIFT_GLOBAL_MODULE?: BoolString; + + /** Other flags to pass to the C preprocessor when using the standalone C Preprocessor rule. */ + CPP_OTHER_PREPROCESSOR_FLAGS?: string; + + /** Space-separated list of preprocessor macros for the standalone C Preprocessor rule. */ + CPP_PREPROCESSOR_DEFINITIONS?: string; + + /** The name of the active variant being processed. */ + CURRENT_VARIANT?: string; + + /** Build Documentation for C++/Objective-C++ */ + DOCC_ENABLE_CXX_SUPPORT?: BoolString; + + /** Include documentation for symbols defined within an extension to a type that is not defined in the current module. */ + DOCC_EXTRACT_EXTENSION_SYMBOLS?: BoolString; + + /** Extract Objective-C symbol information for targets that contain only Swift code. */ + DOCC_EXTRACT_OBJC_INFO_FOR_SWIFT_SYMBOLS?: BoolString; + + /** Extract Swift symbol information for targets that contain only Objective-C code. */ + DOCC_EXTRACT_SWIFT_INFO_FOR_OBJC_SYMBOLS?: BoolString; + + /** The base path your documentation website will be hosted at. */ + DOCC_HOSTING_BASE_PATH?: string; + + /** Space-separated list of additional flags to pass to the `dtrace` compiler. */ + DTRACE_OTHER_FLAGS?: string; + + /** A list of patterns specifying the names of explicit target dependencies to exclude. */ + EXCLUDED_EXPLICIT_TARGET_DEPENDENCIES?: string[]; + + /** This is a list of `fnmatch()`-style patterns of file or directory names to exclude when performing a recursive search. */ + EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES?: string[]; + + /** A list of patterns specifying the names of source files to explicitly exclude. */ + EXCLUDED_SOURCE_FILE_NAMES?: string[]; + + /** A list of patterns specifying the names of explicit target dependencies to include. */ + INCLUDED_EXPLICIT_TARGET_DEPENDENCIES?: string[]; + + /** This is a list of `fnmatch()`-style patterns of file or directory names to include when performing a recursive search. */ + INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES?: string[]; + + /** A list of patterns specifying the names of source files to explicitly include. */ + INCLUDED_SOURCE_FILE_NAMES?: string[]; + + /** The domain in which the target will match or be matched for implicit dependencies. */ + IMPLICIT_DEPENDENCY_DOMAIN?: string; + + /** The group name or `gid` for installed products. */ + INSTALL_GROUP?: string; + + /** Permissions used for installed product files. */ + INSTALL_MODE_FLAG?: string; + + /** The owner name or `uid` for installed products. */ + INSTALL_OWNER?: string; + + /** The Source-code language to use for generated Intent class. */ + INTENTS_CODEGEN_LANGUAGE?: "Automatic" | "Swift" | "Objective-C" | (string & {}); + + /** Build Mergeable Library */ + MERGEABLE_LIBRARY?: BoolString; + + /** Create Merged Binary */ + MERGED_BINARY_TYPE?: "none" | "automatic" | "manual" | (string & {}); + + /** This is the project-relative path to the LLVM module map file that defines the module structure for the compiler. */ + MODULEMAP_FILE?: string; + + /** This is the project-relative path to the LLVM module map file that defines the module structure for private headers. */ + MODULEMAP_PRIVATE_FILE?: string; + + /** This is the identifier of the kernel module listed in the generated stub. */ + MODULE_NAME?: string; + + /** This defines the name of the kernel module start routine. */ + MODULE_START?: string; + + /** This defines the name of the kernel module stop routine. */ + MODULE_STOP?: string; + + /** Languages to verify the module. */ + MODULE_VERIFIER_SUPPORTED_LANGUAGES?: string[]; + + /** Language dialects to verify the module. */ + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS?: string[]; + + /** This is the version of the kernel module listed in the generated stub. */ + MODULE_VERSION?: string; + + /** The name of the current project. */ + PROJECT_NAME?: string; + + /** Identifies the directory in which the project's intermediate build files are placed. */ + PROJECT_TEMP_DIR?: string; + + /** Specifies whether to keep copies of unstripped binaries available. */ + RETAIN_RAW_BINARIES?: BoolString; + + /** Enables private framework inlining for Text-Based Stubs. */ + INLINE_PRIVATE_FRAMEWORKS?: BoolString; + + /** Specifies whether the target's Copy Files build phases are executed in `installhdr` builds. */ + INSTALLHDRS_COPY_PHASE?: BoolString; + + /** Specifies whether the target's Run Script build phases are executed in `installhdr` builds. */ + INSTALLHDRS_SCRIPT_PHASE?: BoolString; + + /** Enable the use of Header Maps. */ + USE_HEADERMAP?: BoolString; + + /** This is a list of paths to folders to be searched by the compiler for included or imported user header files. */ + USER_HEADER_SEARCH_PATHS?: string | string[]; + + /** This is a list of paths to folders containing system frameworks to be searched by the compiler. */ + SYSTEM_FRAMEWORK_SEARCH_PATHS?: string | string[]; + + /** This is a list of paths to folders to be searched by the compiler for included or imported system header files. */ + SYSTEM_HEADER_SEARCH_PATHS?: string | string[]; + + /** The name of the current target. */ + TARGET_NAME?: string; + + /** Enabling this option causes warnings about incremental build performance issues to be treated as errors. */ + TREAT_MISSING_SCRIPT_PHASE_OUTPUTS_AS_ERRORS?: BoolString; + + /** The extension used for product wrappers. */ + WRAPPER_EXTENSION?: string; + + /** Specifies the filename, including the appropriate extension, of the product bundle. */ + WRAPPER_NAME?: string; + + /** Specifies the suffix of the product bundle name. */ + WRAPPER_SUFFIX?: string; + + /** Defined a set of initial On Demand Resources tags to be downloaded and installed with your application. */ + ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS?: string[]; + + /** Once your app is installed, this defined a set of On Demand Resources tags that should be downloaded. */ + ON_DEMAND_RESOURCES_PREFETCH_ORDER?: string[]; + + // ============================================================================ + // Legacy / Deprecated + // ============================================================================ + + ENABLE_BITCODE?: BoolString; + PREBINDING?: BoolString; + + // ============================================================================ + // Catch-all for any additional settings + // ============================================================================ + + [key: string]: any; }