Core Build System
-
Active Build Action ACTIONA string identifying the build system action being performed.
Type string -
Additional SDKs ADDITIONAL_SDKSThe locations of any sparse SDKs that should be layered on top of the one specified by Base SDK (SDKROOT). If more than one SDK is listed, the first one has highest precedence. Every SDK specified in this setting should be a “sparse” SDK, for example, not an SDK for an entire macOS release.
Type StringList -
Alternate Install Group ALTERNATE_GROUPThe group name or gid for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
Type String Default Value $(INSTALL_GROUP) -
Alternate Install Permissions ALTERNATE_MODEPermissions used for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
Type String Default Value $(INSTALL_MODE_FLAG) -
Alternate Install Owner ALTERNATE_OWNERThe owner name or uid for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
Type String Default Value $(INSTALL_OWNER) -
Alternate Permissions Files ALTERNATE_PERMISSIONS_FILESList of files to which the alternate owner, group and permissions are applied.
Type StringList -
Always Search User Paths (Deprecated) ALWAYS_SEARCH_USER_PATHSThis setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.
If enabled, both
#include <header.h>-style and#include "header.h"-style directives search the paths in User Header Search Paths (USER_HEADER_SEARCH_PATHS) before Header Search Paths (HEADER_SEARCH_PATHS). As a consequence, user headers, such as your ownString.hheader, have precedence over system headers when using#include <header.h>. This is done using the-iquoteflag for the paths provided in User Header Search Paths (USER_HEADER_SEARCH_PATHS). If disabled and your compiler fully supports separate user paths, user headers are only accessible with#include "header.h"-style preprocessor directives.For backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.
Type Boolean Default Value YES -
Require Only App-Extension-Safe API APPLICATION_EXTENSION_API_ONLYWhen enabled, this causes the compiler and linker to disallow use of APIs that are not available to app extensions and to disallow linking to frameworks that have not been built with this setting enabled.
Type bool Default Value NO -
Convert Copied Files APPLY_RULES_IN_COPY_FILESEnabling this setting will cause files in the target’s Copy Files build phases to be processed by build rules. For example, property list files (
.plist) and strings files will be converted as specified by Property List Output Encoding (PLIST_FILE_OUTPUT_FORMAT) and Strings File Output Encoding (STRINGS_FILE_OUTPUT_ENCODING), respectively.Type Boolean Default Value NO -
Process Header Files APPLY_RULES_IN_COPY_HEADERSEnabling this setting will cause all Public and Private headers in the target’s Copy Headers build phase to be processed by build rules. This allows custom build rules to be defined to process these headers. Custom script rules can define their outputs relative to
HEADER_OUTPUT_DIR, which will be provided to that script, taking the header visibility into account. The scripts are also passedSCRIPT_HEADER_VISIBILITY(“public” or “private”). Files that should not be processed by build rules may need to be moved to a Copy Files build phase when this setting is enabled.Type Boolean Default Value NO -
Architectures ARCHSA list of the architectures for which the product will be built. This is usually set to a predefined build setting provided by the platform. If more than one architecture is specified, a universal binary will be produced.
Type StringList Default Value $(ARCHS_STANDARD) -
Asset Pack Manifest URL Prefix ASSET_PACK_MANIFEST_URL_PREFIXIf set to anything other than the empty string, every URL in the
AssetPackManifest.plistfile will consist of this string with the name of the asset pack appended. If not set, the URLs in theAssetPackManifest.plistwill be formed as appropriate for the build location of the asset packs. The prefix string is not escaped or quoted in any way, so any necessary escaping must be part of the URL string. This setting affects only URLs in theAssetPackManifest.plistfile — it does not affect where asset packs are built in the local file system.Type String -
Bitcode Generation Mode BITCODE_GENERATION_MODEType Enumeration Values markerbitcode
Default Value marker -
Build Active Resources Only BUILD_ACTIVE_RESOURCES_ONLYType Boolean Default Value NO -
Active Build Components BUILD_COMPONENTSA list of components being built during this action.
Type stringlist -
Build Dir BUILD_DIRType Path Default Value $(SYMROOT) -
Build Libraries for Distribution BUILD_LIBRARY_FOR_DISTRIBUTIONEnsures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.
Type Boolean Default Value NO -
Build Root BUILD_ROOTType Path Default Value $(SYMROOT) -
Build Style BUILD_STYLEType String -
Build Variants BUILD_VARIANTSA list of the build variants of the linked binary that will be produced. By default, only the
normalvariant is produced. Other common values includedebugandprofile.Type StringList Default Value normal -
Built Products Dir BUILT_PRODUCTS_DIRIdentifies the directory under which all the product’s files can be found. This directory contains either product files or symbolic links to them. Run Script build phases can use the value of this build setting as a convenient way to refer to the product files built by one or more targets even when these files are scattered throughout a directory hierarchy (for example, when
DEPLOYMENT_LOCATIONis set toYES.Type Path Default Value $(CONFIGURATION_BUILD_DIR) -
Bundle Contents Folder Path BUNDLE_CONTENTS_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH_$(BUNDLE_FORMAT)) -
Bundle Executable Folder Path BUNDLE_EXECUTABLE_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH)$(BUNDLE_EXECUTABLE_FOLDER_NAME_$(BUNDLE_FORMAT)) -
Bundle Format BUNDLE_FORMATType Enumeration Values deepshallow
Default Value shallow -
Bundle Frameworks Folder Path BUNDLE_FRAMEWORKS_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH)Frameworks -
Bundle Loader BUNDLE_LOADERSpecifies the executable that will load the bundle output file being linked. Undefined symbols from the bundle are checked against the specified executable as if it is one of the dynamic libraries the bundle was linked with.
Type String -
Bundle Plugins Folder Path BUNDLE_PLUGINS_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH)PlugIns -
Bundle Private Headers Folder Path BUNDLE_PRIVATE_HEADERS_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH)PrivateHeaders -
Bundle Public Headers Folder Path BUNDLE_PUBLIC_HEADERS_FOLDER_PATHType String Default Value $(BUNDLE_CONTENTS_FOLDER_PATH)Headers -
Cc CCType Path -
Class File Dir CLASS_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/JavaClasses -
Clone Headers CLONE_HEADERSType Boolean Default Value NO -
Code Signing Allowed CODE_SIGNING_ALLOWEDType bool Default Value NO -
Code Signing Entitlements CODE_SIGN_ENTITLEMENTSThe path to a file specifying code-signing entitlements.
Type String -
Code Signing Identity CODE_SIGN_IDENTITYThe name, also known as the common name, of a valid code-signing certificate in a keychain within your keychain path. A missing or invalid certificate will cause a build error.
Type CodeSignIdentity -
Code Signing Inject Base Entitlements CODE_SIGN_INJECT_BASE_ENTITLEMENTSAutomatically inject entitlements from the platform’s BaseEntitlements.plist into the code signatures of executables.
Type Boolean Default Value YES -
Code Sign Local Execution Identity CODE_SIGN_LOCAL_EXECUTION_IDENTITYType Enumeration Values Ad HocLocal Certificate
-
Code Sign Style CODE_SIGN_STYLEThis setting specifies the method used to acquire and locate signing assets. Choose
Automaticto let Xcode automatically create and update profiles, app IDs, and certificates. ChooseManualto create and update these yourself on the developer website.Type CodeSignStyle Values AutomaticManual
-
Color Diagnostics COLOR_DIAGNOSTICSType bool Default Value NO -
Enable Index-While-Building Functionality COMPILER_INDEX_STORE_ENABLEControl whether the compiler should emit index data while building.
Type Enumeration Values DefaultYESNO
Default Value Default -
Configuration CONFIGURATIONIdentifies the build configuration, such as
DebugorRelease, that the target uses to generate the product.Type String -
Per-configuration Build Products Path CONFIGURATION_BUILD_DIRThe base path where build products will be placed during a build for a given configuration. By default, this is set to
$(BUILD_DIR)/$(CONFIGURATION).Type Path Default Value $(BUILD_DIR) -
Per-configuration Intermediate Build Files Path CONFIGURATION_TEMP_DIRThe base path where intermediates will be placed during a build for a given configuration. By default, this is set to
$(PROJECT_TEMP_DIR)/$(CONFIGURATION).Type Path Default Value $(PROJECT_TEMP_DIR) -
Preserve HFS Data COPYING_PRESERVES_HFS_DATACauses the copying of resources to preserve resource forks and Finder info.
Type Boolean Default Value NO -
Run unifdef on Product Headers COPY_HEADERS_RUN_UNIFDEFIf enabled, headers are run through the
unifdef(1)tool when copied to the product.Type Boolean Default Value NO -
Unifdef Flags for Product Headers COPY_HEADERS_UNIFDEF_FLAGSSpecifies the flags to pass to
unifdef(1)when invoking that tool to copy headers. This setting has no effect unless Run unifdef on Product Headers (COPY_HEADERS_RUN_UNIFDEF) is enabled.Type StringList -
Strip Debug Symbols During Copy COPY_PHASE_STRIPSpecifies whether binary files that are copied during the build, such as in a Copy Bundle Resources or Copy Files build phase, should be stripped of debugging symbols. It does not cause the linked product of a target to be stripped—use Strip Linked Product (STRIP_INSTALLED_PRODUCT) for that.
Type Boolean Default Value YES -
Create Info.plist Section in Binary CREATE_INFOPLIST_SECTION_IN_BINARYEnabling this setting will create a section in the product’s linked binary containing the processed
Info.plistfile for the target. This setting only applies to command-line tool targets.Type Boolean Default Value NO -
Current Project Version CURRENT_PROJECT_VERSIONThis setting defines the current version of the project. The value must be a integer or floating point number, such as
57or365.8.Type String -
Current Version CURRENT_VERSIONType string -
Dead Code Stripping DEAD_CODE_STRIPPINGActivating this setting causes the
-dead_stripflag to be passed told(1)viacc(1)to turn on dead code stripping.Type Boolean Default Value NO -
Debugging Symbols DEBUGGING_SYMBOLSType Boolean Default Value YES -
Debug Information Format DEBUG_INFORMATION_FORMATThe type of debug information to produce.
-
DWARF: Object files and linked products will use DWARF as the debug information format.
dwarf -
DWARF with dSYM File: Object files and linked products will use DWARF as the debug information format, and Xcode will also produce a dSYM file containing the debug information from the individual object files (except that a dSYM file is not needed and will not be created for static library or object file products).
dwarf-with-dsym
Type Enumeration Values dwarfdwarf-with-dsym
Default Value dwarf -
-
Default Compiler DEFAULT_COMPILERType String -
Default Dext Install Path DEFAULT_DEXT_INSTALL_PATHType string Default Value $(SYSTEM_DEXT_INSTALL_PATH) -
Default Kext Install Path DEFAULT_KEXT_INSTALL_PATHType string Default Value $(SYSTEM_KEXT_INSTALL_PATH) -
Defines Module DEFINES_MODULEIf enabled, the product will be treated as defining its own module. This enables automatic production of LLVM module map files when appropriate, and allows the product to be imported as a module.
Type Boolean Default Value NO -
Deployment Location DEPLOYMENT_LOCATIONIf enabled, built products are placed in their installed locations in addition to the built products folder.
Type Boolean Default Value NO -
Deployment Postprocessing DEPLOYMENT_POSTPROCESSINGIf enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.
Type Boolean Default Value NO -
Derived File Dir DERIVED_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/DerivedSources -
Derived Sources Dir DERIVED_SOURCES_DIRType Path Default Value $(DERIVED_FILE_DIR) -
Development Assets DEVELOPMENT_ASSET_PATHSFiles and directories used only for development. Archive and install builds will exclude this content.
Type StringList -
Development Team DEVELOPMENT_TEAMThe team ID of a development team to use for signing certificates and provisioning profiles.
Type DevelopmentTeam -
Don't Force Info.plist Generation DONT_GENERATE_INFOPLIST_FILEIf enabled, don’t automatically generate an Info.plist file for wrapped products when the Info.plist File (INFOPLIST_FILE) build setting is empty.
Type Boolean Default Value NO -
Do Header Scanning In Jam DO_HEADER_SCANNING_IN_JAMType Boolean Default Value NO -
Installation Build Products Location DSTROOTThe path at which all products will be rooted when performing an install build. For instance, to install your products on the system proper, set this path to
/. Defaults to/tmp/$(PROJECT_NAME).dstto prevent a test install build from accidentally overwriting valid and needed data in the ultimate install path.Typically this path is not set per target, but is provided as an option on the command line when performing an
xcodebuild install. It may also be set in a build configuration in special circumstances.Type Path Default Value /tmp/$(PROJECT_NAME).dst -
Dwarf Dsym File Name DWARF_DSYM_FILE_NAMEType String Default Value $(FULL_PRODUCT_NAME).dSYM -
Dwarf Dsym File Should Accompany Product DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCTType bool Default Value NO -
Dwarf Dsym Folder Path DWARF_DSYM_FOLDER_PATHType Path Default Value $(CONFIGURATION_BUILD_DIR) -
Compatibility Version DYLIB_COMPATIBILITY_VERSIONDetermines the compatibility version of the resulting library, bundle, or framework binary. See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries.
Type String -
Current Library Version DYLIB_CURRENT_VERSIONThis setting defines the current version of any framework built by the project. As with Current Project Version (CURRENT_PROJECT_VERSION), the value must be an integer or floating point number, such as
57or365.8. By default, it is set to$(CURRENT_PROJECT_VERSION). See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries.Type String -
Dynamic Library Install Name Base DYLIB_INSTALL_NAME_BASESets the base value for the internal
install path(LC_ID_DYLIB) in a dynamic library. This will be combined with the EXECUTABLE_PATH to form the full install path. Setting Dynamic Library Install Name (LD_DYLIB_INSTALL_NAME) directly will override this setting. This setting defaults to the target’s Installation Directory (INSTALL_PATH). It is ignored when building any product other than a dynamic library.Type String -
Embedded Profile Name EMBEDDED_PROFILE_NAMEType String -
Embed Asset Packs In Product Bundle EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLEEmbed all the built asset packs inside the product bundle. Since this negates the performance benefits of the On Demand Resources feature, it is only useful for testing purposes when it isn’t practical to use an asset pack server.
Type Boolean Default Value NO -
Enable Bitcode ENABLE_BITCODEActivating this setting indicates that the target or project should generate bitcode during compilation for platforms and architectures that support it. For Archive builds, bitcode will be generated in the linked binary for submission to the App Store. For other builds, the compiler and linker will check whether the code complies with the requirements for bitcode generation, but will not generate actual bitcode.
Type Boolean Default Value NO -
Enable Default Header Search Paths ENABLE_DEFAULT_HEADER_SEARCH_PATHSType bool Default Value YES -
Enable Hardened Runtime ENABLE_HARDENED_RUNTIMEEnable hardened runtime restrictions.
Type Boolean Default Value NO -
Enable Header Dependencies ENABLE_HEADER_DEPENDENCIESSpecifies whether to automatically track dependencies on included header files.
Type Boolean Default Value YES -
Enable On Demand Resources ENABLE_ON_DEMAND_RESOURCESIf enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.
Type Boolean Default Value NO -
Enable Previews ENABLE_PREVIEWSIf enabled, the product will be built with options appropriate for supporting previews.
Type Boolean -
Enable Testability ENABLE_TESTABILITYWhen this setting is activated, the product will be built with options appropriate for running automated tests, such as making private interfaces accessible to the tests. This may result in tests running slower than they would without testability enabled.
Type Boolean Default Value NO -
Enable Testing Search Paths ENABLE_TESTING_SEARCH_PATHSSpecifies whether the build system should add the search paths necessary for compiling and linking against XCTest. This setting is enabled by default if the target is a unit test target or if the target explicitly links to the XCTest framework.
Type Boolean Default Value NO -
Entitlements Destination ENTITLEMENTS_DESTINATIONType Enumeration Values Signature__entitlements
-
Excluded Archs EXCLUDED_ARCHSType StringList -
Excluded Installsrc Subdirectory Patterns EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNSType stringlist Default Value .DS_Store .svn .git .hg CVS -
Sub-Directories to Exclude in Recursive Searches EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIESThis is a list of
fnmatch()-style patterns of file or directory names to exclude when performing a recursive search. By default, this is set to*.nib *.lproj *.framework *.gch *.xcode (*) .DS_Store CVS .svn .git .hg. Normally, if you override this value you should include the default values via the$(inherited)macro.Type StringList Default Value *.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj -
Excluded Source File Names EXCLUDED_SOURCE_FILE_NAMESA list of patterns (as defined by
fnmatch(3)) specifying the names of source files to explicitly exclude when processing the files in the target’s build phases (see also Included Source File Names (INCLUDED_SOURCE_FILE_NAMES)). This setting can be used to define complex filters for which files from the phase should be built in response to other build settings; for example, a value of*.$(CURRENT_ARCH).ccould serve to exclude particular files based on the architecture being built.Type StringList -
Executable Extension EXECUTABLE_EXTENSIONThis is the extension used for the executable product generated by the target, which has a default value based on the product type.
Type String -
Executable Prefix EXECUTABLE_PREFIXThe prefix used for the executable product generated by the target, which has a default value based on the product type.
Type String -
Exported Symbols File EXPORTED_SYMBOLS_FILEThis is a project-relative path to a file that lists the symbols to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String -
File List FILE_LISTType Path Default Value $(OBJECT_FILE_DIR)/LinkFileList -
Framework Search Paths FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. Paths are delimited by whitespace, so any paths with spaces in them must be properly quoted.
Type PathList -
Framework Version FRAMEWORK_VERSIONFramework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.
Type String Default Value A -
Full Product Name FULL_PRODUCT_NAMEType String -
Compiler for C/C++/Objective-C GCC_VERSIONThe compiler to use for C, C++, and Objective-C.
Type CompilerVersion -
Generated Modulemap Dir GENERATED_MODULEMAP_DIRType string Default Value $(OBJROOT)/GeneratedModuleMaps$(EFFECTIVE_PLATFORM_NAME) -
Perform Single-Object Prelink GENERATE_MASTER_OBJECT_FILEActivating this setting will cause the object files built by a target to be prelinked using
ld -rinto a single object file, and that object file will then be linked into the final product. This is useful to force the linker to resolve symbols and link the object files into a single module before building a static library. Also, a separate set of link flags can be applied to the prelink allowing additional control over, for instance, exported symbols.Type Boolean Default Value NO -
Force Package Info Generation GENERATE_PKGINFO_FILEForces the
PkgInfofile to be written to wrapped products even if this file is not expected.Type Boolean Default Value NO -
Generate Profiling Code GENERATE_PROFILING_CODEActivating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with
gprof(1).Type Boolean Default Value NO -
Enable Text-Based Stubs Generation GENERATE_TEXT_BASED_STUBSEnables the generation of Text-Based stubs for dynamic libraries and frameworks.
Type bool Default Value NO -
Headermap Includes Flat Entries For Target Being Built HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILTSpecifies whether the header map contains a name/path entry for every header in the target being built.
Type Boolean Default Value YES -
Headermap Includes Framework Entries For All Product Types HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPESSpecifies whether the header map contains a framework-name/path entry for every header in the target being built, including targets that do not build frameworks.
Type Boolean Default Value YES -
Headermap Includes Nonpublic Nonprivate Headers HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERSType Boolean Default Value $(HEADERMAP_INCLUDES_PROJECT_HEADERS) -
Headermap Includes Project Headers HEADERMAP_INCLUDES_PROJECT_HEADERSSpecifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.
Type Boolean Default Value YES -
Headermap Uses Framework Prefix Entries HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIESType Boolean Default Value YES -
Headermap Uses Vfs HEADERMAP_USES_VFSType Boolean Default Value $(DEFINES_MODULE) -
Header Search Paths HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Hide Bitcode Symbols HIDE_BITCODE_SYMBOLSType Boolean Default Value YES -
Home HOMEType path -
Sub-Directories to Include in Recursive Searches INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIESThis is a list of
fnmatch()-style patterns of file or directory names to include when performing a recursive search. By default, this is empty and is only customized when you want to provide exceptions to the list of filename patterns provided in Sub-Directories to Exclude in Recursive Searches (EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES).Type StringList -
Included Source File Names INCLUDED_SOURCE_FILE_NAMESA list of patterns (as defined by
fnmatch(3)) specifying the names of source files to explicitly include when processing the files in the target’s build phases. This setting is only useful when combined with Excluded Source File Names (EXCLUDED_SOURCE_FILE_NAMES), and can be used to define complex filters for which files from the phase should be built in response to other build settings.Type StringList -
Expand Build Settings in Info.plist File INFOPLIST_EXPAND_BUILD_SETTINGSExpand build settings in the
Info.plistfile.Type Boolean Default Value YES -
Info.plist File INFOPLIST_FILEThe project-relative path to the property list file that contains the
Info.plistinformation used by bundles. For details on information property list files, see Information Property List Files in Runtime Configuration Guidelines.Type Path -
Info.plist Other Preprocessor Flags INFOPLIST_OTHER_PREPROCESSOR_FLAGSOther flags to pass to the C preprocessor when preprocessing the
Info.plistfile.Type StringList -
Info.plist Output Encoding INFOPLIST_OUTPUT_FORMATSpecifies the output encoding for the output
Info.plist. The output encodings can bebinaryorXML. By default, the output encoding will be unchanged from the input.Type Enumeration Values same-as-inputXMLbinary
Default Value same-as-input -
Info.plist Preprocessor Prefix File INFOPLIST_PREFIX_HEADERImplicitly include the given file when preprocessing the
Info.plistfile. The path given should either be a project relative path or an absolute path.Type String -
Preprocess Info.plist File INFOPLIST_PREPROCESSPreprocess the
Info.plistfile using the C Preprocessor.Type Boolean Default Value NO -
Info.plist Preprocessor Definitions INFOPLIST_PREPROCESSOR_DEFINITIONSSpace-separated list of preprocessor macros of the form
fooorfoo=bar. These macros are used when preprocessing theInfo.plistfile.Type StringList -
Initialization Routine INIT_ROUTINEThis is the name of the routine to use for initialization.
Type String -
Enable Text-Based Stubs Inlining INLINE_PRIVATE_FRAMEWORKSEnables private framework inlining for Text-Based Stubs.
Type bool Default Value NO -
Perform Copy Files Phases During `installhdrs` INSTALLHDRS_COPY_PHASESpecifies whether the target’s Copy Files build phases are executed in
installhdrbuilds.Type Boolean Default Value NO -
Perform Shell Script Phases During `installhdrs` INSTALLHDRS_SCRIPT_PHASESpecifies whether the target’s Run Script build phases are executed in
installhdrbuilds. See Active Build Action (ACTION) for details oninstallhdrbuilds.Type Boolean Default Value NO -
Install Dir INSTALL_DIRIdentifies the directory in the developer’s filesystem into which the installed product is placed.
Type Path Default Value $(DSTROOT)$(INSTALL_PATH) -
Install Group INSTALL_GROUPThe group name or
gidfor installed products.Type String Default Value $(GROUP) -
Install Permissions INSTALL_MODE_FLAGPermissions used for installed product files.
Type String Default Value u+w,go-w,a+rX -
Install Owner INSTALL_OWNERThe owner name or
uidfor installed products.Type String Default Value $(USER) -
Installation Directory INSTALL_PATHThe directory in which to install the build products. This path is prepended by the Installation Build Products Location (DSTROOT).
Type String -
Install Root INSTALL_ROOTType Path Default Value $(DSTROOT) -
Java App Stub JAVA_APP_STUBType Path Default Value $(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub -
Java Archive Classes JAVA_ARCHIVE_CLASSESType Boolean Default Value YES -
Java Archive Type JAVA_ARCHIVE_TYPEType String Default Value JAR -
Java Compiler JAVA_COMPILERType Path Default Value /usr/bin/javac -
Java Framework Jars JAVA_FRAMEWORK_JARSType PathList -
Java Framework Resources Dirs JAVA_FRAMEWORK_RESOURCES_DIRSType PathList Default Value Resources -
Java Jar Flags JAVA_JAR_FLAGSType StringList Default Value cv -
Java Source Subdir JAVA_SOURCE_SUBDIRType Path Default Value . -
Java Use Dependencies JAVA_USE_DEPENDENCIESType Boolean Default Value YES -
Java Zip Flags JAVA_ZIP_FLAGSType StringList Default Value -urg -
Preserve Private External Symbols KEEP_PRIVATE_EXTERNSActivating this setting will preserve private external symbols, rather than turning them into static symbols. This setting is also respected when performing a single-object prelink.
Type Boolean Default Value NO -
Kext Cflags KEXT_CFLAGSType StringList -
Kext Cplusplusflags KEXT_CPLUSPLUSFLAGSType StringList Default Value $(KEXT_CFLAGS) -
Path to Linker Dependency Info File LD_DEPENDENCY_INFO_FILEThis setting defines the path to which the linker should emit information about what files it used as inputs and generated. Xcode uses this information for its dependency tracking. Setting the value of this setting to empty will disable passing this option to the linker.
Type Path Default Value $(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/$(PRODUCT_NAME)_dependency_info.dat -
Dynamic Library Allowable Clients LD_DYLIB_ALLOWABLE_CLIENTSThis setting restricts the clients allowed to link a dylib by passing
-allowable_clientto the linker for each supplied value.Type StringList -
Dynamic Library Install Name LD_DYLIB_INSTALL_NAMESets an internal
install path(LC_ID_DYLIB) in a dynamic library. Any clients linked against the library will record that path as the waydyldshould locate this library. If this option is not specified, then the-opath will be used. This setting is ignored when building any product other than a dynamic library. See Dynamic Library Programming Topics.Type Path -
Write Link Map File LD_GENERATE_MAP_FILEActivating this setting will cause the linker to write a map file to disk, which details all symbols and their addresses in the output image. The path to the map file is defined by the Path to Link Map File (LD_MAP_FILE_PATH) setting.
Type Boolean Default Value NO -
Path to Link Map File LD_MAP_FILE_PATHThis setting defines the path to the map file written by the linker when the Write Link Map File (LD_GENERATE_MAP_FILE) setting is activated. By default, a separate file will be written for each architecture and build variant, and these will be generated in the Intermediates directory for the target whose product is being linked.
Type Path Default Value $(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt -
Generate Position-Dependent Executable LD_NO_PIEActivating this setting will prevent Xcode from building a main executable that is position independent (PIE). When targeting macOS 10.7 or later, PIE is the default for main executables, so activating this setting will change that behavior. When targeting OS X 10.6 or earlier, or when building for i386, PIE is not the default, so activating this setting does nothing.
You cannot create a PIE from
.ofiles compiled with-mdynamic-no-pic. Using PIE means the codegen is less optimal, but the address randomization adds some security.Type bool Default Value NO -
Quote Linker Arguments LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVERThis setting controls whether arguments to the linker should be quoted using
-Xlinker. By default, Xcode invokes the linker by invoking the driver of the compiler used to build the source files in the target, and passing-Xlinkerto quote arguments will cause the compiler driver to pass them through to the linker (rather than trying to evaluate them within the driver). By default, this setting is enabled. Disabling it will cause Xcode to not use-Xlinkerto pass arguments to the linker. Disabling this setting is useful if the target has instructed Xcode to use an alternate linker (for example, by setting theLDsetting to the path to another linker) and that alternate linker does not recognize-Xlinker.Type Boolean Default Value YES -
Runpath Search Paths LD_RUNPATH_SEARCH_PATHSThis is a list of paths to be added to the
runpathsearch path list for the image being created. At runtime,dylduses therunpathwhen searching for dylibs whose load path begins with@rpath/. See Dynamic Library Programming Topics.Type StringList -
Library Dext Install Path LIBRARY_DEXT_INSTALL_PATHType string Default Value $(LOCAL_LIBRARY_DIR)/DriverExtensions -
Library Flag Nospace LIBRARY_FLAG_NOSPACEType bool Default Value YES -
Library Flag Prefix LIBRARY_FLAG_PREFIXType String -
Library Kext Install Path LIBRARY_KEXT_INSTALL_PATHType string Default Value $(LOCAL_LIBRARY_DIR)/Extensions -
Library Search Paths LIBRARY_SEARCH_PATHSThis is a list of paths to folders to be searched by the linker for libraries used by the product. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Display Mangled Names LINKER_DISPLAYS_MANGLED_NAMESActivating this setting causes the linker to display mangled names for C++ symbols. Normally, this is not recommended, but turning it on can help to diagnose and solve C++ link errors.
Type Boolean Default Value NO -
Link With Standard Libraries LINK_WITH_STANDARD_LIBRARIESWhen this setting is enabled, the compiler driver will automatically pass its standard libraries to the linker to use during linking. If desired, this flag can be used to disable linking with the standard libraries, and then individual libraries can be passed as Other Linker Flags (OTHER_LDFLAGS).
Type Boolean Default Value YES -
Llvm Target Triple Os Version LLVM_TARGET_TRIPLE_OS_VERSIONType String Default Value $(SWIFT_PLATFORM_TARGET_PREFIX)$($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Llvm Target Triple Suffix LLVM_TARGET_TRIPLE_SUFFIXType String -
Llvm Target Triple Vendor LLVM_TARGET_TRIPLE_VENDORType String Default Value apple -
Localizable Content Dir LOCALIZABLE_CONTENT_DIRType Path -
Localized String Macro Names LOCALIZED_STRING_MACRO_NAMESThe base names for NSLocalizedString-like macros or functions used to produce localized strings in source code. The default base names of NSLocalizedString and CFCopyLocalizedString are always considered, even if this setting is empty.
Type StringList Default Value NSLocalizedString CFCopyLocalizedString -
Localized String Swift UI Support LOCALIZED_STRING_SWIFTUI_SUPPORTWhen enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.
Type Boolean Default Value YES -
Locroot LOCROOTType Path -
Locsymroot LOCSYMROOTType Path -
Logname LOGNAMEType string -
Mach-O Type MACH_O_TYPEThis setting determines the format of the produced binary and how it can be linked when building other binaries. For information on binary types, see Building Mach-O Files in Mach-O Programming Topics.
-
Executable: Executables and standalone binaries and cannot be linked.
mh_execute -
Dynamic Library: Dynamic libraries are linked at build time and loaded automatically when needed.
mh_dylib -
Bundle: Bundle libraries are loaded explicitly at run time.
mh_bundle -
Static Library: Static libraries are linked at build time and loaded at execution time.
staticlib -
Relocatable Object File: Object files are single-module files that are linked at build time.
mh_object
Type Enumeration Values mh_executemh_dylibmh_bundlestaticlibmh_object
-
-
Mac Os X Version Max Allowed MAC_OS_X_VERSION_MAX_ALLOWEDType String -
Mac Os X Version Min Required MAC_OS_X_VERSION_MIN_REQUIREDType String -
Marketing Version MARKETING_VERSIONThis setting defines the user-visible version of the project. The value corresponds to the
CFBundleShortVersionStringkey in your app’s Info.plist.Type String -
Metal Library File Base METAL_LIBRARY_FILE_BASEType string Default Value default -
Metal Library Output Dir METAL_LIBRARY_OUTPUT_DIRType string Default Value $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH) -
Module Map File MODULEMAP_FILEThis is the project-relative path to the LLVM module map file that defines the module structure for the compiler. If empty, it will be automatically generated for appropriate products when Defines Module (DEFINES_MODULE) is enabled.
Type String -
Private Module Map File MODULEMAP_PRIVATE_FILEThis is the project-relative path to the LLVM module map file that defines the module structure for private headers.
Type String -
Module Cache Dir MODULE_CACHE_DIRAbsolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.
Type Path Default Value $(DERIVED_DATA_DIR)/ModuleCache.noindex -
Module Identifier MODULE_NAMEThis is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.
Type String -
Module Start Routine MODULE_STARTThis defines the name of the kernel module start routine. This is only used when building kernel extensions.
Type String -
Module Stop Routine MODULE_STOPThis defines the name of the kernel module stop routine. This is only used when building kernel extensions.
Type String -
Module Version MODULE_VERSIONThis is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.
Type String -
Native Arch NATIVE_ARCHIdentifies the architecture on which the build is being performed.
Type String -
Native Arch Actual NATIVE_ARCH_ACTUALType String -
Object File Dir OBJECT_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/Objects -
Intermediate Build Files Path OBJROOTThe path where intermediate files will be placed during a build. Intermediate files include generated sources, object files, etc. Shell script build phases can place and access files here, as well. Typically this path is not set per target, but is set per project or per user. By default, this is set to
$(PROJECT_DIR)/build.Type Path Default Value $(SYMROOT) -
Build Active Architecture Only ONLY_ACTIVE_ARCHIf enabled, only the active architecture is built. This setting will be ignored when building with a run destination which does not define a specific architecture, such as a ‘Generic Device’ run destination.
Type Boolean Default Value NO -
On Demand Resources Prefetch Order ON_DEMAND_RESOURCES_PREFETCH_ORDEROnce your app is installed, this defined a set of On Demand Resources tags that should be downloaded. These tags are downloaded after the initial installation of your application, and will be downloaded in the order the tags provided in the list from first to last.
Type StringList -
Order File ORDER_FILEThe path to a file that alters the order in which functions and data are laid out.
For each section in the output file, any symbol in that section that are specified in the order file is moved to the start of its section and laid out in the same order as in the order file. Order files are text files with one symbol name per line. Lines starting with a
#are comments. A symbol name may be optionally preceded with its object file leafname and a colon (for example,foo.o:_foo). This is useful for static functions/data that occur in multiple files. A symbol name may also be optionally preceded with the architecture (for example,ppc:_fooorppc:foo.o:_foo). This enables you to have one order file that works for multiple architectures. Literal C-strings may be ordered by quoting the string in the order file (for example,"Hello, world\n").Generally you should not specify an order file in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
Type String -
Other C Flags OTHER_CFLAGSSpace-separated list of additional flags to pass to the compiler for C and Objective-C files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particular C or Objective-C compiler flag.
Type StringList -
Other Code Signing Flags OTHER_CODE_SIGN_FLAGSA list of additional options to pass to
codesign(1).Type StringList -
Other C++ Flags OTHER_CPLUSPLUSFLAGSSpace-separated list of additional flags to pass to the compiler for C++ and Objective-C++ files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a C++ or Objective-C++ compiler flag.
Type StringList Default Value $(OTHER_CFLAGS) -
Other Linker Flags OTHER_LDFLAGSOptions defined in this setting are passed to invocations of the linker.
Type StringList -
Other Librarian Flags OTHER_LIBTOOLFLAGSOptions defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.
Type StringList -
Other Text-Based InstallAPI Flags OTHER_TAPI_FLAGSOptions defined in this setting are passed to invocations of the
Text-Based InstallAPItool.Type StringList -
Path Prefixes Excluded From Header Dependencies PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIESType PathList Default Value /usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks $(SYSTEM_DEVELOPER_DIR)/Headers $(SYSTEM_DEVELOPER_DIR)/SDKs $(SYSTEM_DEVELOPER_DIR)/Platforms -
Property List Output Encoding PLIST_FILE_OUTPUT_FORMATSpecifies the output encoding for property list files (
.plist). The output encodings can bebinaryorXML. By default, the output encoding will be unchanged from the input.Type Enumeration Values same-as-inputXMLbinary
Default Value same-as-input -
Precompiled Header Uses Files From Build Directory PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIRThis setting allows for better control of sharing precompiled prefix header files between projects. By default, Xcode assumes that the prefix header file may include header files from the build directory if the build directory is outside of the project directory. Xcode cannot determine this ahead of time since other projects may not have been built into the shared build directory at the time the information is needed.
If your prefix file never includes files from the build directory you may set this to
NOto improve sharing of precompiled headers. If the prefix does use files from a build directory that is inside your project directory, you may set this toYESto avoid unintended sharing that may result in build failures.Type Boolean Default Value YES -
Precomp Destination Dir PRECOMP_DESTINATION_DIRType Path Default Value $(TARGET_TEMP_DIR)/PrefixHeaders -
Single-Object Prelink Flags PRELINK_FLAGSAdditional flags to pass when performing a single-object prelink.
Type StringList -
Prelink libraries PRELINK_LIBSAdditional libraries to pass when performing a single-object prelink.
Type StringList -
Don't Dead-Strip Inits and Terms PRESERVE_DEAD_CODE_INITS_AND_TERMSActivating this setting, in combination with the Dead Code Stripping (DEAD_CODE_STRIPPING) (
-dead_strip) option, causes the-no_dead_strip_inits_and_termsflag to be passed told(1)viacc(1)to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned Dead Code Stripping (DEAD_CODE_STRIPPING) option.Type Boolean Default Value NO -
Private Headers Folder Path PRIVATE_HEADERS_FOLDER_PATHThe location to copy the private headers to during building, relative to the built products folder.
Type Path -
Product Bundle Identifier PRODUCT_BUNDLE_IDENTIFIERA string that uniquely identifies the bundle. The string should be in reverse DNS format using only alphanumeric characters (
A-Z,a-z,0-9), the dot (.), and the hyphen (-). This value is used as theCFBundleIdentifierin theInfo.plistof the built bundle.Type String -
Product Module Name PRODUCT_MODULE_NAMEThe name to use for the source code module constructed for this target, and which will be used to import the module in implementation source files. Must be a valid identifier.
Type String Default Value $(PRODUCT_NAME:c99extidentifier) -
Product Name PRODUCT_NAMEThis is the basename of the product generated by the target.
Type String -
Profiling Code PROFILING_CODEType Boolean Default Value NO -
Project Derived File Dir PROJECT_DERIVED_FILE_DIRType Path Default Value $(OBJROOT)/$(PROJECT_NAME).build/DerivedSources -
Project Dir PROJECT_DIRType Path Default Value $(SRCROOT) -
Project Name PROJECT_NAMEThe name of the current project.
Type string -
Project Temp Dir PROJECT_TEMP_DIRIdentifies the directory in which the project’s intermediate build files are placed. This directory is shared between all the targets defined by the project. Run Script build phases should generate intermediate build files in the directory identified by
DERIVED_FILE_DIR, not the location this build setting specifies.Type Path Default Value $(PROJECT_TEMP_ROOT)/$(PROJECT_NAME).build -
Project Temp Root PROJECT_TEMP_ROOTType Path Default Value $(OBJROOT) -
Provisioning Profile PROVISIONING_PROFILE_SPECIFIERMust contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with Development Team (DEVELOPMENT_TEAM) to fully specify provisioning profile.
Type ProvisioningProfileSpecifier -
Public Headers Folder Path PUBLIC_HEADERS_FOLDER_PATHThe location to copy the public headers to during building, relative to the built products folder.
Type Path -
Pwd PWDType path -
Reexported Framework Install Names REEXPORTED_FRAMEWORK_INSTALL_NAMESType StringList -
Re-Exported Framework Names REEXPORTED_FRAMEWORK_NAMESList of framework names that should have their symbols be reexported from the built library.
Type StringList -
Reexported Library Install Names REEXPORTED_LIBRARY_INSTALL_NAMESType PathList -
Re-Exported Library Names REEXPORTED_LIBRARY_NAMESList of library names that should have their symbols be reexported from the built library.
Type StringList -
Re-Exported Library Paths REEXPORTED_LIBRARY_PATHSList of library paths that should have their symbols be reexported from the built library.
Type PathList -
Remove Cvs From Resources REMOVE_CVS_FROM_RESOURCESSpecifies whether to remove
CVSdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Git From Resources REMOVE_GIT_FROM_RESOURCESSpecifies whether to remove
.gitdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Headers From Embedded Bundles REMOVE_HEADERS_FROM_EMBEDDED_BUNDLESType Boolean Default Value YES -
Remove Hg From Resources REMOVE_HG_FROM_RESOURCESSpecifies whether to remove
.hgdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Svn From Resources REMOVE_SVN_FROM_RESOURCESSpecifies whether to remove
SVNdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Resources Targeted Device Family RESOURCES_TARGETED_DEVICE_FAMILYOverrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
Type StringList -
Rez Executable REZ_EXECUTABLEType String -
Rez Search Paths REZ_SEARCH_PATHSThis is a list of paths to search for files with resource manager resources. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Scan All Source Files for Includes SCAN_ALL_SOURCE_FILES_FOR_INCLUDESActivating this setting will cause all source files to be scanned for includes (for example, of header files) when computing the dependency graph, in which case if an included file is changed then the including file will be rebuilt next time a target containing it is built. Normally only certain types of files, such as C-language source files, are scanned.
This setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.
Type Boolean Default Value NO -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Symbol Ordering Flags SECTORDER_FLAGSThese flags are typically used to specify options for ordering symbols within segments, for example the
-sectorderoption told.Generally you should not specify symbol ordering options in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
Type StringList -
Separate Strip SEPARATE_STRIPType Boolean Default Value NO -
Separately Edit Symbols SEPARATE_SYMBOL_EDITActivating this setting when the linked product’s symbols are to be edited will cause editing to occur via a separate invocation of
nmedit(1). Otherwise editing will occur during linking, if possible.Type Boolean Default Value NO -
Shell SHELLType path -
Skip Install SKIP_INSTALLIf enabled, don’t install built products even if deployment locations are active.
Type Boolean Default Value NO -
Source Root SOURCE_ROOTType Path Default Value $(SRCROOT) -
Srcroot SRCROOTIdentifies the directory containing the target’s source files.
Type Path Default Value . -
Strings File Output Encoding STRINGS_FILE_OUTPUT_ENCODINGSpecify the encoding to be used for Strings files (by default, the output encoding will be 16-bit Unicode). The value can be either an
NSStringEncoding, such as one of the numeric values recognized byNSString, or it can be an IANA character set name as understood byCFString. The operation will fail if the file cannot be converted to the specified encoding.Type Enumeration Values UTF-16UTF-8binary
Default Value UTF-16 -
Additional Strip Flags STRIPFLAGSAdditional flags to be passed when stripping the linked product of the build.
Type StringList -
Strip Bitcode From Copied Files STRIP_BITCODE_FROM_COPIED_FILESType Boolean Default Value NO -
Strip Linked Product STRIP_INSTALLED_PRODUCTIf enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.
Type Boolean -
Strip Style STRIP_STYLEThe level of symbol stripping to be performed on the linked product of the build. The default value is defined by the target’s product type.
-
All Symbols: Completely strips the binary, removing the symbol table and relocation information.
all, -s -
Non-Global Symbols: Strips non-global symbols, but saves external symbols.
non-global, -x -
Debugging Symbols: Strips debugging symbols, but saves local and global symbols.
debugging, -S
Type Enumeration Values allnon-globaldebugging
Default Value all -
-
Strip Swift Symbols STRIP_SWIFT_SYMBOLSAdjust the level of symbol stripping specified by the STRIP_STYLE setting so that when the linked product of the build is stripped, all Swift symbols will be removed.
Type Boolean Default Value YES -
Supported Platforms SUPPORTED_PLATFORMSThe list of supported platforms from which a base SDK can be used. This setting is used if the product can be built for multiple platforms using different SDKs.
Type stringlist -
Supports Text-Based InstallAPI SUPPORTS_TEXT_BASED_APIEnable to indicate that the target supports
Text-Based InstallAPI, which will enable its generation duringinstallbuilds.Type Boolean Default Value NO -
Swift Platform Target Prefix SWIFT_PLATFORM_TARGET_PREFIXType String -
Build Products Path SYMROOTThe path at which all products will be placed when performing a build. Typically this path is not set per target, but is set per-project or per-user. By default, this is set to
$(PROJECT_DIR)/build.Type Path Default Value build -
System Dext Install Path SYSTEM_DEXT_INSTALL_PATHType string Default Value $(SYSTEM_LIBRARY_DIR)/DriverExtensions -
System Framework Search Paths SYSTEM_FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing system frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Framework Search Paths”, except that the search paths are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system framework search paths, then the search paths are appended to any existing framework search paths defined in “Framework Search Paths”.
Type PathList -
System Header Search Paths SYSTEM_HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported system header files when compiling C, Objective-C, C++, or Objective-C++. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Header Search Paths”, except that headers are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system header search paths, then the search paths are appended to any existing header search paths defined in “Header Search Paths”.
Type PathList -
System Kext Install Path SYSTEM_KEXT_INSTALL_PATHType string Default Value $(SYSTEM_LIBRARY_DIR)/Extensions -
Text-Based InstallAPI Verification Mode TAPI_VERIFY_MODESelects the level of warnings and errors to report when building
Text-Based InstallAPI.Type Enumeration Values ErrorsOnlyErrorsAndWarningsPedantic
Default Value ErrorsOnly -
Target Build Dir TARGET_BUILD_DIRIdentifies the root of the directory hierarchy that contains the product’s files (no intermediate build files). Run Script build phases that operate on product files of the target that defines them should use the value of this build setting, but Run Script build phases that operate on product files of other targets should use
BUILT_PRODUCTS_DIRinstead.Type Path Default Value $(CONFIGURATION_BUILD_DIR)$(TARGET_BUILD_SUBPATH) -
Target Build Subpath TARGET_BUILD_SUBPATHType Path -
Target Name TARGET_NAMEThe name of the current target.
Type string -
Target Temp Dir TARGET_TEMP_DIRIdentifies the directory containing the target’s intermediate build files. Run Script build phases should place intermediate files at the location indicated by
DERIVED_FILE_DIR, not the directory identified by this build setting.Type Path Default Value $(CONFIGURATION_TEMP_DIR)/$(TARGET_NAME).build -
Temp Dir TEMP_DIRType Path Default Value $(TARGET_TEMP_DIR) -
Temp Files Dir TEMP_FILES_DIRType Path Default Value $(TEMP_FILE_DIR) -
Temp File Dir TEMP_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR) -
Temp Root TEMP_ROOTType Path Default Value $(OBJROOT) -
Test Host TEST_HOSTPath to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.
Type String -
Toolchains TOOLCHAINSType StringList -
Treat missing baselines as test failures TREAT_MISSING_BASELINES_AS_TEST_FAILURESWhen running tests that measure performance via
XCTestCase, report missing baselines as test failures.Type Boolean Default Value NO -
Unexported Symbols File UNEXPORTED_SYMBOLS_FILEA project-relative path to a file that lists the symbols not to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String -
User USERType string -
User Header Search Paths USER_HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported user header files (those headers listed in quotes) when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. See Always Search User Paths (Deprecated) (ALWAYS_SEARCH_USER_PATHS) for more details on how this setting is used. If the compiler doesn’t support the concept of user headers, then the search paths are prepended to the any existing header search paths defined in Header Search Paths (HEADER_SEARCH_PATHS).
Type PathList -
Use Header Maps USE_HEADERMAPEnable the use of Header Maps, which provide the compiler with a mapping from textual header names to their locations, bypassing the normal compiler header search path mechanisms. This allows source code to include headers from various locations in the file system without needing to update the header search path build settings.
Type Boolean Default Value YES -
Use Header Symlinks USE_HEADER_SYMLINKSType Boolean Default Value NO -
Use Llvm Target Triples USE_LLVM_TARGET_TRIPLESType Boolean Default Value YES -
Use Llvm Target Triples For Clang USE_LLVM_TARGET_TRIPLES_FOR_CLANGType Boolean Default Value $(USE_LLVM_TARGET_TRIPLES) -
Use Llvm Target Triples For Ld USE_LLVM_TARGET_TRIPLES_FOR_LDType Boolean Default Value $(USE_LLVM_TARGET_TRIPLES) -
Use Llvm Target Triples For Tapi USE_LLVM_TARGET_TRIPLES_FOR_TAPIType Boolean Default Value $(USE_LLVM_TARGET_TRIPLES) -
Validate Workspace VALIDATE_WORKSPACEIf enabled, perform validation checks on the workspace configuration as part of the build process.
Type Enumeration Values YESNOYES_ERROR
Default Value NO -
Validate Workspace - Ignored Frameworks VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKSList of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.
Type StringList -
Valid Architectures VALID_ARCHSA space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in Architectures (ARCHS), and the resulting set is built. This allows individual targets to opt out of building for particular architectures. If the resulting set of architectures is empty, no executable will be produced.
Type StringList -
Versioning System VERSIONING_SYSTEMSelects the process used for version-stamping generated files.
-
None: Use no versioning system.
-
Apple Generic: Use the current project version setting.
apple-generic
Type Enumeration Values apple-generic
-
-
Versions Folder Path VERSIONS_FOLDER_PATHType string -
Versioning Username VERSION_INFO_BUILDERThis defines a reference to the user performing a build to be included in the generated Apple Generic Versioning stub. Defaults to the value of the
USERenvironment variable.Type String Default Value $(USER) -
Generated Versioning Variables VERSION_INFO_EXPORT_DECLThis defines a prefix string for the version info symbol declaration in the generated Apple Generic Versioning stub. This can be used, for example, to add an optional
exportkeyword to the version symbol declaration. This should rarely be changed.Type String -
Generated Versioning Source Filename VERSION_INFO_FILEUsed to specify a name for the source file that will be generated by Apple Generic Versioning and compiled into your product. By default, this is set to
$(PRODUCT_NAME)_vers.c.Type String Default Value $(PRODUCT_NAME)_vers.c -
Versioning Name Prefix VERSION_INFO_PREFIXUsed as a prefix for the name of the version info symbol in the generated versioning source file. If you prefix your exported symbols you will probably want to set this to the same prefix.
Type String -
Versioning Name Suffix VERSION_INFO_SUFFIXUsed as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.
Type String -
Warning Linker Flags WARNING_LDFLAGSThese flags are passed with linker invocations, and by default give the
-no_arch_warningsflag to the linker to avoid many warnings being generated during multi-architecture builds.Type StringList -
Wrapper Extension WRAPPER_EXTENSIONThe extension used for product wrappers, which has a default value based on the product type.
Type String -
Wrap Asset Packs In Separate Directories WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIESType Boolean Default Value NO -
Xcode Developer Dir Path XCODE_DEVELOPER_DIR_PATHType path
Native Build System
-
Additional SDKs ADDITIONAL_SDKSThe locations of any sparse SDKs that should be layered on top of the one specified by Base SDK (SDKROOT). If more than one SDK is listed, the first one has highest precedence. Every SDK specified in this setting should be a “sparse” SDK, for example, not an SDK for an entire macOS release.
Type StringList -
Always Search User Paths (Deprecated) ALWAYS_SEARCH_USER_PATHSThis setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.
If enabled, both
#include <header.h>-style and#include "header.h"-style directives search the paths in User Header Search Paths (USER_HEADER_SEARCH_PATHS) before Header Search Paths (HEADER_SEARCH_PATHS). As a consequence, user headers, such as your ownString.hheader, have precedence over system headers when using#include <header.h>. This is done using the-iquoteflag for the paths provided in User Header Search Paths (USER_HEADER_SEARCH_PATHS). If disabled and your compiler fully supports separate user paths, user headers are only accessible with#include "header.h"-style preprocessor directives.For backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.
Type Boolean Default Value YES -
Always Use Separate Headermaps ALWAYS_USE_SEPARATE_HEADERMAPSType Boolean Default Value NO -
Convert Copied Files APPLY_RULES_IN_COPY_FILESEnabling this setting will cause files in the target’s Copy Files build phases to be processed by build rules. For example, property list files (
.plist) and strings files will be converted as specified by Property List Output Encoding (PLIST_FILE_OUTPUT_FORMAT) and Strings File Output Encoding (STRINGS_FILE_OUTPUT_ENCODING), respectively.Type Boolean Default Value NO -
Cchroot CCHROOTType Path Default Value $(CACHE_ROOT) -
Chmod CHMODType Path Default Value /bin/chmod -
Chown CHOWNType Path Default Value /usr/sbin/chown -
Class File Dir CLASS_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/JavaClasses -
Clean Precomps CLEAN_PRECOMPSType Boolean Default Value YES -
Codesigning Folder Path CODESIGNING_FOLDER_PATHType Path Default Value $(TARGET_BUILD_DIR)/$(FULL_PRODUCT_NAME) -
Combine Hidpi Images COMBINE_HIDPI_IMAGESType Boolean Default Value NO -
Composite Sdk Dirs COMPOSITE_SDK_DIRSType PathList Default Value $(OBJROOT)/CompositeSDKs -
Contents Folder Path CONTENTS_FOLDER_PATHSpecifies the directory inside the generated bundle that contains the product’s files.
Type Path -
Copy Resources From Static Frameworks COPY_RESOURCES_FROM_STATIC_FRAMEWORKSType Boolean Default Value YES -
Cp CPType Path Default Value /bin/cp -
Create Info.plist Section in Binary CREATE_INFOPLIST_SECTION_IN_BINARYEnabling this setting will create a section in the product’s linked binary containing the processed
Info.plistfile for the target. This setting only applies to command-line tool targets.Type Boolean Default Value NO -
Current Arch CURRENT_ARCHThe name of the active architecture being processed.
Type String Default Value $(arch) -
Current Project Version CURRENT_PROJECT_VERSIONThis setting defines the current version of the project. The value must be a integer or floating point number, such as
57or365.8.Type String -
Current Variant CURRENT_VARIANTThe name of the active variant being processed.
Type String Default Value $(variant) -
Debug Information Format DEBUG_INFORMATION_FORMATThe type of debug information to produce.
-
DWARF: Object files and linked products will use DWARF as the debug information format.
dwarf -
DWARF with dSYM File: Object files and linked products will use DWARF as the debug information format, and Xcode will also produce a dSYM file containing the debug information from the individual object files (except that a dSYM file is not needed and will not be created for static library or object file products).
dwarf-with-dsym
Type Enumeration Values dwarfdwarf-with-dsym
Default Value dwarf -
-
Default Compiler DEFAULT_COMPILERType String -
Deployment Location DEPLOYMENT_LOCATIONIf enabled, built products are placed in their installed locations in addition to the built products folder.
Type Boolean Default Value NO -
Derived Files Dir DERIVED_FILES_DIRType Path Default Value $(DERIVED_FILE_DIR) -
Derived File Dir DERIVED_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/DerivedSources -
Derived Paths DERIVED_PATHSType PathList -
Documentation Folder Path DOCUMENTATION_FOLDER_PATHIdentifies the directory that contains the bundle’s documentation files.
Type Path -
Don't Force Info.plist Generation DONT_GENERATE_INFOPLIST_FILEIf enabled, don’t automatically generate an Info.plist file for wrapped products when the Info.plist File (INFOPLIST_FILE) build setting is empty.
Type Boolean Default Value NO -
Dwarf Dsym File Name DWARF_DSYM_FILE_NAMEType String Default Value $(FULL_PRODUCT_NAME).dSYM -
Dwarf Dsym File Should Accompany Product DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCTType bool Default Value NO -
Dwarf Dsym Folder Path DWARF_DSYM_FOLDER_PATHType Path Default Value $(CONFIGURATION_BUILD_DIR) -
Compatibility Version DYLIB_COMPATIBILITY_VERSIONDetermines the compatibility version of the resulting library, bundle, or framework binary. See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries.
Type String -
Current Library Version DYLIB_CURRENT_VERSIONThis setting defines the current version of any framework built by the project. As with Current Project Version (CURRENT_PROJECT_VERSION), the value must be an integer or floating point number, such as
57or365.8. By default, it is set to$(CURRENT_PROJECT_VERSION). See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries.Type String -
Sub-Directories to Exclude in Recursive Searches EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIESThis is a list of
fnmatch()-style patterns of file or directory names to exclude when performing a recursive search. By default, this is set to*.nib *.lproj *.framework *.gch *.xcode (*) .DS_Store CVS .svn .git .hg. Normally, if you override this value you should include the default values via the$(inherited)macro.Type StringList Default Value *.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj -
Executables Folder Path EXECUTABLES_FOLDER_PATHIdentifies the directory that contains additional binary files.
Type Path -
Executable Extension EXECUTABLE_EXTENSIONThis is the extension used for the executable product generated by the target, which has a default value based on the product type.
Type String -
Executable Folder Path EXECUTABLE_FOLDER_PATHIdentifies the directory that contains the binary the target builds.
Type Path -
Executable Name EXECUTABLE_NAMESpecifies the name of the binary the target produces.
Type String -
Executable Path EXECUTABLE_PATHSpecifies the path to the binary the target produces within its bundle.
Type Path -
Executable Prefix EXECUTABLE_PREFIXThe prefix used for the executable product generated by the target, which has a default value based on the product type.
Type String -
Executable Suffix EXECUTABLE_SUFFIXSpecifies the suffix of the binary filename, including the character that separates the extension from the rest of the bundle name.
Type String -
Executable Variant Suffix EXECUTABLE_VARIANT_SUFFIXType String -
Fixed Files Dir FIXED_FILES_DIRType Path Default Value $(TARGET_TEMP_DIR)/FixedFiles -
Frameworks Folder Path FRAMEWORKS_FOLDER_PATHSpecifies the directory that contains the product’s embedded frameworks.
Type Path -
Framework Search Paths FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. Paths are delimited by whitespace, so any paths with spaces in them must be properly quoted.
Type PathList -
Gcc Pfe File C Dialects GCC_PFE_FILE_C_DIALECTSType StringList Default Value c objective-c c++ objective-c++ -
Precompile Prefix Header GCC_PRECOMPILE_PREFIX_HEADERGenerates a precompiled header for the prefix header, which should reduce overall build times.
Precompiling the prefix header will be most effective if the contents of the prefix header or any file it includes change rarely. If the contents of the prefix header or any file it includes change frequently, there may be a negative impact to overall build time.
Type Boolean Default Value $(PRECOMPILE_PREFIX_HEADER) -
Prefix Header GCC_PREFIX_HEADERImplicitly include the named header. The path given should either be a project relative path or an absolute path.
Type Path Default Value $(PREFIX_HEADER) -
Treat Warnings as Errors GCC_TREAT_WARNINGS_AS_ERRORSEnabling this option causes all warnings to be treated as errors.
Type Boolean Default Value NO -
Compiler for C/C++/Objective-C GCC_VERSIONThe compiler to use for C, C++, and Objective-C.
Type CompilerVersion -
Gcc Version Identifier GCC_VERSION_IDENTIFIERType String Default Value $(GCC_VERSION:identifier) -
Force Package Info Generation GENERATE_PKGINFO_FILEForces the
PkgInfofile to be written to wrapped products even if this file is not expected.Type Boolean Default Value NO -
Generate Profiling Code GENERATE_PROFILING_CODEActivating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with
gprof(1).Type Boolean Default Value NO -
Global Cflags GLOBAL_CFLAGSType StringList -
Header Search Paths HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Iconv ICONVType Path Default Value /usr/bin/iconv -
Sub-Directories to Include in Recursive Searches INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIESThis is a list of
fnmatch()-style patterns of file or directory names to include when performing a recursive search. By default, this is empty and is only customized when you want to provide exceptions to the list of filename patterns provided in Sub-Directories to Exclude in Recursive Searches (EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES).Type StringList -
Expand Build Settings in Info.plist File INFOPLIST_EXPAND_BUILD_SETTINGSExpand build settings in the
Info.plistfile.Type Boolean Default Value YES -
Info.plist File INFOPLIST_FILEThe project-relative path to the property list file that contains the
Info.plistinformation used by bundles. For details on information property list files, see Information Property List Files in Runtime Configuration Guidelines.Type Path -
Info.plist Output Encoding INFOPLIST_OUTPUT_FORMATSpecifies the output encoding for the output
Info.plist. The output encodings can bebinaryorXML. By default, the output encoding will be unchanged from the input.Type Enumeration Values same-as-inputXMLbinary
Default Value same-as-input -
Infoplist Path INFOPLIST_PATHSpecifies the path to the bundle’s information property list file.
Type Path -
Infostrings Path INFOSTRINGS_PATHSpecifies the file that contains the bundle’s localized strings file.
Type Path -
Initialization Routine INIT_ROUTINEThis is the name of the routine to use for initialization.
Type String -
Javac Default Flags JAVAC_DEFAULT_FLAGSType StringList Default Value -J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8 -
Java Folder Path JAVA_FOLDER_PATHType Path -
Jikes Default Flags JIKES_DEFAULT_FLAGSType StringList Default Value +E +OLDCSO -
Dynamic Library Allowable Clients LD_DYLIB_ALLOWABLE_CLIENTSThis setting restricts the clients allowed to link a dylib by passing
-allowable_clientto the linker for each supplied value.Type StringList -
Ld Flags LD_FLAGSType StringList -
Lex LEXType Path Default Value lex -
Other Lex Flags LEXFLAGSSpace-separated list of additional flags to pass to
lex. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for alexflag.Type StringList -
Library Search Paths LIBRARY_SEARCH_PATHSThis is a list of paths to folders to be searched by the linker for libraries used by the product. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Linker Library Flags LINKER_LIBRARY_FLAGSType StringList -
Localized Resources Folder Path LOCALIZED_RESOURCES_FOLDER_PATHType Path -
Macos Creator MACOS_CREATORType String -
Macos Creator Arg MACOS_CREATOR_ARGType String -
Macos Type MACOS_TYPEType String -
Macos Type Arg MACOS_TYPE_ARGType String -
Marketing Version MARKETING_VERSIONThis setting defines the user-visible version of the project. The value corresponds to the
CFBundleShortVersionStringkey in your app’s Info.plist.Type String -
Modules Folder Path MODULES_FOLDER_PATHSpecifies the directory that contains the product’s Clang module maps and Swift module content.
Type Path -
No Common NO_COMMONType Boolean Default Value YES -
Object File Dir OBJECT_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR)/Objects -
Optimization Cflags OPTIMIZATION_CFLAGSType StringList -
Order File ORDER_FILEThe path to a file that alters the order in which functions and data are laid out.
For each section in the output file, any symbol in that section that are specified in the order file is moved to the start of its section and laid out in the same order as in the order file. Order files are text files with one symbol name per line. Lines starting with a
#are comments. A symbol name may be optionally preceded with its object file leafname and a colon (for example,foo.o:_foo). This is useful for static functions/data that occur in multiple files. A symbol name may also be optionally preceded with the architecture (for example,ppc:_fooorppc:foo.o:_foo). This enables you to have one order file that works for multiple architectures. Literal C-strings may be ordered by quoting the string in the order file (for example,"Hello, world\n").Generally you should not specify an order file in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
Type String -
Osac OSACType Path Default Value /usr/bin/osacompile -
Other Linker Flags OTHER_LDFLAGSOptions defined in this setting are passed to invocations of the linker.
Type StringList -
Other Librarian Flags OTHER_LIBTOOLFLAGSOptions defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.
Type StringList -
Other MiG Flags OTHER_MIGFLAGSSpace-separated list of additional flags to pass to
mig. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for amigflag.Type StringList -
Other Osaflags OTHER_OSAFLAGSType StringList -
Other Precomp Cflags OTHER_PRECOMP_CFLAGSType StringList -
Other Resmergerflags OTHER_RESMERGERFLAGSType StringList -
Other Rez Flags OTHER_REZFLAGSSpace-separated list of additional flags to pass to the
Rezcompiler. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particularRezflag.Type StringList -
Package Type PACKAGE_TYPEUniform type identifier. Identifies the type of the product the target builds. Some products may be made up of a single binary or archive. Others may comprise several files, which are grouped under a single directory. These container directories are known as bundles.
Type String -
Pascal Strings PASCAL_STRINGSType Boolean Default Value YES -
Pbdevelopmentplist Path PBDEVELOPMENTPLIST_PATHType Path -
Pfe File C Dialects PFE_FILE_C_DIALECTSType StringList -
Pkginfo Path PKGINFO_PATHType Path -
Property List Output Encoding PLIST_FILE_OUTPUT_FORMATSpecifies the output encoding for property list files (
.plist). The output encodings can bebinaryorXML. By default, the output encoding will be unchanged from the input.Type Enumeration Values same-as-inputXMLbinary
Default Value same-as-input -
Plugins Folder Path PLUGINS_FOLDER_PATHSpecifies the directory that contains the product’s plugins.
Type Path -
Precompile Prefix Header PRECOMPILE_PREFIX_HEADERType Boolean -
Precompiled Header Uses Files From Build Directory PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIRThis setting allows for better control of sharing precompiled prefix header files between projects. By default, Xcode assumes that the prefix header file may include header files from the build directory if the build directory is outside of the project directory. Xcode cannot determine this ahead of time since other projects may not have been built into the shared build directory at the time the information is needed.
If your prefix file never includes files from the build directory you may set this to
NOto improve sharing of precompiled headers. If the prefix does use files from a build directory that is inside your project directory, you may set this toYESto avoid unintended sharing that may result in build failures.Type Boolean Default Value YES -
Precomp Destination Dir PRECOMP_DESTINATION_DIRType Path Default Value $(TARGET_TEMP_DIR)/PrefixHeaders -
Prefix Cflag Base PREFIX_CFLAG_BASEType String -
Prefix Flags PREFIX_FLAGSType StringList -
Prefix Header PREFIX_HEADERType Path -
Prefix Reference PREFIX_REFERENCEType String -
Private Headers Folder Path PRIVATE_HEADERS_FOLDER_PATHThe location to copy the private headers to during building, relative to the built products folder.
Type Path -
Product Type PRODUCT_TYPEType String -
Public Headers Folder Path PUBLIC_HEADERS_FOLDER_PATHThe location to copy the public headers to during building, relative to the built products folder.
Type Path -
Recursive Search Paths Follow Symlinks RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKSType Boolean Default Value YES -
Remove Headers From Embedded Bundles REMOVE_HEADERS_FROM_EMBEDDED_BUNDLESType Boolean Default Value YES -
Resource Rules Plist Path RESOURCE_RULES_PLIST_PATHType Path -
Retain Raw Binaries RETAIN_RAW_BINARIESSpecifies whether to keep copies of unstripped binaries available.
Type Boolean Default Value $(INSTALLED_PRODUCT_ASIDES) -
Rez Collector Dir REZ_COLLECTOR_DIRSpecifies the directory in which the collected Resource Manager resources generated by
ResMergerare stored before they are added to the product.Type Path Default Value $(TARGET_TEMP_DIR)/ResourceManagerResources -
Rez Objects Dir REZ_OBJECTS_DIRSpecifies the directory in which compiled Resource Manager resources generated by
Rezare stored before they are collected usingResMerger.Type Path Default Value $(REZ_COLLECTOR_DIR)/Objects -
Rez Search Paths REZ_SEARCH_PATHSThis is a list of paths to search for files with resource manager resources. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Scripts Folder Path SCRIPTS_FOLDER_PATHSpecifies the directory that contains the product’s scripts.
Type Path -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Symbol Ordering Flags SECTORDER_FLAGSThese flags are typically used to specify options for ordering symbols within segments, for example the
-sectorderoption told.Generally you should not specify symbol ordering options in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
Type StringList -
Sed SEDType Path Default Value /usr/bin/sed -
Set Dir Mode Owner Group SET_DIR_MODE_OWNER_GROUPType Boolean Default Value YES -
Set File Mode Owner Group SET_FILE_MODE_OWNER_GROUPType Boolean Default Value NO -
Shallow Bundle SHALLOW_BUNDLEType Boolean Default Value NO -
Strings File Output Encoding STRINGS_FILE_OUTPUT_ENCODINGSpecify the encoding to be used for Strings files (by default, the output encoding will be 16-bit Unicode). The value can be either an
NSStringEncoding, such as one of the numeric values recognized byNSString, or it can be an IANA character set name as understood byCFString. The operation will fail if the file cannot be converted to the specified encoding.Type Enumeration Values UTF-16UTF-8binary
Default Value UTF-16 -
Additional Strip Flags STRIPFLAGSAdditional flags to be passed when stripping the linked product of the build.
Type StringList -
Strip Linked Product STRIP_INSTALLED_PRODUCTIf enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.
Type Boolean -
Supported Platforms SUPPORTED_PLATFORMSThe list of supported platforms from which a base SDK can be used. This setting is used if the product can be built for multiple platforms using different SDKs.
Type stringlist -
Symbol Header SYMBOL_HEADERType Path -
Temp File Dir TEMP_FILE_DIRType Path Default Value $(TARGET_TEMP_DIR) -
Unlocalized Resources Folder Path UNLOCALIZED_RESOURCES_FOLDER_PATHSpecifies the directory that contains the product’s unlocalized resources.
Type Path -
Unstripped Product UNSTRIPPED_PRODUCTType Boolean Default Value NO -
User Header Search Paths USER_HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported user header files (those headers listed in quotes) when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. See Always Search User Paths (Deprecated) (ALWAYS_SEARCH_USER_PATHS) for more details on how this setting is used. If the compiler doesn’t support the concept of user headers, then the search paths are prepended to the any existing header search paths defined in Header Search Paths (HEADER_SEARCH_PATHS).
Type PathList -
Use Dynamic No Pic USE_DYNAMIC_NO_PICType Boolean Default Value YES -
Use Header Maps USE_HEADERMAPEnable the use of Header Maps, which provide the compiler with a mapping from textual header names to their locations, bypassing the normal compiler header search path mechanisms. This allows source code to include headers from various locations in the file system without needing to update the header search path build settings.
Type Boolean Default Value YES -
Use Header Symlinks USE_HEADER_SYMLINKSType Boolean Default Value NO -
Validate Built Product VALIDATE_PRODUCTIf enabled, perform validation checks on the product as part of the build process.
Type Boolean Default Value NO -
Verbose Pbxcp VERBOSE_PBXCPSpecifies whether the target’s Copy Files build phases generate additional information when copying files.
Type Boolean Default Value NO -
Versioning Stub VERSIONING_STUBType String -
Versioning System VERSIONING_SYSTEMSelects the process used for version-stamping generated files.
-
None: Use no versioning system.
-
Apple Generic: Use the current project version setting.
apple-generic
Type Enumeration Values apple-generic
-
-
Versionplist Path VERSIONPLIST_PATHType Path -
Versioning Username VERSION_INFO_BUILDERThis defines a reference to the user performing a build to be included in the generated Apple Generic Versioning stub. Defaults to the value of the
USERenvironment variable.Type String Default Value $(USER) -
Generated Versioning Variables VERSION_INFO_EXPORT_DECLThis defines a prefix string for the version info symbol declaration in the generated Apple Generic Versioning stub. This can be used, for example, to add an optional
exportkeyword to the version symbol declaration. This should rarely be changed.Type String -
Generated Versioning Source Filename VERSION_INFO_FILEUsed to specify a name for the source file that will be generated by Apple Generic Versioning and compiled into your product. By default, this is set to
$(PRODUCT_NAME)_vers.c.Type String Default Value $(PRODUCT_NAME)_vers.c -
Versioning Name Prefix VERSION_INFO_PREFIXUsed as a prefix for the name of the version info symbol in the generated versioning source file. If you prefix your exported symbols you will probably want to set this to the same prefix.
Type String -
Version Info String VERSION_INFO_STRINGType String Default Value "@(#)PROGRAM:$(PRODUCT_NAME) PROJECT:$(PROJECT_NAME)-$(CURRENT_PROJECT_VERSION)" -
Versioning Name Suffix VERSION_INFO_SUFFIXUsed as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.
Type String -
Warning Linker Flags WARNING_LDFLAGSThese flags are passed with linker invocations, and by default give the
-no_arch_warningsflag to the linker to avoid many warnings being generated during multi-architecture builds.Type StringList -
Wrapper Extension WRAPPER_EXTENSIONThe extension used for product wrappers, which has a default value based on the product type.
Type String -
Wrapper Name WRAPPER_NAMESpecifies the filename, including the appropriate extension, of the product bundle.
Type String -
Wrapper Prefix WRAPPER_PREFIXType String -
Wrapper Suffix WRAPPER_SUFFIXSpecifies the suffix of the product bundle name, including the character that separates the extension from the rest of the bundle name.
Type String -
Xpcservices Folder Path XPCSERVICES_FOLDER_PATHType Path Default Value $(CONTENTS_FOLDER_PATH)/XPCServices -
Yacc YACCType Path Default Value yacc -
Other Yacc Flags YACCFLAGSSpace-separated list of additional flags to pass to
yacc. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for ayaccflag.Type StringList
Link Executables
Link executable using Apple Mach-O Linker (ld)
-
All Other Ldflags ALL_OTHER_LDFLAGSType StringList Default Value $(LD_FLAGS) $(SECTORDER_FLAGS) $(OTHER_LDFLAGS) $(OTHER_LDFLAGS_$(variant)) $(OTHER_LDFLAGS_$(arch)) $(OTHER_LDFLAGS_$(variant)_$(arch)) $(PRODUCT_SPECIFIC_LDFLAGS) -
Alternate Linker ALTERNATE_LINKERType String -
Bundle Loader BUNDLE_LOADERSpecifies the executable that will load the bundle output file being linked. Undefined symbols from the bundle are checked against the specified executable as if it is one of the dynamic libraries the bundle was linked with.
Type String -
Clang Arc Migrate Dir CLANG_ARC_MIGRATE_DIRType Path -
Clang Arc Migrate Precheck CLANG_ARC_MIGRATE_PRECHECKType Enumeration Values donothingprecheck
Default Value donothing -
Dead Code Stripping DEAD_CODE_STRIPPINGActivating this setting causes the
-dead_stripflag to be passed told(1)viacc(1)to turn on dead code stripping.Type Boolean Default Value NO -
Exported Symbols File EXPORTED_SYMBOLS_FILEThis is a project-relative path to a file that lists the symbols to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String -
Framework Search Paths FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. Paths are delimited by whitespace, so any paths with spaces in them must be properly quoted.
Type PathList -
Generate Profiling Code GENERATE_PROFILING_CODEActivating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with
gprof(1).Type Boolean Default Value NO -
Initialization Routine INIT_ROUTINEThis is the name of the routine to use for initialization.
Type String -
Preserve Private External Symbols KEEP_PRIVATE_EXTERNSActivating this setting will preserve private external symbols, rather than turning them into static symbols. This setting is also respected when performing a single-object prelink.
Type Boolean Default Value NO -
Ld Additional Deployment Target Flags LD_ADDITIONAL_DEPLOYMENT_TARGET_FLAGSType StringList -
Ld Bitcode Generation Mode LD_BITCODE_GENERATION_MODEType Enumeration Values markerbitcode
Default Value $(BITCODE_GENERATION_MODE) -
Ld Debug Variant LD_DEBUG_VARIANTType Boolean Default Value YES -
Path to Linker Dependency Info File LD_DEPENDENCY_INFO_FILEThis setting defines the path to which the linker should emit information about what files it used as inputs and generated. Xcode uses this information for its dependency tracking. Setting the value of this setting to empty will disable passing this option to the linker.
Type Path Default Value $(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/$(PRODUCT_NAME)_dependency_info.dat -
Ld Deployment Target LD_DEPLOYMENT_TARGETType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Ld Dont Run Deduplication LD_DONT_RUN_DEDUPLICATIONType Boolean Default Value YES -
Dynamic Library Allowable Clients LD_DYLIB_ALLOWABLE_CLIENTSThis setting restricts the clients allowed to link a dylib by passing
-allowable_clientto the linker for each supplied value.Type StringList -
Dynamic Library Install Name LD_DYLIB_INSTALL_NAMESets an internal
install path(LC_ID_DYLIB) in a dynamic library. Any clients linked against the library will record that path as the waydyldshould locate this library. If this option is not specified, then the-opath will be used. This setting is ignored when building any product other than a dynamic library. See Dynamic Library Programming Topics.Type Path -
Ld Export Global Symbols LD_EXPORT_GLOBAL_SYMBOLSType Boolean Default Value NO -
Ld Final Output File LD_FINAL_OUTPUT_FILEType Path Default Value $(INSTALL_PATH)/$(EXECUTABLE_PATH) -
Ld Generate Bitcode Symbol Map LD_GENERATE_BITCODE_SYMBOL_MAPType Boolean Default Value $(HIDE_BITCODE_SYMBOLS) -
Write Link Map File LD_GENERATE_MAP_FILEActivating this setting will cause the linker to write a map file to disk, which details all symbols and their addresses in the output image. The path to the map file is defined by the Path to Link Map File (LD_MAP_FILE_PATH) setting.
Type Boolean Default Value NO -
Ld Hide Bitcode Symbols LD_HIDE_BITCODE_SYMBOLSType Boolean Default Value $(HIDE_BITCODE_SYMBOLS) -
Ld Lto Object File LD_LTO_OBJECT_FILEType Path Default Value $(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/$(PRODUCT_NAME)_lto.o -
Path to Link Map File LD_MAP_FILE_PATHThis setting defines the path to the map file written by the linker when the Write Link Map File (LD_GENERATE_MAP_FILE) setting is activated. By default, a separate file will be written for each architecture and build variant, and these will be generated in the Intermediates directory for the target whose product is being linked.
Type Path Default Value $(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt -
Generate Position-Dependent Executable LD_NO_PIEActivating this setting will prevent Xcode from building a main executable that is position independent (PIE). When targeting macOS 10.7 or later, PIE is the default for main executables, so activating this setting will change that behavior. When targeting OS X 10.6 or earlier, or when building for i386, PIE is not the default, so activating this setting does nothing.
You cannot create a PIE from
.ofiles compiled with-mdynamic-no-pic. Using PIE means the codegen is less optimal, but the address randomization adds some security.Type bool Default Value NO -
Ld Objc Abi Version LD_OBJC_ABI_VERSIONType Enumeration Values 12
Default Value $(OBJC_ABI_VERSION) -
Quote Linker Arguments LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVERThis setting controls whether arguments to the linker should be quoted using
-Xlinker. By default, Xcode invokes the linker by invoking the driver of the compiler used to build the source files in the target, and passing-Xlinkerto quote arguments will cause the compiler driver to pass them through to the linker (rather than trying to evaluate them within the driver). By default, this setting is enabled. Disabling it will cause Xcode to not use-Xlinkerto pass arguments to the linker. Disabling this setting is useful if the target has instructed Xcode to use an alternate linker (for example, by setting theLDsetting to the path to another linker) and that alternate linker does not recognize-Xlinker.Type Boolean Default Value YES -
Runpath Search Paths LD_RUNPATH_SEARCH_PATHSThis is a list of paths to be added to the
runpathsearch path list for the image being created. At runtime,dylduses therunpathwhen searching for dylibs whose load path begins with@rpath/. See Dynamic Library Programming Topics.Type StringList -
Ld Target Triple Archs LD_TARGET_TRIPLE_ARCHSType StringList Default Value $(CURRENT_ARCH) -
Ld Target Triple Variants LD_TARGET_TRIPLE_VARIANTSType StringList -
Ld Thread Sanitizer LD_THREAD_SANITIZERType Boolean Default Value $(ENABLE_THREAD_SANITIZER) -
Ld Verify Bitcode LD_VERIFY_BITCODEType Boolean Default Value YES -
Library Search Paths LIBRARY_SEARCH_PATHSThis is a list of paths to folders to be searched by the linker for libraries used by the product. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Display Mangled Names LINKER_DISPLAYS_MANGLED_NAMESActivating this setting causes the linker to display mangled names for C++ symbols. Normally, this is not recommended, but turning it on can help to diagnose and solve C++ link errors.
Type Boolean Default Value NO -
Link With Standard Libraries LINK_WITH_STANDARD_LIBRARIESWhen this setting is enabled, the compiler driver will automatically pass its standard libraries to the linker to use during linking. If desired, this flag can be used to disable linking with the standard libraries, and then individual libraries can be passed as Other Linker Flags (OTHER_LDFLAGS).
Type Boolean Default Value YES -
Mach-O Type MACH_O_TYPEThis setting determines the format of the produced binary and how it can be linked when building other binaries. For information on binary types, see Building Mach-O Files in Mach-O Programming Topics.
-
Executable: Executables and standalone binaries and cannot be linked.
mh_execute -
Dynamic Library: Dynamic libraries are linked at build time and loaded automatically when needed.
mh_dylib -
Bundle: Bundle libraries are loaded explicitly at run time.
mh_bundle -
Static Library: Static libraries are linked at build time and loaded at execution time.
staticlib -
Relocatable Object File: Object files are single-module files that are linked at build time.
mh_object
Type Enumeration Values mh_executemh_dylibmh_bundlestaticlibmh_object
-
-
Order File ORDER_FILEThe path to a file that alters the order in which functions and data are laid out.
For each section in the output file, any symbol in that section that are specified in the order file is moved to the start of its section and laid out in the same order as in the order file. Order files are text files with one symbol name per line. Lines starting with a
#are comments. A symbol name may be optionally preceded with its object file leafname and a colon (for example,foo.o:_foo). This is useful for static functions/data that occur in multiple files. A symbol name may also be optionally preceded with the architecture (for example,ppc:_fooorppc:foo.o:_foo). This enables you to have one order file that works for multiple architectures. Literal C-strings may be ordered by quoting the string in the order file (for example,"Hello, world\n").Generally you should not specify an order file in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
Type String -
Other Ldrflags OTHER_LDRFLAGSType StringList Default Value $(OTHER_LDFLAGS) -
Don't Dead-Strip Inits and Terms PRESERVE_DEAD_CODE_INITS_AND_TERMSActivating this setting, in combination with the Dead Code Stripping (DEAD_CODE_STRIPPING) (
-dead_strip) option, causes the-no_dead_strip_inits_and_termsflag to be passed told(1)viacc(1)to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned Dead Code Stripping (DEAD_CODE_STRIPPING) option.Type Boolean Default Value NO -
Product Type Framework Search Paths PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHSType PathList -
Product Type Library Search Paths PRODUCT_TYPE_LIBRARY_SEARCH_PATHSType PathList -
Re-Exported Framework Names REEXPORTED_FRAMEWORK_NAMESList of framework names that should have their symbols be reexported from the built library.
Type StringList -
Re-Exported Library Names REEXPORTED_LIBRARY_NAMESList of library names that should have their symbols be reexported from the built library.
Type StringList -
Re-Exported Library Paths REEXPORTED_LIBRARY_PATHSList of library paths that should have their symbols be reexported from the built library.
Type PathList -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
System Framework Search Paths SYSTEM_FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing system frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Framework Search Paths”, except that the search paths are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system framework search paths, then the search paths are appended to any existing framework search paths defined in “Framework Search Paths”.
Type PathList -
Unexported Symbols File UNEXPORTED_SYMBOLS_FILEA project-relative path to a file that lists the symbols not to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String
Strip Symbols
Remove or modify the symbol table of a Mach-O binary
-
Additional Strip Flags STRIPFLAGSAdditional flags to be passed when stripping the linked product of the build.
Type StringList -
Strip Style STRIP_STYLEThe level of symbol stripping to be performed on the linked product of the build. The default value is defined by the target’s product type.
-
All Symbols: Completely strips the binary, removing the symbol table and relocation information.
all, -s -
Non-Global Symbols: Strips non-global symbols, but saves external symbols.
non-global, -x -
Debugging Symbols: Strips debugging symbols, but saves local and global symbols.
debugging, -S
Type Enumeration Values allnon-globaldebugging
Default Value all -
-
Strip Swift Symbols STRIP_SWIFT_SYMBOLSAdjust the level of symbol stripping specified by the STRIP_STYLE setting so that when the linked product of the build is stripped, all Swift symbols will be removed.
Type Boolean Default Value YES
Create Static Library
Create a static library using Apple Mach-O Librarian (libtool)
-
All Other Libtoolflags ALL_OTHER_LIBTOOLFLAGSType StringList Default Value $(OTHER_LIBTOOLFLAGS) $(OTHER_LIBTOOLFLAGS_$(variant)) $(OTHER_LIBTOOLFLAGS_$(arch)) $(OTHER_LIBTOOLFLAGS_$(variant)_$(arch)) $(PRODUCT_SPECIFIC_LIBTOOLFLAGS) -
Exported Symbols File EXPORTED_SYMBOLS_FILEThis is a project-relative path to a file that lists the symbols to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String -
Library Search Paths LIBRARY_SEARCH_PATHSThis is a list of paths to folders to be searched by the linker for libraries used by the product. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Libtool LIBTOOLType Path Default Value libtool -
Libtool Dependency Info File LIBTOOL_DEPENDENCY_INFO_FILEType Path Default Value $(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/$(PRODUCT_NAME)_libtool_dependency_info.dat -
Libtool Deployment Target LIBTOOL_DEPLOYMENT_TARGETType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Libtool Deterministic Mode LIBTOOL_DETERMINISTIC_MODEType Boolean Default Value YES -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Unexported Symbols File UNEXPORTED_SYMBOLS_FILEA project-relative path to a file that lists the symbols not to export. See
ld -exported_symbols_listfor details on exporting symbols.Type String
Product Packaging Utility
-
Code Signing Identity CODE_SIGN_IDENTITYThe name, also known as the common name, of a valid code-signing certificate in a keychain within your keychain path. A missing or invalid certificate will cause a build error.
Type CodeSignIdentity -
Code Sign Keychain CODE_SIGN_KEYCHAINType string -
Other Code Signing Flags OTHER_CODE_SIGN_FLAGSA list of additional options to pass to
codesign(1).Type StringList -
Provisioning Profile PROVISIONING_PROFILEType ProvisioningProfile -
Provisioning Profile Destination Path PROVISIONING_PROFILE_DESTINATION_PATHType string Default Value $(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH)
Embedded Binary Validation Utility
Source Versioning
Xcode File-Copying Tool
-
Preserve HFS Data COPYING_PRESERVES_HFS_DATACauses the copying of resources to preserve resource forks and Finder info.
Type Boolean Default Value NO -
Strip Debug Symbols During Copy COPY_PHASE_STRIPSpecifies whether binary files that are copied during the build, such as in a Copy Bundle Resources or Copy Files build phase, should be stripped of debugging symbols. It does not cause the linked product of a target to be stripped—use Strip Linked Product (STRIP_INSTALLED_PRODUCT) for that.
Type Boolean Default Value YES -
Pbxcp Bitcode Strip Mode PBXCP_BITCODE_STRIP_MODEType Enumeration Values nonereplace-with-markerall
-
Pbxcp Bitcode Strip Tool PBXCP_BITCODE_STRIP_TOOLType Path -
Pbxcp Ignore Missing Inputs PBXCP_IGNORE_MISSING_INPUTSType Boolean Default Value NO -
Pbxcp Strip Bitcode PBXCP_STRIP_BITCODEType Boolean Default Value NO -
Pbxcp Strip Tool PBXCP_STRIP_TOOLType Path -
Remove Cvs From Resources REMOVE_CVS_FROM_RESOURCESSpecifies whether to remove
CVSdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Git From Resources REMOVE_GIT_FROM_RESOURCESSpecifies whether to remove
.gitdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Header Directories REMOVE_HEADER_DIRECTORIESType Boolean Default Value NO -
Remove Hg From Resources REMOVE_HG_FROM_RESOURCESSpecifies whether to remove
.hgdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Remove Svn From Resources REMOVE_SVN_FROM_RESOURCESSpecifies whether to remove
SVNdirectories from bundle resources when they are copied.Type Boolean Default Value YES -
Verbose Pbxcp VERBOSE_PBXCPSpecifies whether the target’s Copy Files build phases generate additional information when copying files.
Type Boolean Default Value NO
Jam Build System
-
Do Header Scanning In Jam DO_HEADER_SCANNING_IN_JAMType Boolean Default Value NO -
File List FILE_LISTType Path Default Value $(OBJECT_FILE_DIR)/LinkFileList -
Per Style Build Directories PER_STYLE_BUILD_DIRECTORIESType Boolean Default Value YES -
Precomp Destination Dir PRECOMP_DESTINATION_DIRType Path Default Value $(TARGET_TEMP_DIR)/PrefixHeaders -
Prefix Cflag Base PREFIX_CFLAG_BASEType String -
Prefix Reference PREFIX_REFERENCEType String
Text-Based API Tool
Text-based API Tool
-
Enable Text-Based Stubs Inlining INLINE_PRIVATE_FRAMEWORKSEnables private framework inlining for Text-Based Stubs.
Type bool Default Value NO -
Other Text-Based InstallAPI Flags OTHER_TAPI_FLAGSOptions defined in this setting are passed to invocations of the
Text-Based InstallAPItool.Type StringList -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Tapi Application Extension Api Only TAPI_APPLICATION_EXTENSION_API_ONLYType bool Default Value $(APPLICATION_EXTENSION_API_ONLY) -
Tapi Archs TAPI_ARCHSType StringList Default Value $(ARCHS) -
Tapi Deployment Target TAPI_DEPLOYMENT_TARGETType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Tapi Dylib Allowable Clients TAPI_DYLIB_ALLOWABLE_CLIENTSType StringList Default Value $(LD_DYLIB_ALLOWABLE_CLIENTS) -
Tapi Dylib Compatibility Version TAPI_DYLIB_COMPATIBILITY_VERSIONType Path Default Value $(DYLIB_COMPATIBILITY_VERSION) -
Tapi Dylib Current Version TAPI_DYLIB_CURRENT_VERSIONType Path Default Value $(DYLIB_CURRENT_VERSION) -
Tapi Dylib Install Name TAPI_DYLIB_INSTALL_NAMEType Path Default Value $(LD_DYLIB_INSTALL_NAME) -
Tapi Emit Profiling Symbols TAPI_EMIT_PROFILING_SYMBOLSType Boolean Default Value YES -
Tapi Enable Modules TAPI_ENABLE_MODULESType Boolean Default Value NO -
Tapi Enable Verification Mode TAPI_ENABLE_VERIFICATION_MODEType Boolean Default Value YES -
Tapi Framework Search Paths TAPI_FRAMEWORK_SEARCH_PATHSType PathList Default Value $(FRAMEWORK_SEARCH_PATHS) -
Tapi Header Search Paths TAPI_HEADER_SEARCH_PATHSType PathList Default Value $(HEADER_SEARCH_PATHS) -
Tapi Inputs TAPI_INPUTSType PathList -
Tapi Library Search Paths TAPI_LIBRARY_SEARCH_PATHSType PathList Default Value $(LIBRARY_SEARCH_PATHS) -
Tapi Modules Validate System Headers TAPI_MODULES_VALIDATE_SYSTEM_HEADERSType Boolean Default Value $(CLANG_MODULES_VALIDATE_SYSTEM_HEADERS) -
Tapi Module Cache Path TAPI_MODULE_CACHE_PATHType String Default Value $(CLANG_MODULE_CACHE_PATH) -
Tapi Preprocessor Definitions TAPI_PREPROCESSOR_DEFINITIONSType StringList Default Value $(GCC_PREPROCESSOR_DEFINITIONS) $(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS) -
Tapi Product Type TAPI_PRODUCT_TYPEType String Default Value $(PRODUCT_TYPE) -
Tapi Reexported Framework Install Names TAPI_REEXPORTED_FRAMEWORK_INSTALL_NAMESType StringList Default Value $(REEXPORTED_FRAMEWORK_INSTALL_NAMES) -
Tapi Reexported Framework Names TAPI_REEXPORTED_FRAMEWORK_NAMESType StringList Default Value $(REEXPORTED_FRAMEWORK_NAMES) -
Tapi Reexported Library Install Names TAPI_REEXPORTED_LIBRARY_INSTALL_NAMESType StringList Default Value $(REEXPORTED_LIBRARY_INSTALL_NAMES) -
Tapi Reexported Library Names TAPI_REEXPORTED_LIBRARY_NAMESType StringList Default Value $(REEXPORTED_LIBRARY_NAMES) -
Tapi Reexported Library Paths TAPI_REEXPORTED_LIBRARY_PATHSType StringList Default Value $(REEXPORTED_LIBRARY_PATHS) -
Tapi System Framework Search Paths TAPI_SYSTEM_FRAMEWORK_SEARCH_PATHSType PathList Default Value $(SYSTEM_FRAMEWORK_SEARCH_PATHS) -
Tapi System Header Search Paths TAPI_SYSTEM_HEADER_SEARCH_PATHSType PathList Default Value $(SYSTEM_HEADER_SEARCH_PATHS) -
Tapi Target Triple Archs TAPI_TARGET_TRIPLE_ARCHSType StringList Default Value $(ARCHS) -
Tapi Target Triple Variants TAPI_TARGET_TRIPLE_VARIANTSType StringList -
Tapi Verify Against TAPI_VERIFY_AGAINSTType String Default Value $(BuiltBinaryPath) -
Text-Based InstallAPI Verification Mode TAPI_VERIFY_MODESelects the level of warnings and errors to report when building
Text-Based InstallAPI.Type Enumeration Values ErrorsOnlyErrorsAndWarningsPedantic
Default Value ErrorsOnly
Swift
Swift Build Settings
-
Always Embed Swift Standard Libraries ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESAlways embed the Swift standard libraries in the target’s products, even if the target does not contain any Swift code. For example, this should be enabled if the target is embedding other products which contain Swift, or if it is a test target which does not contain Swift but which is testing a product which does. This setting only applies to wrapped products, not to standalone binary products.
Type Boolean Default Value $(EMBEDDED_CONTENT_CONTAINS_SWIFT) -
Embedded Content Contains Swift EMBEDDED_CONTENT_CONTAINS_SWIFTType Boolean Default Value NO
Swift stdlib tool
Copy standard libraries for Swift
-
Developer Dir DEVELOPER_DIRType Path -
Other Swift Stdlib Tool Flags OTHER_SWIFT_STDLIB_TOOL_FLAGSType StringList -
Product Type Swift Stdlib Tool Flags PRODUCT_TYPE_SWIFT_STDLIB_TOOL_FLAGSType StringList -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Swift Stdlib Tool Action SWIFT_STDLIB_TOOL_ACTIONType String -
Swift Stdlib Tool Code Sign Identity SWIFT_STDLIB_TOOL_CODE_SIGN_IDENTITYType String Default Value $(EXPANDED_CODE_SIGN_IDENTITY) -
Swift Stdlib Tool Destination Dir SWIFT_STDLIB_TOOL_DESTINATION_DIRType Path Default Value $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH) -
Swift Stdlib Tool Executable To Scan SWIFT_STDLIB_TOOL_EXECUTABLE_TO_SCANType Path Default Value $(InputPath) -
Swift Stdlib Tool Folders To Scan SWIFT_STDLIB_TOOL_FOLDERS_TO_SCANType PathList -
Swift Stdlib Tool Keychain SWIFT_STDLIB_TOOL_KEYCHAINType String Default Value $(CODE_SIGN_KEYCHAIN) -
Swift Stdlib Tool Other Code Sign Flags SWIFT_STDLIB_TOOL_OTHER_CODE_SIGN_FLAGSType StringList Default Value $(OTHER_CODE_SIGN_FLAGS) -
Swift Stdlib Tool Source Libraries SWIFT_STDLIB_TOOL_SOURCE_LIBRARIESType Path Default Value $(SWIFT_LIBRARY_PATH) -
Swift Stdlib Tool Strip Bitcode SWIFT_STDLIB_TOOL_STRIP_BITCODEType Boolean Default Value YES -
Swift Stdlib Tool Toolchains SWIFT_STDLIB_TOOL_TOOLCHAINSType PathList Default Value $(EFFECTIVE_TOOLCHAINS_DIRS) -
Swift Stdlib Tool Unsigned Destination Dir SWIFT_STDLIB_TOOL_UNSIGNED_DESTINATION_DIRType Path -
Swift Stdlib Tool Verbosity SWIFT_STDLIB_TOOL_VERBOSITYType Enumeration Values noneverboseextra-verbose
Default Value verbose -
Toolchains TOOLCHAINSType StringList
Clang
C Preprocessor
Standalone C Preprocessor
-
Cpp Other Preprocessor Flags CPP_OTHER_PREPROCESSOR_FLAGSOther flags to pass to the C preprocessor when using the standalone C Preprocessor rule.
Type stringlist -
Cpp Prefix File CPP_PREFIX_HEADERImplicitly include the given file when preprocessing using the standalone C Preprocessor rule. The path given should either be a project relative path or an absolute path.
Type string -
Cpp Preprocessor Definitions CPP_PREPROCESSOR_DEFINITIONSSpace-separated list of preprocessor macros of the form
fooorfoo=bar. These macros are used when preprocessing using the standalone C Preprocessor rule.Type stringlist -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path
AST Builder
Apple Clang AST Builder 9.0
-
Clang CLANGType Path Default Value clang -
Clang Address Sanitizer CLANG_ADDRESS_SANITIZERType Boolean -
Clang Address Sanitizer Allow Error Recovery CLANG_ADDRESS_SANITIZER_ALLOW_ERROR_RECOVERYType Boolean Default Value $(ENABLE_ADDRESS_SANITIZER_ALLOW_ERROR_RECOVERY) -
Enable C++ Container Overflow Checks CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOWCheck for C++ container overflow when Address Sanitizer is enabled. This check requires the entire application to be built with Address Sanitizer. If not, it may report false positives.
Type Boolean Default Value NO -
Clang Address Sanitizer Use After Scope CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPEType Boolean Default Value NO -
Allow Non-modular Includes In Framework Modules CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULESEnabling this setting allows non-modular includes to be used from within framework modules. This is inherently unsafe, as such headers might cause duplicate definitions when used by any client that imports both the framework and the non-modular includes.
Type Boolean Default Value NO -
Clang Analyzer Alternate Edges CLANG_ANALYZER_ALTERNATE_EDGESType Boolean Default Value YES -
Dead Stores CLANG_ANALYZER_DEADCODE_DEADSTORESCheck for values stored to variables and never read again.
Type Boolean Default Value YES -
Clang Analyzer Defines CLANG_ANALYZER_DEFINESType String Default Value -D__clang_analyzer__ -
Clang Analyzer Divide By Zero CLANG_ANALYZER_DIVIDE_BY_ZEROType Boolean Default Value YES -
Clang Analyzer Exec CLANG_ANALYZER_EXECType Path Default Value clang -
Misuse of Grand Central Dispatch CLANG_ANALYZER_GCDCheck for misuses of the Grand Central Dispatch API.
Type Boolean Default Value YES -
Performance Anti-Patterns with Grand Central Dispatch CLANG_ANALYZER_GCD_PERFORMANCECheck for Grand Central Dispatch idioms that may lead to poor performance.
Type Enumeration Values YESNO
Default Value NO -
Violation of IOKit and libkern Reference Counting Rules CLANG_ANALYZER_LIBKERN_RETAIN_COUNTFinds leaks and overreleases associated with objects inheriting from OSObject
Type Boolean Default Value YES -
Missing Localization Context Comment CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXTWarn when a call to an
NSLocalizedString()macro is missing a context comment for the localizer.Type Enumeration Values YESNO
Default Value NO -
Missing Localizability CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZEDWarn when a nonlocalized string is passed to a user interface method expecting a localized string.
Type Enumeration Values YESNO
Default Value NO -
Clang Analyzer Malloc CLANG_ANALYZER_MALLOCType Boolean Default Value YES -
Improper Memory Management CLANG_ANALYZER_MEMORY_MANAGEMENTWarn about memory leaks, use-after-free, and other API misuses.
Type Boolean Default Value $(CLANG_ANALYZER_MALLOC) -
Violation of Mach Interface Generator Conventions CLANG_ANALYZER_MIG_CONVENTIONSWarn when a MIG routine violates memory management conventions.
Type Enumeration Values YESNO
Default Value YES -
Misuse of 'nonnull' CLANG_ANALYZER_NONNULLCheck for misuses of
nonnullparameter and return types.Type Enumeration Values YESYES_NONAGGRESSIVENO
Default Value YES_NONAGGRESSIVE -
Clang Analyzer Null Dereference CLANG_ANALYZER_NULL_DEREFERENCEType Boolean Default Value YES -
Suspicious Conversions of NSNumber and CFNumberRef CLANG_ANALYZER_NUMBER_OBJECT_CONVERSIONWarn when a number object, such as an instance of
NSNumber,CFNumberRef,OSNumber, orOSBooleanis compared or converted to a primitive value instead of another object.Type Enumeration Values YES_AGGRESSIVEYESNO
Default Value YES -
@synchronized with nil mutex CLANG_ANALYZER_OBJC_ATSYNCWarn on
nilpointers used as mutexes for@synchronized.Type Boolean Default Value YES -
Misuse of Collections API CLANG_ANALYZER_OBJC_COLLECTIONSWarn if
CFcollections are created with non-pointer-size values. Check ifNScollections are initialized with non-Objective-C type elements.Type Boolean Default Value YES -
Improper Instance Cleanup in '-dealloc' CLANG_ANALYZER_OBJC_DEALLOCWarn when an instance is improperly cleaned up in
-dealloc.Type Boolean Default Value YES -
Misuse of Objective-C generics CLANG_ANALYZER_OBJC_GENERICSWarn if a specialized generic type is converted to an incompatible type.
Type Boolean Default Value YES -
Method Signatures Mismatch CLANG_ANALYZER_OBJC_INCOMP_METHOD_TYPESWarn about Objective-C method signatures with type incompatibilities.
Type Boolean Default Value YES -
Improper Handling of CFError and NSError CLANG_ANALYZER_OBJC_NSCFERRORWarn if functions accepting
CFErrorReforNSErrorcannot indicate that an error occurred.Type Boolean Default Value YES -
Violation of Reference Counting Rules CLANG_ANALYZER_OBJC_RETAIN_COUNTWarn on leaks and improper reference count management.
Type Boolean Default Value YES -
Violation of 'self = `super init`' Rule CLANG_ANALYZER_OBJC_SELF_INITCheck that
super initis properly called within an Objective-C initialization method.Type Boolean Default Value YES -
Unused Ivars CLANG_ANALYZER_OBJC_UNUSED_IVARSWarn about private ivars that are never used.
Type Boolean Default Value YES -
Clang Analyzer Other Checkers CLANG_ANALYZER_OTHER_CHECKERSType StringList -
Clang Analyzer Other Flags CLANG_ANALYZER_OTHER_FLAGSType StringList -
Clang Analyzer Output CLANG_ANALYZER_OUTPUTType Enumeration Values defaultplist-multi-file
Default Value plist-multi-file -
Clang Analyzer Output Dir CLANG_ANALYZER_OUTPUT_DIRType Path Default Value $(TEMP_DIR) -
Clang Analyzer Report Main Source File CLANG_ANALYZER_REPORT_MAIN_SOURCE_FILEType Boolean Default Value YES -
*EXPERIMENTAL* Buffer overflows CLANG_ANALYZER_SECURITY_BUFFER_OVERFLOW_EXPERIMENTALCheck for potential buffer overflows.
Type Boolean Default Value NO -
Floating Point Value Used as Loop Counter CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTERWarn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP).
Type Boolean Default Value NO -
Use of 'getpw', 'gets' (Buffer Overflow) CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETSWarn on uses of
getpwandgets. The functions are dangerous as they may trigger a buffer overflow.Type Boolean Default Value YES -
Use of 'mktemp' or Predictable 'mktemps' CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMPWarn on uses of
mktemp, which produces predictable temporary files. It is obsoleted bymktemps. Warn whenmkstempis passed fewer than 6X’s in the format string.Type Boolean Default Value YES -
Use of 'rand' Functions CLANG_ANALYZER_SECURITY_INSECUREAPI_RANDWarn on uses of
rand,random, and related functions, which produce predictable random number sequences. Usearc4randominstead.Type Boolean Default Value NO -
Use of 'strcpy' and 'strcat' CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPYWarn on uses of the
strcpyandstrcatfunctions, which can result in buffer overflows. Usestrlcpyorstrlcatinstead.Type Boolean Default Value NO -
Unchecked Return Values CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURNWarn on uses of sensitive functions whose return values must be always checked.
Type Boolean Default Value YES -
Use of 'vfork' CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORKWarn on uses of the
vforkfunction, which is inherently insecure. Use the saferposix_spawnfunction instead.Type Boolean Default Value YES -
Misuse of Keychain Services API CLANG_ANALYZER_SECURITY_KEYCHAIN_APICheck for leaks of keychain attribute lists and data buffers returned by the Keychain Services API.
Type Boolean Default Value YES -
Use-After-Move Errors in C++ CLANG_ANALYZER_USE_AFTER_MOVEWarn when a C++ object is used after it has been moved from.
Type Enumeration Values YES_AGGRESSIVEYESNO
Default Value YES_AGGRESSIVE -
Clang Arc Migrate Dir CLANG_ARC_MIGRATE_DIRType Path -
Clang Arc Migrate Emit Error CLANG_ARC_MIGRATE_EMIT_ERRORType Boolean Default Value NO -
Clang Arc Migrate Precheck CLANG_ARC_MIGRATE_PRECHECKType Enumeration Values donothingprecheck
Default Value donothing -
Clang Arc Migrate Report Output CLANG_ARC_MIGRATE_REPORT_OUTPUTType Path -
Clang Bitcode Generation Mode CLANG_BITCODE_GENERATION_MODEType Enumeration Values nonemarkerbitcode
Default Value $(BITCODE_GENERATION_MODE) -
Clang Color Diagnostics CLANG_COLOR_DIAGNOSTICSType Boolean Default Value $(COLOR_DIAGNOSTICS) -
Clang Coverage Mapping CLANG_COVERAGE_MAPPINGType Boolean Default Value NO -
Clang Coverage Mapping Linker Args CLANG_COVERAGE_MAPPING_LINKER_ARGSType Boolean Default Value $(CLANG_COVERAGE_MAPPING) -
C++ Language Dialect CLANG_CXX_LANGUAGE_STANDARDChoose a standard or non-standard C++ language dialect. Options include:
-
C++98: Accept ISO C++ 1998 with amendments, but not GNU extensions.
-std=c++98 -
GNU++98: Accept ISO C++ 1998 with amendments and GNU extensions.
-std=gnu++98 -
C++11: Accept the ISO C++ 2011 standard with amendments, but not GNU extensions.
-std=c++11 -
GNU++11: Accept the ISO C++ 2011 standard with amendments and GNU extensions.
-std=gnu++11 -
C++14: Accept the ISO C++ 2014 standard with amendments, but not GNU extensions.
-std=c++14 -
GNU++14: Accept the ISO C++ 2014 standard with amendments and GNU extensions.
-std=gnu++14 -
C++17: Accept the ISO C++ 2017 standard with amendments, but not GNU extensions.
-std=c++17 -
GNU++17: Accept the ISO C++ 2017 standard with amendments and GNU extensions.
-std=gnu++17 -
Compiler Default: Tells the compiler to use its default C++ language dialect. This is normally the best choice unless you have specific needs. (Currently equivalent to GNU++98.)
Type Enumeration Values c++98gnu++98c++0xgnu++0xc++14gnu++14c++17gnu++17compiler-default
Default Value compiler-default -
-
C++ Standard Library CLANG_CXX_LIBRARYChoose a version of the C++ standard library to use.
-
libstdc++: A traditional C++ standard library that works with GCC and Clang (default).
-
libc++: A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.
Type Enumeration Values libstdc++libc++compiler-default
Default Value compiler-default -
-
Debug Information Level CLANG_DEBUG_INFORMATION_LEVELToggles the amount of debug information emitted when debug symbols are enabled. This can impact the size of the generated debug information, which may matter in some cases for large projects, such as when using LTO.
Type Enumeration Values defaultline-tables-only
Default Value default -
Clang Debug Modules CLANG_DEBUG_MODULESType Boolean Default Value $(CLANG_ENABLE_MODULE_DEBUGGING) -
Clang Enable App Extension CLANG_ENABLE_APP_EXTENSIONType Boolean Default Value $(APPLICATION_EXTENSION_API_ONLY) -
Enable Code Coverage Support CLANG_ENABLE_CODE_COVERAGEEnables building with code coverage instrumentation. This is only used when the build has code coverage enabled, which is typically done via the Xcode scheme settings.
Type Boolean Default Value YES -
Destroy Static Objects CLANG_ENABLE_CPP_STATIC_DESTRUCTORSControls whether variables with static or thread storage duration should have their exit-time destructors run.
Type Boolean Default Value YES -
Enable Modules (C and Objective-C) CLANG_ENABLE_MODULESEnables the use of modules for system APIs. System headers are imported as semantic modules instead of raw headers. This can result in faster builds and project indexing.
Type Boolean Default Value NO -
Enable Clang Module Debugging CLANG_ENABLE_MODULE_DEBUGGINGWhen this setting is enabled,
clangwill use the shared debug info available inclangmodules and precompiled headers. This results in smaller build artifacts, faster compile times, and more complete debug info. This setting should only be disabled when building static libraries with debug info for distribution.Type Boolean Default Value YES -
Clang Enable Module Implementation Of CLANG_ENABLE_MODULE_IMPLEMENTATION_OFType Boolean Default Value YES -
Objective-C Automatic Reference Counting CLANG_ENABLE_OBJC_ARCCompiles reference-counted Objective-C code (when garbage collection is not enabled) to use Automatic Reference Counting. Code compiled using automated reference counting is compatible with other code (such as frameworks) compiled using either manual reference counting (for example, traditional
retainandreleasemessages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.Type Boolean Default Value NO -
Weak References in Manual Retain Release CLANG_ENABLE_OBJC_WEAKCompiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.
Type Boolean Default Value NO -
Clang Index Store Enable CLANG_INDEX_STORE_ENABLEType Boolean -
Clang Index Store Path CLANG_INDEX_STORE_PATHType Path Default Value $(INDEX_DATA_STORE_DIR) -
Clang Instrument For Optimization Profiling CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILINGType Boolean Default Value NO -
Implicitly Link Objective-C Runtime Support CLANG_LINK_OBJC_RUNTIMEWhen linking a target using Objective-C code, implicitly link in Foundation (and if deploying back to an older OS) a backwards compatibility library to allow newer language features to run on an OS where the runtime support is not natively available. Most targets that use Objective-C should use this, although there are rare cases where a target should opt out of this behavior.
Type Boolean Default Value YES -
Clang Macro Backtrace Limit CLANG_MACRO_BACKTRACE_LIMITType String Default Value 0 -
Add attribute annotations CLANG_MIGRATOR_ANNOTATIONSAdd attribute annotations to properties and methods.
Type Boolean Default Value YES -
Infer instancetype for method result type CLANG_MIGRATOR_INSTANCE_TYPEInfer
instancetypefor method result type instead ofid.Type Boolean Default Value YES -
Use NS_ENUM/NS_OPTIONS macros CLANG_MIGRATOR_NSENUM_MACROSUse
NS_ENUM/NS_OPTIONSmacros for enumerators.Type Boolean Default Value YES -
Infer designated initializer methods CLANG_MIGRATOR_OBJC_DESIGNATED_INITInfer
NS_DESIGNATED_INITIALIZERfor designated initializer methods.Type Boolean Default Value YES -
ObjC literals CLANG_MIGRATOR_OBJC_LITERALSEnable migration to modern ObjC literals syntax.
Type Boolean Default Value YES -
ObjC subscripting CLANG_MIGRATOR_OBJC_SUBSCRIPTINGEnable migration to modern ObjC subscripting syntax.
Type Boolean Default Value YES -
Atomicity of inferred properties CLANG_MIGRATOR_PROPERTY_ATOMICITYChoose the atomicity of the inferred properties.
Type Enumeration Values nonatomicatomicNS_NONATOMIC_IOSONLY
Default Value NS_NONATOMIC_IOSONLY -
ObjC property-dot syntax CLANG_MIGRATOR_PROPERTY_DOT_SYNTAXEnable migration of setter/getter messages to property-dot syntax.
Type Boolean Default Value YES -
Infer protocol conformance CLANG_MIGRATOR_PROTOCOL_CONFORMANCEInfer protocol conformance from the interface methods.
Type Boolean Default Value NO -
Only modify public headers CLANG_MIGRATOR_PUBLIC_HEADERS_ONLYOnly modify public headers of a target.
Type Boolean Default Value YES -
Infer readonly properties CLANG_MIGRATOR_READONLY_PROPERTYInfer readonly properties from getter methods.
Type Boolean Default Value YES -
Infer readwrite properties CLANG_MIGRATOR_READWRITE_PROPERTYInfer readwrite properties from a getter and setter method.
Type Boolean Default Value YES -
Link Frameworks Automatically CLANG_MODULES_AUTOLINKAutomatically link SDK frameworks that are referenced using
#importor#include. This feature requires also enabling support for modules. This build setting only applies to C-family languages.Type Boolean Default Value YES -
Clang Modules Build Session File CLANG_MODULES_BUILD_SESSION_FILEType String -
Disable Private Modules Warnings CLANG_MODULES_DISABLE_PRIVATE_WARNINGDisable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.
Type Boolean Default Value NO -
Clang Modules Ignore Macros CLANG_MODULES_IGNORE_MACROSType StringList Default Value $(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS) -
Clang Modules Prune After CLANG_MODULES_PRUNE_AFTERType String Default Value 345600 -
Clang Modules Prune Interval CLANG_MODULES_PRUNE_INTERVALType String Default Value 86400 -
Clang Modules Validate System Headers CLANG_MODULES_VALIDATE_SYSTEM_HEADERSType Boolean Default Value NO -
Clang Module Cache Path CLANG_MODULE_CACHE_PATHType Path -
Clang Module Lsv CLANG_MODULE_LSVType Boolean Default Value NO -
Clang Objc Migrate Dir CLANG_OBJC_MIGRATE_DIRType Path -
Optimization Profile File CLANG_OPTIMIZATION_PROFILE_FILEThe path to the file of the profile data to use when Use Optimization Profile (CLANG_USE_OPTIMIZATION_PROFILE) is enabled.
Type Path Default Value $(SRCROOT)/OptimizationProfiles/$(PROJECT_NAME).profdata -
Clang Retain Comments From System Headers CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERSType Boolean Default Value NO -
Mode of Analysis for 'Build' CLANG_STATIC_ANALYZER_MODEThe depth the static analyzer uses during the Build action. Use
Deepto exercise the full power of the analyzer. UseShallowfor faster analysis.Type Enumeration Values shallowdeep
Default Value shallow -
Mode of Analysis for 'Analyze' CLANG_STATIC_ANALYZER_MODE_ON_ANALYZE_ACTIONThe depth the static analyzer uses during the Analyze action. Use
Deepto exercise the full power of the analyzer. UseShallowfor faster analysis.Type Enumeration Values shallowdeep
Default Value deep -
Clang Target Triple Archs CLANG_TARGET_TRIPLE_ARCHSType StringList Default Value $(CURRENT_ARCH) -
Clang Target Triple Variants CLANG_TARGET_TRIPLE_VARIANTSType StringList -
Clang Thread Sanitizer CLANG_THREAD_SANITIZERType Boolean -
Clang Toolchain Flags CLANG_TOOLCHAIN_FLAGSType StringList -
Trivial automatic variable initialization CLANG_TRIVIAL_AUTO_VAR_INITSpecify whether stack variables should be uninitialized, which can cause inadvertent information disclosure when uninitialized stack variables are used, or whether they should be pattern-initialized.
Type Enumeration Values uninitializedpattern
Default Value uninitialized -
Clang Undefined Behavior Sanitizer CLANG_UNDEFINED_BEHAVIOR_SANITIZERType Boolean -
Enable Extra Integer Checks CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGERCheck for unsigned integer overflow, in addition to checks for signed integer overflow.
Type Boolean Default Value NO -
Enable Nullability Annotation Checks CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITYCheck for violations of nullability annotations in function calls, return statements, and assignments.
Type Boolean Default Value NO -
Use Optimization Profile CLANG_USE_OPTIMIZATION_PROFILEWhen this setting is enabled,
clangwill use the optimization profile collected for a target when building it.Type Boolean Default Value NO -
Out-of-Range Enum Assignments CLANG_WARN_ASSIGN_ENUMWarn about assigning integer constants to enum values that are out of the range of the enumerated type.
Type Boolean Default Value NO -
Usage of implicit sequentially-consistent atomics CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CSTWarns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.
Type Boolean Default Value NO -
Block Capture of Autoreleasing CLANG_WARN_BLOCK_CAPTURE_AUTORELEASINGWarn about block captures of implicitly autoreleasing parameters.
Type Enumeration Values YESNOYES_ERROR
Default Value NO -
Implicit Boolean Conversions CLANG_WARN_BOOL_CONVERSIONWarn about implicit conversions to boolean values that are suspicious. For example, writing
if (foo)wherefoois the name a function will trigger a warning.Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Suspicious Commas CLANG_WARN_COMMAWarn about suspicious uses of the comma operator.
Type Enumeration Values YESNOYES_ERROR
Default Value NO -
Implicit Constant Conversions CLANG_WARN_CONSTANT_CONVERSIONWarn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.
Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Deleting Instance of Polymorphic Class with No Virtual Destructor CLANG_WARN_DELETE_NON_VIRTUAL_DTORWarn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.
Type Enumeration Values YESYES_ERRORNO
Default Value YES -
Overriding Deprecated Objective-C Methods CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONSWarn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.
Type Boolean Default Value NO -
Direct usage of 'isa' CLANG_WARN_DIRECT_OBJC_ISA_USAGEWarn about direct accesses to the Objective-C
isapointer instead of using a runtime API.Type Enumeration Values YESNOYES_ERROR
Default Value YES -
Documentation Comments CLANG_WARN_DOCUMENTATION_COMMENTSWarns about issues in documentation comments (
doxygen-style) such as missing or incorrect documentation tags.Type Boolean Default Value NO -
Empty Loop Bodies CLANG_WARN_EMPTY_BODYWarn about loop bodies that are suspiciously empty.
Type Boolean Default Value NO -
Implicit Enum Conversions CLANG_WARN_ENUM_CONVERSIONWarn about implicit conversions between different kinds of enum values. For example, this can catch issues when using the wrong enum flag as an argument to a function or method.
Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Implicit Float Conversions CLANG_WARN_FLOAT_CONVERSIONWarn about implicit conversions that turn floating-point numbers into integers.
Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Clang Warn Framework Include Private From Public CLANG_WARN_FRAMEWORK_INCLUDE_PRIVATE_FROM_PUBLICType Enumeration Values YESNO
Default Value NO -
Implicit Signedness Conversions CLANG_WARN_IMPLICIT_SIGN_CONVERSIONWarn about implicit integer conversions that change the signedness of an integer value.
Type Enumeration Values YESYES_ERRORNO
Default Value NO -
Infinite Recursion CLANG_WARN_INFINITE_RECURSIONWarn if all paths through a function call itself.
Type Boolean Default Value NO -
Implicit Integer to Pointer Conversions CLANG_WARN_INT_CONVERSIONWarn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using
NSNumber*’s and raw integers.Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Missing Noescape Annotation CLANG_WARN_MISSING_NOESCAPEWarn about noescape annotations that are missing in a method’s signature.
Type Enumeration Values YESYES_ERRORNO
Default Value YES -
Implicit Non-Literal Null Conversions CLANG_WARN_NON_LITERAL_NULL_CONVERSIONWarn about non-literal expressions that evaluate to zero being treated as a null pointer.
Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Incorrect Uses of Nullable Values CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSIONWarns when a nullable expression is used somewhere it’s not allowed, such as when passed as a
_Nonnullparameter.Type Boolean Default Value NO -
Implicit ownership types on out parameters CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPEWarn about implicit ownership types on Objective-C object references as out parameters. For example, declaring a parameter with type
NSObject**will produce a warning because the compiler will assume that the out parameter’s ownership type is__autoreleasing.Type Boolean Default Value NO -
Implicit Atomic Objective-C Properties CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIESWarn about
@propertydeclarations that are implicitly atomic.Type Boolean Default Value NO -
Implicit retain of 'self' within blocks CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELFWarn about implicit retains of
selfwithin blocks, which can create a retain-cycle.Type Boolean Default Value NO -
Interface Declarations of Instance Variables CLANG_WARN_OBJC_INTERFACE_IVARSWarn about instance variable declarations in
@interface.Type Enumeration Values NOYESYES_ERROR
Default Value NO -
Implicit Objective-C Literal Conversions CLANG_WARN_OBJC_LITERAL_CONVERSIONWarn about implicit conversions from Objective-C literals to values of incompatible type.
Type Enumeration Values YESYES_ERRORNO
Default Value $(CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION) -
Implicit Synthesized Properties CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESISStarting in Xcode 4.4, Apple Clang will implicitly synthesize properties that are not explicitly synthesized using
@synthesize. This setting warns about such implicit behavior, even though the property is still synthesized. This is essentially a backwards compatibility warning, or for those who wish to continue to explicitly use@synthesize.Type Boolean Default Value NO -
Repeatedly using a __weak reference CLANG_WARN_OBJC_REPEATED_USE_OF_WEAKWarn about repeatedly using a weak reference without assigning the weak reference to a strong reference. This is often symptomatic of a race condition where the weak reference can become
nilbetween accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.Type Enumeration Values YESNOYES_AGGRESSIVE
Default Value NO -
Unintentional Root Class CLANG_WARN_OBJC_ROOT_CLASSWarn about classes that unintentionally do not subclass a root class, such as
NSObject.Type Enumeration Values YESNOYES_ERROR
Default Value YES -
Suspicious Pragma Pack CLANG_WARN_PRAGMA_PACKWarn when a translation unit is missing terminating ‘#pragma pack (pop)’ directives or when the ‘#pragma pack’ state immediately after an #include is different from the state immediately before.
Type Enumeration Values YESYES_ERRORNO
Default Value YES -
Outdated Private Module Map CLANG_WARN_PRIVATE_MODULEWarn about private modules that do not use the recommended private module layout.
Type Boolean Default Value YES -
Quoted Include In Framework Header CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADERWarns when a quoted include is used instead of a framework style include in a framework header.
Type Enumeration Values YESYES_ERRORNO
Default Value NO -
Range-based For Loops CLANG_WARN_RANGE_LOOP_ANALYSISWarn about ranged-based for loops.
Type Boolean Default Value NO -
Semicolon Before Method Body CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODYWarn about ignored semicolon between a method implementation’s signature and body.
Type Boolean Default Value NO -
Strict Prototypes CLANG_WARN_STRICT_PROTOTYPESWarn about non-prototype declarations.
Type Enumeration Values YESNOYES_ERROR
Default Value NO -
Suspicious Implicit Conversions CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSIONWarn about various implicit conversions that can lose information or are otherwise suspicious.
Type Enumeration Values YESYES_ERRORNO
Default Value NO -
Suspicious Moves CLANG_WARN_SUSPICIOUS_MOVEWarn about suspicious uses of
std::move.Type Boolean Default Value NO -
Unguarded availability CLANG_WARN_UNGUARDED_AVAILABILITYWarn if an API that is newer than the deployment target is used without “if (@available(…))” guards.
Type Enumeration Values YESYES_AGGRESSIVENO
Default Value YES -
Unreachable Code CLANG_WARN_UNREACHABLE_CODEWarns about potentially unreachable code.
Type Enumeration Values YESYES_AGGRESSIVENO
Default Value NO -
Ambiguous C++ Parsing Situation CLANG_WARN_VEXING_PARSEWarn about a parsing ambiguity between a variable declaration and a function-style cast.
Type Enumeration Values YESYES_ERRORNO
Default Value YES -
Using __bridge Casts Outside of ARC CLANG_WARN__ARC_BRIDGE_CAST_NONARCWarn about using
__bridgecasts when not using ARC, where they have no effect.Type Boolean Default Value YES -
Duplicate Method Definitions CLANG_WARN__DUPLICATE_METHOD_MATCHWarn about declaring the same method more than once within the same
@interface.Type Boolean Default Value NO -
Exit-Time C++ Destructors CLANG_WARN__EXIT_TIME_DESTRUCTORSWarn about destructors for C++ objects that are called when an application is terminating.
Type Boolean Default Value NO -
Cpp Headermap File CPP_HEADERMAP_FILEType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME).hmap -
Cpp Headermap File For All Non Framework Target Headers CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERSType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME)-all-non-framework-target-headers.hmap -
Cpp Headermap File For All Target Headers CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERSType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME)-all-target-headers.hmap -
Cpp Headermap File For Generated Files CPP_HEADERMAP_FILE_FOR_GENERATED_FILESType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME)-generated-files.hmap -
Cpp Headermap File For Own Target Headers CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERSType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME)-own-target-headers.hmap -
Cpp Headermap File For Project Files CPP_HEADERMAP_FILE_FOR_PROJECT_FILESType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME)-project-headers.hmap -
Cpp Headermap Product Headers Vfs File CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILEType Path Default Value $(PROJECT_TEMP_DIR)/all-product-headers.yaml -
Cpp Header Symlinks Dir CPP_HEADER_SYMLINKS_DIRType Path Default Value $(TEMP_DIR)/$(PRODUCT_NAME).hdrs -
Enable Apple Kext Code Generation ENABLE_APPLE_KEXT_CODE_GENERATIONType Boolean Default Value NO -
Enable Foundation Assertions ENABLE_NS_ASSERTIONSControls whether assertion logic provided by
NSAssertis included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.Type Boolean Default Value YES -
Enable Strict Checking of objc_msgSend Calls ENABLE_STRICT_OBJC_MSGSENDControls whether
objc_msgSendcalls must be cast to the appropriate function pointer type before being called.Type Boolean Default Value NO -
'char' Type Is Unsigned GCC_CHAR_IS_UNSIGNED_CHAREnabling this setting causes
charto be unsigned by default, disabling it causescharto be signed by default.Type Boolean Default Value NO -
CodeWarrior/MS-Style Inline Assembly GCC_CW_ASM_SYNTAXEnable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.
Type Boolean Default Value YES -
C Language Dialect GCC_C_LANGUAGE_STANDARDChoose a standard or non-standard C language dialect.
-
ANSI C: Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible.
-ansiIncompatible GNU extensions include theasm,inline, andtypeofkeywords (but not the equivalent ` asm,inline, andtypeof ` forms), and the//syntax for comments. This setting also enables trigraphs. -
C89: Accept ISO C90 (1990), but not GNU extensions.
-std=c89 -
GNU89: Accept ISO C90 and GNU extensions.
-std=gnu89 -
C99: Accept ISO C99 (1999), but not GNU extensions.
-std=c99 -
GNU99: Accept ISO C99 and GNU extensions.
-std=gnu99 -
C11: Accept ISO C11 (2011), but not GNU extensions.
-std=c11 -
GNU11: Accept ISO C11 and GNU extensions.
-std=gnu11 -
Compiler Default: Tells the compiler to use its default C language dialect. This is normally the best choice unless you have specific needs. (Currently equivalent to GNU99.)
Type Enumeration Values ansic89gnu89c99gnu99c11gnu11compiler-default
Default Value compiler-default -
-
Gcc Debug Information Format GCC_DEBUG_INFORMATION_FORMATType Enumeration Values dwarfdwarf-with-dsym
Default Value $(DEBUG_INFORMATION_FORMAT) -
Generate Position-Dependent Code GCC_DYNAMIC_NO_PICFaster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.
Type Boolean Default Value NO -
Allow 'asm', 'inline', 'typeof' GCC_ENABLE_ASM_KEYWORDControls whether
asm,inline, andtypeofare treated as keywords or whether they can be used as identifiers.Type Boolean Default Value YES -
Recognize Builtin Functions GCC_ENABLE_BUILTIN_FUNCTIONSControls whether builtin functions that do not begin with
__builtin_as prefix are recognized.GCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to
allocamay become single instructions that adjust the stack directly, and calls tomemcpymay become inline copy loops. The resulting code is often both smaller and faster, but since the function calls no longer appear as such, you cannot set a breakpoint on those calls, nor can you change the behavior of the functions by linking with a different library. In addition, when a function is recognized as a builtin function, GCC may use information about that function to warn about problems with calls to that function, or to generate more efficient code, even if the resulting code still contains calls to that function. For example, warnings are given with-Wformatfor bad calls toprintf, whenprintfis built in, andstrlenis known not to modify global memory.Type Boolean Default Value YES -
Enable C++ Exceptions GCC_ENABLE_CPP_EXCEPTIONSEnable C++ exception handling. Generates extra code needed to propagate exceptions. For some targets, this implies GCC will generate frame unwind information for all functions, which can produce significant data size overhead, although it does not affect execution. If you do not specify this option, GCC will enable it by default for languages like C++ that normally require exception handling, and disable it for languages like C that do not normally require it. However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in C++.
Type Boolean Default Value YES -
Enable C++ Runtime Types GCC_ENABLE_CPP_RTTIEnable generation of information about every class with virtual functions for use by the C++ runtime type identification features (
dynamic_castandtypeid). If you don’t use those parts of the language, you can save some space by using this flag. Note that exception handling uses the same information, but it will generate it as needed.Type Boolean Default Value YES -
Enable Exceptions GCC_ENABLE_EXCEPTIONSEnable exception handling. Generates extra code needed to propagate exceptions. For some targets, this implies GCC will generate frame unwind information for all functions, which can produce significant data size overhead, although it does not affect execution. If you do not specify this option, GCC will enable it by default for languages like C++ and Objective-C that normally require exception handling, and disable it for languages like C that do not normally require it. However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in other languages. You may also wish to disable this option if you are compiling older programs that don’t use exception handling.
Type Boolean Default Value YES -
Generate Floating Point Library Calls GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLSGenerate output containing library calls for floating point.
Type Boolean Default Value NO -
Kernel Development Mode GCC_ENABLE_KERNEL_DEVELOPMENTActivating this setting enables kernel development mode.
Type Boolean Default Value NO -
Enable Objective-C Exceptions GCC_ENABLE_OBJC_EXCEPTIONSThis setting enables
@try/@catch/@throwsyntax for handling exceptions in Objective-C code. Only applies to Objective-C.Type Boolean Default Value YES -
Recognize Pascal Strings GCC_ENABLE_PASCAL_STRINGSRecognize and construct Pascal-style string literals. Its use in new code is discouraged.
Pascal string literals take the form
"\pstring". The special escape sequence\pdenotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The\pmay only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.Type Boolean Default Value YES -
Enable Trigraphs GCC_ENABLE_TRIGRAPHSControls whether or not trigraphs are permitted in the source code.
Type Boolean Default Value NO -
Relax IEEE Compliance GCC_FAST_MATHEnables some floating point optimizations that are not IEEE754-compliant, but which usually work. Programs that require strict IEEE compliance may not work with this option.
Type Boolean Default Value NO -
Generate Debug Symbols GCC_GENERATE_DEBUGGING_SYMBOLSEnables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the Debug Information Format (DEBUG_INFORMATION_FORMAT) setting.
Type Boolean -
Generate Legacy Test Coverage Files GCC_GENERATE_TEST_COVERAGE_FILESActivating this setting causes a
notesfile to be produced that thegcovcode-coverage utility can use to show program coverage.Type Boolean Default Value NO -
Increase Sharing of Precompiled Headers GCC_INCREASE_PRECOMPILED_HEADER_SHARINGEnabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.
Xcode distinguishes between precompiled header (PCH) files by generating a hash value based on the command-line options to the compiler used to create the PCH. Enabling this option will exclude certain compiler options from that hash. Presently this option will exclude search path options (
-I,-iquote,-isystem,-F,-L) from the hash.Enabling increased sharing of PCH files carries some risk—if two targets use the same prefix header but have different include paths that cause the prefix header to include different files when they are precompiled, then subtle problems may result because one target will use a PCH that was built using files included by the other target. In this case, this option must be turned off in order to enforce correctness.
Type Boolean Default Value NO -
Inline Methods Hidden GCC_INLINES_ARE_PRIVATE_EXTERNWhen enabled, out-of-line copies of inline methods are declared
private extern.Type Boolean Default Value NO -
Compile Sources As GCC_INPUT_FILETYPESpecifies whether to compile each source file according to its file type, or whether to treat all source files in the target as if they are of a specific language.
Type Enumeration Values automaticsourcecode.c.csourcecode.c.objcsourcecode.cpp.cppsourcecode.cpp.objcpp
Default Value automatic -
Instrument Program Flow GCC_INSTRUMENT_PROGRAM_FLOW_ARCSActivating this setting indicates that code should be added so program flow arcs are instrumented.
Type Boolean Default Value NO -
Enable Linking With Shared Libraries GCC_LINK_WITH_DYNAMIC_LIBRARIESEnabling this option allows linking with the shared libraries. This is the default for most product types.
Type Boolean Default Value YES -
Gcc Macosx Version Min GCC_MACOSX_VERSION_MINType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
No Common Blocks GCC_NO_COMMON_BLOCKSIn C, allocate even uninitialized global variables in the data section of the object file, rather than generating them as common blocks. This has the effect that if the same variable is declared (without
extern) in two different compilations, you will get an error when you link them.Type Boolean Default Value NO -
Gcc Objc Abi Version GCC_OBJC_ABI_VERSIONType Enumeration Values 12
Default Value $(OBJC_ABI_VERSION) -
Gcc Objc Legacy Dispatch GCC_OBJC_LEGACY_DISPATCHType Boolean Default Value NO -
Gcc Operation GCC_OPERATIONType Enumeration Values compilegenerate-preprocessedgenerate-assemblerprecompileseparate-symbols
Default Value compile -
Optimization Level GCC_OPTIMIZATION_LEVELSpecifies the degree to which the generated code is optimized for speed and binary size.
-
None: Do not optimize.
-O0With this setting, the compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results. Statements are independent—if you stop the program with a breakpoint between statements, you can then assign a new value to any variable or change the program counter to any other statement in the function and get exactly the results you would expect from the source code. -
Fast: Optimizing compilation takes somewhat more time, and a lot more memory for a large function.
-O1With this setting, the compiler tries to reduce code size and execution time, without performing any optimizations that take a great deal of compilation time. In Apple’s compiler, strict aliasing, block reordering, and inter-block scheduling are disabled by default when optimizing. -
Faster: The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff.
-O2With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to theFastsetting, this setting increases both compilation time and the performance of the generated code. -
Fastest: Turns on all optimizations specified by the
Fastersetting and also turns on function inlining and register renaming options. This setting may result in a larger binary.-O3 -
Fastest, Smallest: Optimize for size. This setting enables all
Fasteroptimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size.-Os -
Fastest, Aggressive Optimizations: This setting enables
Fastestbut also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code.-Ofast -
Smallest, Aggressive Size Optimizations: This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function.
-Oz
Type Enumeration Values 0123sfastz
Default Value s -
-
Gcc Pfe File C Dialects GCC_PFE_FILE_C_DIALECTSType StringList Default Value c objective-c c++ objective-c++ -
Precompile Prefix Header GCC_PRECOMPILE_PREFIX_HEADERGenerates a precompiled header for the prefix header, which should reduce overall build times.
Precompiling the prefix header will be most effective if the contents of the prefix header or any file it includes change rarely. If the contents of the prefix header or any file it includes change frequently, there may be a negative impact to overall build time.
Type Boolean Default Value $(PRECOMPILE_PREFIX_HEADER) -
Prefix Header GCC_PREFIX_HEADERImplicitly include the named header. The path given should either be a project relative path or an absolute path.
Type Path Default Value $(PREFIX_HEADER) -
Preprocessor Macros GCC_PREPROCESSOR_DEFINITIONSSpace-separated list of preprocessor macros of the form
fooorfoo=bar.Type StringList -
Preprocessor Macros Not Used In Precompiled Headers GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPSSpace-separated list of preprocessor macros of the form
fooorfoo=bar. These macros are not used when precompiling a prefix header file.Type StringList -
Gcc Product Type Preprocessor Definitions GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONSType StringList -
Make Strings Read-Only GCC_REUSE_STRINGSReuse string literals.
Type Boolean Default Value YES -
Short Enumeration Constants GCC_SHORT_ENUMSMake enums only as large as needed for the range of possible values.
This setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.
Type Boolean Default Value NO -
Enforce Strict Aliasing GCC_STRICT_ALIASINGOptimize code by making more aggressive assumptions about whether pointers can point to the same objects as other pointers. Programs that use pointers a lot may benefit from this, but programs that don’t strictly follow the ISO C rules about the type with which an object may be accessed may behave unexpectedly.
Type Boolean Default Value YES -
Symbols Hidden by Default GCC_SYMBOLS_PRIVATE_EXTERNWhen enabled, all symbols are declared
private externunless explicitly marked to be exported using ` attribute ((visibility(“default”)))in code. If not enabled, all symbols are exported unless explicitly marked asprivate extern`. See Controlling Symbol Visibility in C++ Runtime Environment Programming Guide.Type Boolean Default Value NO -
Statics are Thread-Safe GCC_THREADSAFE_STATICSEmits extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics. You can disable this option to reduce code size slightly in code that doesn’t need to be thread-safe.
Type Boolean Default Value YES -
Treat Missing Function Prototypes as Errors GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORSCauses warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.
Type Boolean Default Value NO -
Treat Incompatible Pointer Type Warnings as Errors GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORSEnabling this option causes warnings about incompatible pointer types to be treated as errors.
Type Boolean Default Value NO -
Treat Warnings as Errors GCC_TREAT_WARNINGS_AS_ERRORSEnabling this option causes all warnings to be treated as errors.
Type Boolean Default Value NO -
Unroll Loops GCC_UNROLL_LOOPSUnrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.
Type Boolean Default Value NO -
Use Standard System Header Directory Searching GCC_USE_STANDARD_INCLUDE_SEARCHINGControls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with
-Ioptions (and the directory of the current file, if appropriate) are searched.Type Boolean Default Value YES -
Deprecated Functions GCC_WARN_ABOUT_DEPRECATED_FUNCTIONSWarn about the use of deprecated functions, variables, and types (as indicated by the
deprecatedattribute).Type Boolean Default Value YES -
Undefined Use of offsetof Macro GCC_WARN_ABOUT_INVALID_OFFSETOF_MACROUnchecking this setting will suppress warnings from applying the
offsetofmacro to a non-POD type. According to the 1998 ISO C++ standard, applyingoffsetofto a non-POD type is undefined. In existing C++ implementations, however,offsetoftypically gives meaningful results even when applied to certain kinds of non-POD types, such as a simple struct that fails to be a POD type only by virtue of having a constructor. This flag is for users who are aware that they are writing nonportable code and who have deliberately chosen to ignore the warning about it.The restrictions on
offsetofmay be relaxed in a future version of the C++ standard.Type Boolean Default Value YES -
Missing Fields in Structure Initializers GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERSWarn if a structure’s initializer has some fields missing. For example, the following code would cause such a warning because
x.his implicitly zero:struct s { int f, g, h; };struct s x = { 3, 4 };This option does not warn about designated initializers, so the following modification would not trigger a warning:
struct s { int f, g, h; };struct s x = { .f = 3, .g = 4 };Type Boolean Default Value NO -
Missing Newline At End Of File GCC_WARN_ABOUT_MISSING_NEWLINEWarn when a source file does not end with a newline.
Type Boolean Default Value NO -
Missing Function Prototypes GCC_WARN_ABOUT_MISSING_PROTOTYPESCauses warnings to be emitted about missing prototypes.
Type Boolean Default Value NO -
Pointer Sign Comparison GCC_WARN_ABOUT_POINTER_SIGNEDNESSWarn when pointers passed via arguments or assigned to a variable differ in sign.
Type Boolean Default Value YES -
Mismatched Return Type GCC_WARN_ABOUT_RETURN_TYPECauses warnings to be emitted when a function with a defined return type (not
void) contains a return statement without a return-value or when it does not contain any return statements. Also emits a warning when a function with a void return type tries to return a value.Type Enumeration Values YESNOYES_ERROR
Default Value NO -
Incomplete Objective-C Protocols GCC_WARN_ALLOW_INCOMPLETE_PROTOCOLWarn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.
Type Boolean Default Value YES -
Check Switch Statements GCC_WARN_CHECK_SWITCH_STATEMENTSWarn whenever a switch statement has an index of enumeral type and lacks a case for one or more of the named codes of that enumeration. The presence of a default label prevents this warning. Case labels outside the enumeration range also provoke warnings when this option is used.
Type Boolean Default Value YES -
Four Character Literals GCC_WARN_FOUR_CHARACTER_CONSTANTSWarn about four-char literals (for example, macOS-style
OSTypes:'APPL').Type Boolean Default Value NO -
Inhibit All Warnings GCC_WARN_INHIBIT_ALL_WARNINGSInhibit all warning messages.
Type Boolean Default Value NO -
Initializer Not Fully Bracketed GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETEDWarn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for
ais not fully bracketed, but the initializer forbis fully bracketed.int a22` = { 0, 1, 2, 3 };int b22= { { 0, 1 }, { 2, 3 } };`Type Boolean Default Value NO -
Missing Braces and Parentheses GCC_WARN_MISSING_PARENTHESESWarn if parentheses are omitted in certain contexts, such as when there is an assignment in a context where a truth value is expected, or when operators are nested whose precedence causes confusion. Also, warn about constructions where there may be confusion as to which
ifstatement anelsebranch belongs. For example:{if (a)if (b)foo ();elsebar ();}In C, every
elsebranch belongs to the innermost possibleifstatement, which in the example above isif (b). This is often not what the programmer expects, as illustrated by indentation used in the example above. This build setting causes GCC to issue a warning when there is the potential for this confusion. To eliminate the warning, add explicit braces around the innermostifstatement so there is no way theelsecould belong to the enclosingif. For example:{if (a){if (b)foo ();elsebar ();}}Type Boolean Default Value YES -
Gcc Warn Multiple Definition Types For Selector GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTORType Boolean Default Value NO -
Nonvirtual Destructor GCC_WARN_NON_VIRTUAL_DESTRUCTORWarn when a class declares an nonvirtual destructor that should probably be virtual, because it looks like the class will be used polymorphically. This is only active for C++ or Objective-C++ sources.
Type Boolean Default Value NO -
Pedantic Warnings GCC_WARN_PEDANTICIssue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the version of the ISO C standard specified by any
-stdoption used.Type Boolean Default Value NO -
Hidden Local Variables GCC_WARN_SHADOWWarn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.
Type Boolean Default Value NO -
Sign Comparison GCC_WARN_SIGN_COMPAREWarn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.
Type Boolean Default Value NO -
Strict Selector Matching GCC_WARN_STRICT_SELECTOR_MATCHWarn if multiple methods with differing argument and/or return types are found for a given selector when attempting to send a message using this selector to a receiver of type
idorClass. When this setting is disabled, the compiler will omit such warnings if any differences found are confined to types that share the same size and alignment.Type Boolean Default Value NO -
Typecheck Calls to printf/scanf GCC_WARN_TYPECHECK_CALLS_TO_PRINTFCheck calls to
printfandscanfto make sure that the arguments supplied have types appropriate to the format string specified, and that the conversions specified in the format string make sense.Type Boolean Default Value YES -
Undeclared Selector GCC_WARN_UNDECLARED_SELECTORWarn if a
@selector(...)expression referring to an undeclared selector is found. A selector is considered undeclared if no method with that name has been declared before the@selector(...)expression, either explicitly in an@interfaceor@protocoldeclaration, or implicitly in an@implementationsection. This option always performs its checks as soon as a@selector(...)expression is found, while-Wselectoronly performs its checks in the final stage of compilation. This also enforces the coding style convention that methods and selectors must be declared before being used.Type Boolean Default Value NO -
Uninitialized Variables GCC_WARN_UNINITIALIZED_AUTOSWarn if a variable might be clobbered by a
setjmpcall or if an automatic variable is used without prior initialization.The compiler may not detect all cases where an automatic variable is initialized or all usage patterns that may lead to use prior to initialization. You can toggle between the normal uninitialized value checking or the more aggressive (conservative) checking, which finds more issues but the checking is much stricter.
Type Enumeration Values YESYES_AGGRESSIVENO
Default Value NO -
Unknown Pragma GCC_WARN_UNKNOWN_PRAGMASWarn when a
#pragmadirective is encountered that is not understood by GCC. If this command line option is used, warnings will even be issued for unknown pragmas in system header files. This is not the case if the warnings were only enabled by the-Wallcommand-line option.Type Boolean Default Value NO -
Unused Functions GCC_WARN_UNUSED_FUNCTIONWarn whenever a static function is declared but not defined or a noninline static function is unused.
Type Boolean Default Value NO -
Unused Labels GCC_WARN_UNUSED_LABELWarn whenever a label is declared but not used.
Type Boolean Default Value NO -
Unused Parameters GCC_WARN_UNUSED_PARAMETERWarn whenever a function parameter is unused aside from its declaration.
Type Boolean Default Value NO -
Unused Values GCC_WARN_UNUSED_VALUEWarn whenever a statement computes a result that is explicitly not used.
Type Boolean Default Value YES -
Unused Variables GCC_WARN_UNUSED_VARIABLEWarn whenever a local variable or nonconstant static variable is unused aside from its declaration.
Type Boolean Default Value NO -
Headermap File Format HEADERMAP_FILE_FORMATType Enumeration Values traditional
Default Value traditional -
Llvm Implicit Aggressive Optimizations LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONSType Boolean Default Value $(LLVM_OPTIMIZATION_LEVEL_VAL_$(GCC_OPTIMIZATION_LEVEL)) -
Link-Time Optimization LLVM_LTOEnabling this setting allows optimization across file boundaries during linking.
-
No: Disabled. Do not use link-time optimization.
-
Monolithic Link-Time Optimization: This mode performs monolithic link-time optimization of binaries, combining all executable code into a single unit and running aggressive compiler optimizations.
-
Incremental Link-Time Optimization: This mode performs partitioned link-time optimization of binaries, inlining between compilation units and running aggressive compiler optimizations on each unit in parallel. This enables fast incremental builds and uses less memory than Monolithic LTO.
Type Enumeration Values YESYES_THINNO
Default Value NO -
-
Other C Flags OTHER_CFLAGSSpace-separated list of additional flags to pass to the compiler for C and Objective-C files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particular C or Objective-C compiler flag.
Type StringList -
Other C++ Flags OTHER_CPLUSPLUSFLAGSSpace-separated list of additional flags to pass to the compiler for C++ and Objective-C++ files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a C++ or Objective-C++ compiler flag.
Type StringList Default Value $(OTHER_CFLAGS) -
Analyze During 'Build' RUN_CLANG_STATIC_ANALYZERActivating this setting will cause Xcode to run the
Clangstatic analysis tool on qualifying source files during every build.Type Boolean Default Value NO -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
Use Header Maps USE_HEADERMAPEnable the use of Header Maps, which provide the compiler with a mapping from textual header names to their locations, bypassing the normal compiler header search path mechanisms. This allows source code to include headers from various locations in the file system without needing to update the header search path build settings.
Type Boolean Default Value YES -
Use Header Symlinks USE_HEADER_SYMLINKSType Boolean Default Value NO -
Other Warning Flags WARNING_CFLAGSSpace-separated list of additional warning flags to pass to the compiler. Use this setting if Xcode does not already provide UI for a particular compiler warning flag.
Type StringList
-
Watch Complication Name ASSETCATALOG_COMPILER_COMPLICATION_NAMEThe name of a watch complication to use from the asset catalog.
Type String -
Clang Bitcode Generation Mode CLANG_BITCODE_GENERATION_MODEType Enumeration Values nonemarkerbitcode
Default Value $(BITCODE_GENERATION_MODE)
-
Clang Thread Sanitizer CLANG_THREAD_SANITIZERType Boolean -
Ld Bitcode Generation Mode LD_BITCODE_GENERATION_MODEType Enumeration Values markerbitcode
Default Value $(BITCODE_GENERATION_MODE) -
Ld Generate Bitcode Symbol Map LD_GENERATE_BITCODE_SYMBOL_MAPType Boolean Default Value $(HIDE_BITCODE_SYMBOLS) -
Ld Hide Bitcode Symbols LD_HIDE_BITCODE_SYMBOLSType Boolean Default Value $(HIDE_BITCODE_SYMBOLS) -
Ld Thread Sanitizer LD_THREAD_SANITIZERType Boolean Default Value $(ENABLE_THREAD_SANITIZER) -
Ld Verify Bitcode LD_VERIFY_BITCODEType Boolean Default Value YES
Interface Builder
XIB Compiler
Compiles Interface Builder XIB files into deployable NIB files.
-
Auto-Activate Custom Fonts IBC_COMPILER_AUTO_ACTIVATE_CUSTOM_FONTSInstructs the XIB compiler to add custom fonts to the application’s
Info.plist, which will cause the fonts to activate upon application launch.Type Boolean Default Value YES -
Ibc Compiler Use Nibarchives For Macos IBC_COMPILER_USE_NIBARCHIVES_FOR_MACOSType String -
Show Errors IBC_ERRORSShow errors encountered during the compilation of XIB files.
Type Boolean Default Value YES -
Flatten Compiled XIB Files IBC_FLATTEN_NIBSIf enabled, compile XIB files into flattened (non-wrapper) NIB files. After flattening, the resulting NIB is more compact but no longer editable by Interface Builder. When this option is disabled, the resulting NIB file remains editable in Interface Builder.
Type Boolean Default Value YES -
Default Module IBC_MODULEDefines the module name for Swift classes referenced without a specific module name.
Type String Default Value $(PRODUCT_MODULE_NAME) -
Show Notices IBC_NOTICESShow notices encountered during the compilation of XIB files.
Type Boolean Default Value YES -
Other Interface Builder Compiler Flags IBC_OTHER_FLAGSA list of additional flags to pass to the Interface Builder Compiler. Use this setting if Xcode does not already provide UI for a particular Interface Builder Compiler flag.
Type StringList -
Overriding Plug-In and Framework Directory IBC_OVERRIDING_PLUGINS_AND_FRAMEWORKS_DIRInstructs Interface Builder to load frameworks and Interface Builder plugins from the specified directory. Setting this value to
$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)will ensure that Interface Builder will load frameworks and plug-ins from the built products directory of the current build configuration.Type Path -
Plug-Ins IBC_PLUGINSA list of paths to Interface Builder plugins to load when compiling XIB files.
Type StringList -
Plug-In Search Paths IBC_PLUGIN_SEARCH_PATHSA list of paths to be searched for Interface Builder plug-ins to load when compiling XIB files.
Type PathList -
Ibc Regions And Strings Files IBC_REGIONS_AND_STRINGS_FILESType StringList -
Show Warnings IBC_WARNINGSShow warnings encountered during the compilation of XIB files.
Type Boolean Default Value YES -
Resources Platform Name RESOURCES_PLATFORM_NAMEType String -
Resources Targeted Device Family RESOURCES_TARGETED_DEVICE_FAMILYOverrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
Type StringList -
Xib Compiler Infoplist Content File XIB_COMPILER_INFOPLIST_CONTENT_FILEType Path Default Value $(TARGET_TEMP_DIR)/$(InputFileRegionPathComponent)$(InputFileBase)-PartialInfo.plist
NIB Postprocessor
Strips design-time content from Interface Builder NIB files to reduce deployment size.
-
Ibc Regions And Strings Files IBC_REGIONS_AND_STRINGS_FILESType StringList -
Strip NIB Files IBC_STRIP_NIBSStrips an Interface Builder NIB to reduce its size for deployment. The resulting NIB is more compact but no longer editable by Interface Builder. When this option is disabled, the resulting NIB file remains editable by Interface Builder.
Type Boolean Default Value $(IBC_FLATTEN_NIBS)
Storyboard Compiler
Compiles Interface Builder Storyboard files into deployable, compiled files.
-
Auto-Activate Custom Fonts IBSC_COMPILER_AUTO_ACTIVATE_CUSTOM_FONTSInstructs the Storyboard compiler to add custom fonts to the application’s
Info.plistthat will cause the fonts to activate upon application launch.Type Boolean Default Value YES -
Ibsc Compiler Use Nibarchives For Macos IBSC_COMPILER_USE_NIBARCHIVES_FOR_MACOSType String -
Show Errors IBSC_ERRORSShow errors encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Flatten Compiled Storyboard Files IBSC_FLATTEN_NIBSCompiles a Storyboard file into flattened (non-wrapper) Storyboard file. After flattening, the resulting Storyboard is more compact but no longer editable by Interface Builder. When this option is disabled, the resulting Storyboard file remains editable in Interface Builder.
Type Boolean Default Value YES -
Default Module IBSC_MODULEDefines the module name for Swift classes referenced without a specific module name.
Type String Default Value $(PRODUCT_MODULE_NAME) -
Show Notices IBSC_NOTICESShow notices encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Other Storyboard Compiler Flags IBSC_OTHER_FLAGSA list of additional flags to pass to the Interface Builder Compiler. Use this setting if Xcode does not already provide UI for a particular Interface Builder Compiler flag.
Type StringList -
Ibsc Regions And Strings Files IBSC_REGIONS_AND_STRINGS_FILESType StringList Default Value $(IBC_REGIONS_AND_STRINGS_FILES) -
Show Warnings IBSC_WARNINGSShow warnings encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Resources Platform Name RESOURCES_PLATFORM_NAMEType String -
Resources Targeted Device Family RESOURCES_TARGETED_DEVICE_FAMILYOverrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
Type StringList -
Storyboard Compiler Infoplist Content File STORYBOARD_COMPILER_INFOPLIST_CONTENT_FILEType Path Default Value $(TARGET_TEMP_DIR)/$(InputFileRegionPathComponent)$(InputFileBase)-SBPartialInfo.plist
Storyboard Linker
Links Interface Builder Storyboard files into deployable files.
-
Show Errors IBSC_ERRORSShow errors encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Default Module IBSC_MODULEDefines the module name for Swift classes referenced without a specific module name.
Type String Default Value $(PRODUCT_MODULE_NAME) -
Show Notices IBSC_NOTICESShow notices encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Other Storyboard Compiler Flags IBSC_OTHER_FLAGSA list of additional flags to pass to the Interface Builder Compiler. Use this setting if Xcode does not already provide UI for a particular Interface Builder Compiler flag.
Type StringList -
Show Warnings IBSC_WARNINGSShow warnings encountered during the compilation of Storyboard files.
Type Boolean Default Value YES -
Resources Platform Name RESOURCES_PLATFORM_NAMEType String -
Resources Targeted Device Family RESOURCES_TARGETED_DEVICE_FAMILYOverrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
Type StringList
Storyboard Postprocessor
Strips design-time content from Interface Builder storyboardc files to reduce deployment size.
-
Ibsc Regions And Strings Files IBSC_REGIONS_AND_STRINGS_FILESType StringList Default Value $(IBC_REGIONS_AND_STRINGS_FILES) -
Strip Storyboardc Files IBSC_STRIP_NIBSStrips an editable Interface Builder storyboardc file to reduce its size for deployment. The resulting storyboardc is more compact but no longer editable by Interface Builder. When this option is disabled, the resulting storyboardc file remains editable by Interface Builder.
Type Boolean Default Value $(IBSC_FLATTEN_NIBS)
Assets & Resources
Asset Catalog Compiler
Compiles Asset Catalogs
-
Asset Catalog App Icon Set Name ASSETCATALOG_COMPILER_APPICON_NAMEName of an asset catalog app icon set whose contents will be merged into the
Info.plist.Type String -
Assetcatalog Compiler Compress Pngs ASSETCATALOG_COMPILER_COMPRESS_PNGSType bool Default Value $(COMPRESS_PNG_FILES) -
Assetcatalog Compiler Dependency Info File ASSETCATALOG_COMPILER_DEPENDENCY_INFO_FILEType String Default Value $(TARGET_TEMP_DIR)/assetcatalog_dependencies -
Assetcatalog Compiler Enable On Demand Resources ASSETCATALOG_COMPILER_ENABLE_ON_DEMAND_RESOURCESType bool Default Value $(ENABLE_ON_DEMAND_RESOURCES) -
Global Accent Color Name ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAMEThe name of a color resource to use as a the target’s accent color, used as the default tint color on iOS and watchOS, and accent color on macOS.
Type String -
Include Asset Localizations in Info.plist ASSETCATALOG_COMPILER_INCLUDE_INFOPLIST_LOCALIZATIONSWhen enabled, includes the localization information of the selected assets in the generated partial Info.plist file under the CFBundleLocalizations key. This will allow the assets to be used at runtime in the absence of a corresponding lproj directory in the bundle.
Type Boolean Default Value YES -
Include Sticker Content ASSETCATALOG_COMPILER_INCLUDE_STICKER_CONTENTType bool Default Value NO -
Assetcatalog Compiler Infoplist Content File ASSETCATALOG_COMPILER_INFOPLIST_CONTENT_FILEType Path Default Value $(TARGET_TEMP_DIR)/assetcatalog_generated_info.plist -
Asset Catalog Launch Image Set Name ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAMEName of an asset catalog launch image set whose contents will be merged into the
Info.plist.Type String -
Optimization ASSETCATALOG_COMPILER_OPTIMIZATIONWith no value, the compiler uses the default optimization. You can also specify
timeto optimize for speed of access orspaceto optimize for a smaller compiled asset catalogs.Type Enumeration Values timespace
-
Standalone Icon File Behavior ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIORControls whether loose PNG or ICNS files are created for the app icon, in addition to including the content in the Assets.car file. By default, a small subset of sizes are included as loose files, allowing external management tools to display a representative icon without reading the CAR file. This can be set to ‘all’ or ‘none’ to include more or fewer icon sizes as loose files.
Type Enumeration Values defaultallnone
Default Value default -
Sticker Pack Identifier Prefix ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIXSticker Packs in the asset catalog may optionally specify an identifier. If they do not, their name will be prefixed by this value to form an automatically generated identifier.
Type String -
Assetcatalog Compiler Sticker Pack Strings ASSETCATALOG_COMPILER_STICKER_PACK_STRINGSType StringList -
Stickers Icon Role ASSETCATALOG_COMPILER_TARGET_STICKERS_ICON_ROLEType Enumeration Values host-appextension
-
Widget Background Color Name ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAMEThe name of a color resource to use as the background color for a widget.
Type String -
Assetcatalog Filter For Device Model ASSETCATALOG_FILTER_FOR_DEVICE_MODELType String Default Value $(TARGET_DEVICE_MODEL) -
Assetcatalog Filter For Device Os Version ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSIONType String Default Value $(TARGET_DEVICE_OS_VERSION) -
Show Notices ASSETCATALOG_NOTICESShow notices encountered during the compilation of asset catalogs.
Type Boolean Default Value YES -
Asset Catalog Other Flags ASSETCATALOG_OTHER_FLAGSPass additional flags through to the asset catalog compiler.
Type StringList -
Assetcatalog Output Format ASSETCATALOG_OUTPUT_FORMATType Enumeration Values human-readable-text
Default Value human-readable-text -
Show Warnings ASSETCATALOG_WARNINGSShow warnings encountered during the compilation of asset catalogs.
Type Boolean Default Value YES -
Development Language DEVELOPMENT_LANGUAGEType String -
Enable Incremental Distill ENABLE_INCREMENTAL_DISTILLEnabled the incremental
distilloption in the asset catalog compiler. This feature is experimental and should only be enabled with caution.Type bool Default Value NO -
Build Active Resources Only ENABLE_ONLY_ACTIVE_RESOURCESOmit inapplicable resources when building for a single device. For example, when building for a device with a Retina display, exclude 1x resources.
Type bool Default Value YES -
Resources Targeted Device Family RESOURCES_TARGETED_DEVICE_FAMILYOverrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
Type StringList -
Resources Ui Framework Family RESOURCES_UI_FRAMEWORK_FAMILYType String
ARKit Skybox Compiler
Compile Skybox.
-
Other Skybox Compiler Flags OTHER_SKYBOX_FLAGSType StringList -
Enable Skybox Warnings SKYBOX_ENABLE_WARNINGSType Enumeration Values YesNo
Default Value Yes
USDZ Compiler
Compile USDZ.
-
Enable USDZ Compilation ENABLE_USDZ_COMPILATIONType Boolean Default Value NO -
Other USDZ Compiler Flags OTHER_USDZ_FLAGSType StringList -
Enable USDZ Warnings USDZ_ENABLE_WARNINGSType Enumeration Values YesNo
Default Value Yes
Copy Plist File
Copies a .plist file resource to the product, optionally validating it and changing its format.
-
Property List Output Encoding PLIST_FILE_OUTPUT_FORMATSpecifies the output encoding for property list files (
.plist). The output encodings can bebinaryorXML. By default, the output encoding will be unchanged from the input.Type Enumeration Values same-as-inputXMLbinary
Default Value same-as-input -
Validate Plist Files While Copying VALIDATE_PLIST_FILES_WHILE_COPYINGType Boolean Default Value NO
Copy Strings File
Copies a .strings file to the product
-
Strings File Input Encoding STRINGS_FILE_INPUT_ENCODINGType String Default Value $(InputFileTextEncoding) -
Strings File Output Encoding STRINGS_FILE_OUTPUT_ENCODINGSpecify the encoding to be used for Strings files (by default, the output encoding will be 16-bit Unicode). The value can be either an
NSStringEncoding, such as one of the numeric values recognized byNSString, or it can be an IANA character set name as understood byCFString. The operation will fail if the file cannot be converted to the specified encoding.Type Enumeration Values UTF-16UTF-8binary
Default Value UTF-16 -
Validate Strings Files While Copying VALIDATE_STRINGS_FILES_WHILE_COPYINGType Boolean Default Value YES
Copy Tiff File
Copies a .tiff file resource with optional compression of the destination file
-
Compress Tiff Files While Copying COMPRESS_TIFF_FILES_WHILE_COPYINGType Boolean Default Value NO
Compress PNG Files
Copies a .png file resource, optionally compressing it.
-
Compress PNG Files COMPRESS_PNG_FILESIf enabled, PNG resource files are compressed as they are copied.
Type Boolean Default Value YES -
Remove Text Metadata From PNG Files STRIP_PNG_TEXTMetadata in the form of text chunks in PNG files will be removed to reduce their footprint on disk.
Type Boolean Default Value YES
Core Data
Core Data Mapping Model Compiler (MAPC)
MAPC: compiler of mapping model files .xcmappingmodel into .cdm
-
Deployment Target DEPLOYMENT_TARGETType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Mapc Module MAPC_MODULEType String Default Value $(PRODUCT_MODULE_NAME) -
Suppress all mapc warnings MAPC_NO_WARNINGSCompile
.xcmappingmodelfiles into.cdmwithout reporting warnings.Type Boolean Default Value NO -
Momc Module MOMC_MODULEType String Default Value $(PRODUCT_MODULE_NAME) -
Suppress momc warnings for delete rules MOMC_NO_DELETE_RULE_WARNINGSSuppress managed object model compiler (
momc) warnings for delete rules during the compilation of.xcdatamodel(d)files.Type Boolean Default Value NO -
Suppress momc warnings on missing inverse relationships MOMC_NO_INVERSE_RELATIONSHIP_WARNINGSSuppress managed object model compiler (
momc) warnings from output on missing inverse relationships during the compilation of.xcdatamodel(d)filesType Boolean Default Value NO -
Suppress momc warnings for entities with more than 100 properties MOMC_NO_MAX_PROPERTY_COUNT_WARNINGSSuppress managed object model compiler (
momc) warnings from output on entities with more than 100 properties during the compilation of.xcdatamodel(d)files.Type Boolean Default Value NO -
Suppress all momc warnings MOMC_NO_WARNINGSSuppress managed object model compiler (
momc) warnings from output during the compilation of.xcdatamodel(d)filesType Boolean Default Value NO -
Momc Output Suffix MOMC_OUTPUT_SUFFIXType String Default Value $(MOMC_OUTPUT_SUFFIX_$(InputFileSuffix:identifier)) -
Suppress momc error on transient inverse relationships MOMC_SUPPRESS_INVERSE_TRANSIENT_ERRORSuppress managed object model compiler (
momc) warnings from output on transient inverse relationships during the compilation of.xcdatamodel(d)files. This is only intended to be used on 10.4.x created models that compiled properly in 10.4.x before the error was introduced in 10.5Type Boolean Default Value NO -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path
Miscellaneous
Mac Catalyst
-
Derive Mac Catalyst Product Bundle Identifier DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIERWhen enabled, Xcode will automatically derive a bundle identifier for this target from its original bundle identifier when it’s building for Mac Catalyst.
Type Boolean Default Value NO -
Building for Mac Catalyst IS_MACCATALYSTIndicates whether the target is building for Mac Catalyst. This build setting is intended for use in shell scripts and build setting composition and should be considered read-only.
Type Boolean -
Supports Mac Catalyst SUPPORTS_MACCATALYSTSupport building this target for Mac Catalyst.
Type Boolean Default Value YES -
Show Mac (Designed for iPhone & iPad) Destination SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPADShow the Mac (Designed for iPhone) and Mac (Designed for iPad) destinations.
Type Boolean Default Value YES
XPC Service
XPC Service
-
Enable Exceptions GCC_ENABLE_EXCEPTIONSEnable exception handling. Generates extra code needed to propagate exceptions. For some targets, this implies GCC will generate frame unwind information for all functions, which can produce significant data size overhead, although it does not affect execution. If you do not specify this option, GCC will enable it by default for languages like C++ and Objective-C that normally require exception handling, and disable it for languages like C that do not normally require it. However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in other languages. You may also wish to disable this option if you are compiling older programs that don’t use exception handling.
Type Boolean Default Value YES -
Ld Entitlements Section LD_ENTITLEMENTS_SECTIONType String
CoreML Model Compiler
coremlc: compiler of CoreML model .mlmodel into .mlmodelc
-
CoreML Model Class Generation Language COREML_CODEGEN_LANGUAGEThe Source-code language to use for generated CoreML model class. By default “Automatic” will analyze your project to determine the correct language. Adjust this setting to explicitly select “Swift” or “Objective-C”, or select “None” to disable model class generation.
Type enum Values SwiftObjective-CAutomaticNone
Default Value Automatic -
CoreML Generated Model Inherits NSObject COREML_CODEGEN_SWIFT_GLOBAL_MODULEGenerate Swift model classes that are marked with @objc and are descendants of NSObject, in order to be accessible and usable in Objective-C. This setting has no effect if “CoreML Model Class Generation Language” is set to “Objective-C”.
Type Boolean Default Value NO -
Coreml Codegen Swift Version COREML_CODEGEN_SWIFT_VERSIONType String Default Value $(SWIFT_VERSION) -
Coreml Compiler Infoplist Content File COREML_COMPILER_INFOPLIST_CONTENT_FILEType Path Default Value $(TARGET_TEMP_DIR)/$(InputFileBase)-CoreMLPartialInfo.plist -
Coreml Deployment Target COREML_DEPLOYMENT_TARGETType String Default Value $(COREML_DEPLOYMENT_TARGET__$(IS_MACCATALYST:default=NO)) -
Coreml Deployment Target No COREML_DEPLOYMENT_TARGET__NOType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Coreml Deployment Target Yes COREML_DEPLOYMENT_TARGET__YESType String Default Value $(IPHONEOS_DEPLOYMENT_TARGET) -
Coreml Platform Name COREML_PLATFORM_NAMEType String Default Value $(COREML_PLATFORM_NAME__$(IS_MACCATALYST:default=NO)) -
Coreml Platform Name No COREML_PLATFORM_NAME__NOType String Default Value $(SWIFT_PLATFORM_TARGET_PREFIX) -
Coreml Platform Name Yes COREML_PLATFORM_NAME__YESType String Default Value maccatalyst
Instruments Package Builder
-
Instruments Package Builder INSTRUMENTS_PACKAGE_BUILDERType Path Default Value instrumentbuilder -
Instruments Package Builder Dependency Info File INSTRUMENTS_PACKAGE_BUILDER_DEPENDENCY_INFO_FILEType String Default Value $(TARGET_TEMP_DIR)/instruments-package-builder.dependencies -
Linked Instruments Packages INSTRUMENTS_PACKAGE_BUILDER_LINKED_PACKAGESType StringList -
Disable Standard Instruments Package Search Path INSTRUMENTS_PACKAGE_BUILDER_NO_SYSTEM_SEARCHType Boolean Default Value NO -
Instruments Package Builder Search Paths INSTRUMENTS_PACKAGE_BUILDER_SEARCH_PATHSType StringList Default Value $(BUILT_PRODUCTS_DIR) -
Instruments Package Version INSTRUMENTS_PACKAGE_BUILDER_VERSION_OVERRIDEType String
IOKit Interface Generator
Invoke the ‘iig’ command line utility to compile an IIG file.
-
Iig Cxx Language Standard IIG_CXX_LANGUAGE_STANDARDType String Default Value $(CLANG_CXX_LANGUAGE_STANDARD) -
Iig Derived File Dir IIG_DERIVED_FILE_DIRType String Default Value $(DERIVED_FILE_DIR)/$(IIG_FRAMEWORK_NAME) -
Iig Framework Name IIG_FRAMEWORK_NAMEType String Default Value $(PRODUCT_NAME) -
Iig Headers Dir IIG_HEADERS_DIRType String Default Value $(IIG_DERIVED_FILE_DIR) -
Iig Implementation Dir IIG_IMPLEMENTATION_DIRType String Default Value $(IIG_DERIVED_FILE_DIR) -
Iig Preprocessor Definitions IIG_PREPROCESSOR_DEFINITIONSType StringList Default Value __IIG=1 -
Other IIG C Flags OTHER_IIG_CFLAGSSpace-separated list of additional flags to pass to the
iiginvocation of clang. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particulariigflagType StringList -
Other IIG Flags OTHER_IIG_FLAGSSpace-separated list of additional flags to pass to the
iigcompiler. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particulariigflagType StringList -
Base SDK SDKROOTThe name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
Type Path -
System Framework Search Paths SYSTEM_FRAMEWORK_SEARCH_PATHSThis is a list of paths to folders containing system frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Framework Search Paths”, except that the search paths are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system framework search paths, then the search paths are appended to any existing framework search paths defined in “Framework Search Paths”.
Type PathList -
System Header Search Paths SYSTEM_HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported system header files when compiling C, Objective-C, C++, or Objective-C++. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Header Search Paths”, except that headers are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system header search paths, then the search paths are appended to any existing header search paths defined in “Header Search Paths”.
Type PathList
OSA Compiler
AppleScript Compiler
-
Save as Execute-Only OSACOMPILE_EXECUTE_ONLYSaves the output script in execute-only form; the script can be run, but cannot be opened in Script Editor or Xcode. With this option turned off, a user may see the original script source by opening the script.
Type Boolean Default Value NO -
Other OSACompile Flags OTHER_OSACOMPILEFLAGSSpace-separated list of additional flags to pass to
osacompile. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particularosacompileflag.Type StringList
DTrace
Invoke the ‘dtrace’ command line utility to compile a DTrace script file.
-
Other DTrace Flags DTRACE_OTHER_FLAGSSpace-separated list of additional flags to pass to the
dtracecompiler. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particulardtraceflag.Type StringList -
Dtrace Output File Type DTRACE_OUTPUT_FILE_TYPEType Enumeration Values Header
Default Value Header
MiG
Mach Interface Stub Generator
-
Header Search Paths HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Mig Deployment Target MIG_DEPLOYMENT_TARGETType String Default Value $($(DEPLOYMENT_TARGET_SETTING_NAME)) -
Other MiG Flags OTHER_MIGFLAGSSpace-separated list of additional flags to pass to
mig. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for amigflag.Type StringList
Nasm
Assemble Using NASM (Netwide 80x86 Assembler)
-
Header Search Paths HEADER_SEARCH_PATHSThis is a list of paths to folders to be searched by the compiler for included or imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
Type PathList -
Other Nasm Flags NASM_OTHER_FLAGSSpace-separated list of additional flags to pass to the
nasmassembler. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particularnasmflag.Type StringList -
Nasm Output File Format NASM_OUTPUT_FILE_FORMATType String Default Value macho -
Nasm Preinclude File NASM_PREINCLUDE_FILESpecifies a file to be preincluded, before the main source file starts to be processed.
Type String
Rez
Resource Manager Resource Compiler
-
Other Rez Flags OTHER_REZFLAGSSpace-separated list of additional flags to pass to the
Rezcompiler. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particularRezflag.Type StringList -
File Fork of Binary Sources RESMERGER_SOURCES_FORKDetermines whether
ResMergertreats binary input files as data-fork hosted or resource-fork hosted, or whether it automatically examines each input file.Type Enumeration Values dataresourceauto
Default Value auto -
Rez Prefix File REZ_PREFIX_FILEImplicitly include the named file on the command line for each
Rezfile compiled. The path given should either be a project relative path or an absolute path.Type String -
Preprocessor Defines REZ_PREPROCESSOR_DEFINITIONSThese strings will be defined when compiling resource manager resources.
Type StringList -
Preprocessor Undefines REZ_PREPROCESSOR_UNDEFINITIONSThese strings will be undefined when compiling resource manager resources.
Type StringList -
Resolve Aliases REZ_RESOLVE_ALIASESEnables aliases to be unresolved or conditionally resolved. The default is to resolve aliases always.
Type Enumeration Values AlwaysNeverIncludesOutputs
Default Value Always -
Read-only Resource Map REZ_RESOURCE_MAP_READ_ONLYEnabling this option causes the resource map output to be read-only.
Type Boolean Default Value NO -
Rez Script Type REZ_SCRIPT_TYPEEnables the recognition of a specific 2-byte character script identifier to use when compiling resource manager resources. This allows for 2-byte characters in strings to be handled as indivisible entities. The default language is Roman, which specifies 1-byte character sets.
Type Enumeration Values RomanJapaneseKoreanSimpChineseTradChinese
Default Value Roman -
Show Diagnostic Output REZ_SHOW_DEBUG_OUTPUTEnabling this option causes version and progress information to be written when compiling resource manager resources.
Type Boolean Default Value NO -
Suppress Type Redeclaration Warnings REZ_SUPPRESS_REDECLARED_RESOURCE_TYPE_WARNINGSEnabling this option causes warnings about redeclared resource types to be suppressed.
Type Boolean Default Value NO
Lex
Lex Scanner Generator
-
Other Lex Flags LEXFLAGSSpace-separated list of additional flags to pass to
lex. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for alexflag.Type StringList -
Generate Case-Insensitive Scanner LEX_CASE_INSENSITIVE_SCANNEREnabling this option causes
lexto generate a case-insensitive scanner. The case of letters given in thelexinput patterns will be ignored, and tokens in the input will be matched regardless of case. The matched text given inyytextwill have the preserved case (for example, it will not be folded).Type Boolean Default Value NO -
Insert #line Directives LEX_INSERT_LINE_DIRECTIVESEnabling this option instructs
lexto insert#linedirectives so error messages in the actions will be correctly located with respect to either the originallexinput file (if the errors are due to code in the input file), orlex.yy.c(if the errors arelex’s fault). This option is enabled by default; disabling it passes a flag tolexto not insert#linedirectives.Type Boolean Default Value YES -
Suppress Default Rule LEX_SUPPRESS_DEFAULT_RULEEnabling this option causes the default rule (that unmatched scanner input is echoed to
stdout) to be suppressed. If the scanner encounters input that does not match any of its rules, it aborts with an error. This option is useful for finding holes in a scanner’s rule set.Type Boolean Default Value NO -
Suppress Warning Messages LEX_SUPPRESS_WARNINGSEnabling this option causes
lexto suppress its warning messages.Type Boolean Default Value NO
Yacc
Yacc Parser Generator
-
Other Yacc Flags YACCFLAGSSpace-separated list of additional flags to pass to
yacc. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for ayaccflag.Type StringList -
Generated File Stem YACC_GENERATED_FILE_STEMThe file stem to use for the files generated by
yacc. The files will be named<stem>.tab.cand<stem>.tab.hbased on the value of this setting. The Standard (y) option will cause allyaccsource files in the same target to produce the same output file, and it is not recommended for targets containing multipleyaccsource files.Type enum Values StandardInputFileStem
Default Value Standard -
Generate Debugging Directives YACC_GENERATE_DEBUGGING_DIRECTIVESEnabling this option changes the preprocessor directives generated by
yaccso that debugging statements will be incorporated in the compiled code.Type bool Default Value NO -
Insert #line Directives YACC_INSERT_LINE_DIRECTIVESEnabling this option causes
yaccto insert the#linedirectives in the generated code. The#linedirectives let the C compiler relate errors in the generated code to the user’s original code. If this option is disabled,#linedirectives specified by the user in the source file will still be retained.Type bool Default Value YES