Skip to content

Instantly share code, notes, and snippets.

@danielmartin
Created February 23, 2020 14:37
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielmartin/ecccec74e162a322980fc980c5097cad to your computer and use it in GitHub Desktop.
Save danielmartin/ecccec74e162a322980fc980c5097cad to your computer and use it in GitHub Desktop.
Complete list of Xcode new build system settings and their documentation in JSON format.
This file has been truncated, but you can view the full file.
[
{
"spec": "com.apple.compilers.metal",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Metal.xcplugin/Contents/Resources/Metal Compiler.xcspec",
"options": [
{
"name": "CLANG_DIAGNOSTICS_FILE"
},
{
"name": "MTLCOMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "MTLCOMPILER_OUTPUT_FILE"
},
{
"displayName": "Other Metal Compiler Flags",
"description": "Space-separated list of compiler flags",
"name": "MTL_COMPILER_FLAGS"
},
{
"name": "MTL_DEPLOYMENT_TARGET"
},
{
"displayName": "Produce Debugging Information",
"description": "Debugging information is required for shader debugging and profiling.",
"name": "MTL_ENABLE_DEBUG_INFO"
},
{
"displayName": "Enable Index-While-Building Functionality (Metal)",
"description": "Control whether the compiler should emit index data while building.",
"name": "MTL_ENABLE_INDEX_STORE"
},
{
"displayName": "Enable Modules (Metal)",
"description": "Enables the use of modules. System headers are imported as semantic modules instead of raw headers. This can result in faster builds and project indexing.",
"name": "MTL_ENABLE_MODULES"
},
{
"displayName": "Enable Fast Math",
"description": "Enable optimizations for floating-point arithmetic that may violate the IEEE 754 standard and disable the high precision variant of math functions for single and half precision floating-point.",
"name": "MTL_FAST_MATH"
},
{
"name": "MTL_FRAMEWORK_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Header Search Paths",
"description": "This is a list of paths to folders to be searched by the compiler for included or imported header files when compiling Metal. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. [MTL_HEADER_SEARCH_PATHS, -I]",
"name": "MTL_HEADER_SEARCH_PATHS"
},
{
"name": "MTL_HEADER_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Ignore Warnings",
"description": "Enabling this option causes all warnings to be ignored. [MTL_IGNORE_WARNINGS, -W]",
"name": "MTL_IGNORE_WARNINGS"
},
{
"name": "MTL_INDEX_STORE_PATH"
},
{
"displayName": "Metal Language Revision",
"description": "Determine the language revision to use. A value for this option must be provided.",
"name": "MTL_LANGUAGE_REVISION"
},
{
"displayName": "Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form \"foo\" or \"foo=bar\".",
"name": "MTL_PREPROCESSOR_DEFINITIONS"
},
{
"name": "MTL_TARGET_TRIPLE"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors. [MTL_TREAT_WARNINGS_AS_ERRORS, -Werror]",
"name": "MTL_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "SDKROOT"
},
{
"name": "build_file_compiler_flags"
},
{}
]
},
{
"spec": "com.apple.compilers.metal",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Metal.xcplugin/Contents/Resources/Metal Compiler.xcspec",
"options": [
{
"name": "CLANG_DIAGNOSTICS_FILE"
},
{
"name": "MTLCOMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "MTLCOMPILER_OUTPUT_FILE"
},
{
"displayName": "Other Metal Compiler Flags",
"description": "Space-separated list of compiler flags",
"name": "MTL_COMPILER_FLAGS"
},
{
"name": "MTL_DEPLOYMENT_TARGET"
},
{
"displayName": "Produce Debugging Information",
"description": "Debugging information is required for shader debugging and profiling.",
"name": "MTL_ENABLE_DEBUG_INFO"
},
{
"displayName": "Enable Index-While-Building Functionality (Metal)",
"description": "Control whether the compiler should emit index data while building.",
"name": "MTL_ENABLE_INDEX_STORE"
},
{
"displayName": "Enable Modules (Metal)",
"description": "Enables the use of modules. System headers are imported as semantic modules instead of raw headers. This can result in faster builds and project indexing.",
"name": "MTL_ENABLE_MODULES"
},
{
"displayName": "Enable Fast Math",
"description": "Enable optimizations for floating-point arithmetic that may violate the IEEE 754 standard and disable the high precision variant of math functions for single and half precision floating-point.",
"name": "MTL_FAST_MATH"
},
{
"name": "MTL_FRAMEWORK_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Header Search Paths",
"description": "This is a list of paths to folders to be searched by the compiler for included or imported header files when compiling Metal. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. [MTL_HEADER_SEARCH_PATHS, -I]",
"name": "MTL_HEADER_SEARCH_PATHS"
},
{
"name": "MTL_HEADER_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Ignore Warnings",
"description": "Enabling this option causes all warnings to be ignored. [MTL_IGNORE_WARNINGS, -W]",
"name": "MTL_IGNORE_WARNINGS"
},
{
"name": "MTL_INDEX_STORE_PATH"
},
{
"displayName": "Metal Language Revision",
"description": "Determine the language revision to use. A value for this option must be provided.",
"name": "MTL_LANGUAGE_REVISION"
},
{
"displayName": "Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form \"foo\" or \"foo=bar\".",
"name": "MTL_PREPROCESSOR_DEFINITIONS"
},
{
"name": "MTL_TARGET_TRIPLE"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors. [MTL_TREAT_WARNINGS_AS_ERRORS, -Werror]",
"name": "MTL_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "SDKROOT"
},
{
"name": "build_file_compiler_flags"
},
{}
]
},
{
"spec": "com.apple.build-system.core",
"path": "/Applications/Xcode.app/Contents/PlugIns/IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Simulator.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.external",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/ExternalBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.jam",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/JamBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PER_STYLE_BUILD_DIRECTORIES"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_REFERENCE"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.native",
"path": "/Applications/Xcode.app/Contents/PlugIns/IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Simulator.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "ALWAYS_USE_SEPARATE_HEADERMAPS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CCHROOT"
},
{
"name": "CHMOD"
},
{
"name": "CHOWN"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLEAN_PRECOMPS"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODESIGNING_FOLDER_PATH"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COMBINE_HIDPI_IMAGES"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"name": "COMPOSITE_SDK_DIRS"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"description": "Specifies the directory inside the generated bundle that contains the product’s files.",
"name": "CONTENTS_FOLDER_PATH"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"name": "COPY_RESOURCES_FROM_STATIC_FRAMEWORKS"
},
{
"name": "CP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"description": "The name of the active architecture being processed.",
"name": "CURRENT_ARCH"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"description": "The name of the active variant being processed.",
"name": "CURRENT_VARIANT"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DERIVED_FILES_DIR"
},
{
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_PATHS"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"description": "Identifies the directory that contains the bundle’s documentation files.",
"name": "DOCUMENTATION_FOLDER_PATH"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"description": "Identifies the directory that contains additional binary files.",
"name": "EXECUTABLES_FOLDER_PATH"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"description": "Identifies the directory that contains the binary the target builds.",
"name": "EXECUTABLE_FOLDER_PATH"
},
{
"description": "Specifies the name of the binary the target produces.",
"name": "EXECUTABLE_NAME"
},
{
"description": "Specifies the path to the binary the target produces within its bundle.",
"name": "EXECUTABLE_PATH"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"description": "Specifies the suffix of the binary filename, including the character that separates the extension from the rest of the bundle name.",
"name": "EXECUTABLE_SUFFIX"
},
{
"name": "EXECUTABLE_VARIANT_SUFFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FIXED_FILES_DIR"
},
{
"description": "Specifies the directory that contains the product’s embedded frameworks.",
"name": "FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"name": "GCC_PREFIX_HEADER"
},
{
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"name": "GCC_VERSION_IDENTIFIER"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"name": "GLOBAL_CFLAGS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "ICONV"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"description": "Specifies the path to the bundle’s information property list file.",
"name": "INFOPLIST_PATH"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"description": "Specifies the file that contains the bundle’s localized strings file.",
"name": "INFOSTRINGS_PATH"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVAC_DEFAULT_FLAGS"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FOLDER_PATH"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"name": "JIKES_DEFAULT_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_FLAGS"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LEX"
},
{
"name": "LEXFLAGS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINKER_LIBRARY_FLAGS"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"name": "LOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MACOS_CREATOR"
},
{
"name": "MACOS_CREATOR_ARG"
},
{
"name": "MACOS_TYPE"
},
{
"name": "MACOS_TYPE_ARG"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Specifies the directory that contains the product’s Clang module maps and Swift module content.",
"name": "MODULES_FOLDER_PATH"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"name": "NO_COMMON"
},
{
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"name": "OPTIMIZATION_CFLAGS"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OSAC"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"displayName": "Other Librarian Flags",
"description": "Options defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.",
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "OTHER_MIGFLAGS"
},
{
"name": "OTHER_OSAFLAGS"
},
{
"name": "OTHER_PRECOMP_CFLAGS"
},
{
"name": "OTHER_RESMERGERFLAGS"
},
{
"name": "OTHER_REZFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"description": "Uniform 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*.",
"name": "PACKAGE_TYPE"
},
{
"name": "PASCAL_STRINGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"name": "PBDEVELOPMENTPLIST_PATH"
},
{
"name": "PFE_FILE_C_DIALECTS"
},
{
"name": "PKGINFO_PATH"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"description": "Specifies the directory that contains the product’s plugins.",
"name": "PLUGINS_FOLDER_PATH"
},
{
"name": "PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_FLAGS"
},
{
"name": "PREFIX_HEADER"
},
{
"name": "PREFIX_REFERENCE"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PRODUCT_TYPE"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCE_RULES_PLIST_PATH"
},
{
"description": "Specifies whether to keep copies of unstripped binaries available.",
"name": "RETAIN_RAW_BINARIES"
},
{
"description": "Specifies the directory in which the collected Resource Manager resources generated by `ResMerger` are stored before they are added to the product.",
"name": "REZ_COLLECTOR_DIR"
},
{
"name": "REZ_EXECUTABLE"
},
{
"description": "Specifies the directory in which compiled Resource Manager resources generated by `Rez` are stored before they are collected using `ResMerger`.",
"name": "REZ_OBJECTS_DIR"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"description": "Specifies the directory that contains the product’s scripts.",
"name": "SCRIPTS_FOLDER_PATH"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SED"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SET_DIR_MODE_OWNER_GROUP"
},
{
"name": "SET_FILE_MODE_OWNER_GROUP"
},
{
"name": "SHALLOW_BUNDLE"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"description": "Specifies the directory that contains the product’s shared frameworks.",
"name": "SHARED_FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHARED_SUPPORT_FOLDER_PATH"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"displayName": "Supported Platforms",
"description": "The 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.",
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"name": "SYMBOL_HEADER"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"description": "Specifies the directory that contains the product’s unlocalized resources.",
"name": "UNLOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"name": "UNSTRIPPED_PRODUCT"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "USE_DYNAMIC_NO_PIC"
},
{
"name": "USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Built Product",
"description": "If enabled, perform validation checks on the product as part of the build process.",
"name": "VALIDATE_PRODUCT"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"description": "Specifies whether the target’s Copy Files build phases generate additional information when copying files.",
"name": "VERBOSE_PBXCP"
},
{
"name": "VERSIONING_STUB"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONPLIST_PATH"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_STRING"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"description": "Specifies the filename, including the appropriate extension, of the product bundle.",
"name": "WRAPPER_NAME"
},
{
"name": "WRAPPER_PREFIX"
},
{
"description": "Specifies the suffix of the product bundle name, including the character that separates the extension from the rest of the bundle name.",
"name": "WRAPPER_SUFFIX"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{
"name": "XPCSERVICES_FOLDER_PATH"
},
{
"name": "YACC"
},
{
"name": "YACCFLAGS"
},
{}
]
},
{
"spec": "com.apple.pbx.linkers.ld",
"path": "/Applications/Xcode.app/Contents/PlugIns/IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Simulator.xcspec",
"options": [
{
"name": "ALL_OTHER_LDFLAGS"
},
{
"name": "ALTERNATE_LINKER"
},
{
"name": "AdditionalCommandLineArguments"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_ADDITIONAL_DEPLOYMENT_TARGET_FLAGS"
},
{
"name": "LD_BITCODE_GENERATION_MODE"
},
{
"name": "LD_DEBUG_VARIANT"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DEPLOYMENT_TARGET"
},
{
"name": "LD_DONT_RUN_DEDUPLICATION"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_ENTITLEMENTS_SECTION"
},
{
"name": "LD_EXPORT_GLOBAL_SYMBOLS"
},
{
"name": "LD_FINAL_OUTPUT_FILE"
},
{
"name": "LD_GENERATE_BITCODE_SYMBOL_MAP"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_HIDE_BITCODE_SYMBOLS"
},
{
"name": "LD_LTO_OBJECT_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_OBJC_ABI_VERSION"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LD_TARGET_TRIPLE_ARCHS"
},
{
"name": "LD_TARGET_TRIPLE_VARIANTS"
},
{
"name": "LD_THREAD_SANITIZER"
},
{
"name": "LD_VERIFY_BITCODE"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDRFLAGS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "PRODUCT_TYPE_LIBRARY_SEARCH_PATHS"
},
{
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"name": "SDKROOT"
},
{
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "__INPUT_FILE_LIST_PATH__"
},
{
"name": "arch"
},
{}
]
},
{
"spec": "com.apple.compilers.assetcatalog",
"path": "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEAppleTVSupportCore.ideplugin/Contents/Resources/Shared.xcspec",
"options": [
{
"displayName": "Asset Catalog App Icon Set Name",
"description": "Name of an asset catalog app icon set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_APPICON_NAME"
},
{
"name": "ASSETCATALOG_COMPILER_COMPRESS_PNGS"
},
{
"name": "ASSETCATALOG_COMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "ASSETCATALOG_COMPILER_ENABLE_ON_DEMAND_RESOURCES"
},
{
"name": "ASSETCATALOG_COMPILER_FLATTENED_APP_ICON_PATH"
},
{
"name": "ASSETCATALOG_COMPILER_INFOPLIST_CONTENT_FILE"
},
{
"displayName": "Asset Catalog Launch Image Set Name",
"description": "Name of an asset catalog launch image set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME"
},
{
"displayName": "Leaderboard Identifier Prefix",
"description": "Leaderboards in the asset catalog may optionally specify a Game Center identifier. If they do not, their name will be prefixed by this value to form an automatically generated identifier.",
"name": "ASSETCATALOG_COMPILER_LEADERBOARD_IDENTIFIER_PREFIX"
},
{
"displayName": "Leaderboard Set Identifier Prefix",
"description": "Leaderboard sets in the asset catalog may optionally specify a Game Center identifier. If they do not, their name will be prefixed by this value to form an automatically generated identifier.",
"name": "ASSETCATALOG_COMPILER_LEADERBOARD_SET_IDENTIFIER_PREFIX"
},
{
"displayName": "Optimization",
"description": "With no value, the compiler uses the default optimization. You can also specify `time` to optimize for speed of access or `space` to optimize for a smaller compiled asset catalogs.",
"name": "ASSETCATALOG_COMPILER_OPTIMIZATION"
},
{
"displayName": "Sticker Pack Identifier Prefix",
"description": "Sticker 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.",
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX"
},
{
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_STRINGS"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_MODEL"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSION"
},
{
"displayName": "Show Notices",
"description": "Show notices encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_NOTICES"
},
{
"displayName": "Asset Catalog Other Flags",
"description": "Pass additional flags through to the asset catalog compiler.",
"name": "ASSETCATALOG_OTHER_FLAGS"
},
{
"name": "ASSETCATALOG_OUTPUT_FORMAT"
},
{
"displayName": "Show Warnings",
"description": "Show warnings encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_WARNINGS"
},
{
"name": "DEVELOPMENT_LANGUAGE"
},
{
"displayName": "Enable Incremental Distill",
"description": "Enabled the incremental `distill` option in the asset catalog compiler. This feature is experimental and should only be enabled with caution.",
"name": "ENABLE_INCREMENTAL_DISTILL"
},
{
"displayName": "Build Active Resources Only",
"description": "Omit inapplicable resources when building for a single device. For example, when building for a device with a Retina display, exclude 1x resources.",
"name": "ENABLE_ONLY_ACTIVE_RESOURCES"
},
{
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCES_UI_FRAMEWORK_FAMILY"
},
{}
]
},
{
"spec": "com.apple.compilers.assetcatalog",
"path": "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEWatchSupportCore.ideplugin/Contents/Resources/Shared.xcspec",
"options": [
{
"displayName": "Asset Catalog App Icon Set Name",
"description": "Name of an asset catalog app icon set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_APPICON_NAME"
},
{
"displayName": "Watch Complication Name",
"description": "The name of a watch complication to use from the asset catalog.",
"name": "ASSETCATALOG_COMPILER_COMPLICATION_NAME"
},
{
"name": "ASSETCATALOG_COMPILER_COMPRESS_PNGS"
},
{
"name": "ASSETCATALOG_COMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "ASSETCATALOG_COMPILER_ENABLE_ON_DEMAND_RESOURCES"
},
{
"name": "ASSETCATALOG_COMPILER_INFOPLIST_CONTENT_FILE"
},
{
"displayName": "Asset Catalog Launch Image Set Name",
"description": "Name of an asset catalog launch image set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME"
},
{
"displayName": "Optimization",
"description": "With no value, the compiler uses the default optimization. You can also specify `time` to optimize for speed of access or `space` to optimize for a smaller compiled asset catalogs.",
"name": "ASSETCATALOG_COMPILER_OPTIMIZATION"
},
{
"displayName": "Sticker Pack Identifier Prefix",
"description": "Sticker 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.",
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX"
},
{
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_STRINGS"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_MODEL"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSION"
},
{
"displayName": "Show Notices",
"description": "Show notices encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_NOTICES"
},
{
"displayName": "Asset Catalog Other Flags",
"description": "Pass additional flags through to the asset catalog compiler.",
"name": "ASSETCATALOG_OTHER_FLAGS"
},
{
"name": "ASSETCATALOG_OUTPUT_FORMAT"
},
{
"displayName": "Show Warnings",
"description": "Show warnings encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_WARNINGS"
},
{
"name": "DEVELOPMENT_LANGUAGE"
},
{
"displayName": "Enable Incremental Distill",
"description": "Enabled the incremental `distill` option in the asset catalog compiler. This feature is experimental and should only be enabled with caution.",
"name": "ENABLE_INCREMENTAL_DISTILL"
},
{
"displayName": "Build Active Resources Only",
"description": "Omit inapplicable resources when building for a single device. For example, when building for a device with a Retina display, exclude 1x resources.",
"name": "ENABLE_ONLY_ACTIVE_RESOURCES"
},
{
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCES_UI_FRAMEWORK_FAMILY"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0.compiler",
"path": "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEWatchSupportCore.ideplugin/Contents/Resources/Shared.xcspec",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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.",
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"displayName": "Other Warning Flags",
"description": "Space-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.",
"name": "WARNING_CFLAGS"
},
{
"name": "arch"
},
{
"name": "diagnostic_message_length"
},
{
"name": "print_note_include_stack"
},
{}
]
},
{
"spec": "com.apple.build-system.external",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/ExternalBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.jam",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/JamBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PER_STYLE_BUILD_DIRECTORIES"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_REFERENCE"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.core",
"path": "/Applications/Xcode.app/Contents/PlugIns/IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Shared.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.external",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/ExternalBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.jam",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/JamBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PER_STYLE_BUILD_DIRECTORIES"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_REFERENCE"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.native",
"path": "/Applications/Xcode.app/Contents/PlugIns/IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Shared.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "ALWAYS_USE_SEPARATE_HEADERMAPS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CCHROOT"
},
{
"name": "CHMOD"
},
{
"name": "CHOWN"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLEAN_PRECOMPS"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODESIGNING_FOLDER_PATH"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COMBINE_HIDPI_IMAGES"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"name": "COMPOSITE_SDK_DIRS"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"description": "Specifies the directory inside the generated bundle that contains the product’s files.",
"name": "CONTENTS_FOLDER_PATH"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"name": "COPY_RESOURCES_FROM_STATIC_FRAMEWORKS"
},
{
"name": "CP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"description": "The name of the active architecture being processed.",
"name": "CURRENT_ARCH"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"description": "The name of the active variant being processed.",
"name": "CURRENT_VARIANT"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DERIVED_FILES_DIR"
},
{
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_PATHS"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"description": "Identifies the directory that contains the bundle’s documentation files.",
"name": "DOCUMENTATION_FOLDER_PATH"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"description": "Identifies the directory that contains additional binary files.",
"name": "EXECUTABLES_FOLDER_PATH"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"description": "Identifies the directory that contains the binary the target builds.",
"name": "EXECUTABLE_FOLDER_PATH"
},
{
"description": "Specifies the name of the binary the target produces.",
"name": "EXECUTABLE_NAME"
},
{
"description": "Specifies the path to the binary the target produces within its bundle.",
"name": "EXECUTABLE_PATH"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"description": "Specifies the suffix of the binary filename, including the character that separates the extension from the rest of the bundle name.",
"name": "EXECUTABLE_SUFFIX"
},
{
"name": "EXECUTABLE_VARIANT_SUFFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FIXED_FILES_DIR"
},
{
"description": "Specifies the directory that contains the product’s embedded frameworks.",
"name": "FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"name": "GCC_PREFIX_HEADER"
},
{
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"name": "GCC_VERSION_IDENTIFIER"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"name": "GLOBAL_CFLAGS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "ICONV"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"description": "Specifies the path to the bundle’s information property list file.",
"name": "INFOPLIST_PATH"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"description": "Specifies the file that contains the bundle’s localized strings file.",
"name": "INFOSTRINGS_PATH"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVAC_DEFAULT_FLAGS"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FOLDER_PATH"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"name": "JIKES_DEFAULT_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_FLAGS"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LEX"
},
{
"name": "LEXFLAGS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINKER_LIBRARY_FLAGS"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"name": "LOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MACOS_CREATOR"
},
{
"name": "MACOS_CREATOR_ARG"
},
{
"name": "MACOS_TYPE"
},
{
"name": "MACOS_TYPE_ARG"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Specifies the directory that contains the product’s Clang module maps and Swift module content.",
"name": "MODULES_FOLDER_PATH"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"name": "NO_COMMON"
},
{
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"name": "OPTIMIZATION_CFLAGS"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OSAC"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"displayName": "Other Librarian Flags",
"description": "Options defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.",
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "OTHER_MIGFLAGS"
},
{
"name": "OTHER_OSAFLAGS"
},
{
"name": "OTHER_PRECOMP_CFLAGS"
},
{
"name": "OTHER_RESMERGERFLAGS"
},
{
"name": "OTHER_REZFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"description": "Uniform 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*.",
"name": "PACKAGE_TYPE"
},
{
"name": "PASCAL_STRINGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"name": "PBDEVELOPMENTPLIST_PATH"
},
{
"name": "PFE_FILE_C_DIALECTS"
},
{
"name": "PKGINFO_PATH"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"description": "Specifies the directory that contains the product’s plugins.",
"name": "PLUGINS_FOLDER_PATH"
},
{
"name": "PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_FLAGS"
},
{
"name": "PREFIX_HEADER"
},
{
"name": "PREFIX_REFERENCE"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PRODUCT_TYPE"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCE_RULES_PLIST_PATH"
},
{
"description": "Specifies whether to keep copies of unstripped binaries available.",
"name": "RETAIN_RAW_BINARIES"
},
{
"description": "Specifies the directory in which the collected Resource Manager resources generated by `ResMerger` are stored before they are added to the product.",
"name": "REZ_COLLECTOR_DIR"
},
{
"name": "REZ_EXECUTABLE"
},
{
"description": "Specifies the directory in which compiled Resource Manager resources generated by `Rez` are stored before they are collected using `ResMerger`.",
"name": "REZ_OBJECTS_DIR"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"description": "Specifies the directory that contains the product’s scripts.",
"name": "SCRIPTS_FOLDER_PATH"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SED"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SET_DIR_MODE_OWNER_GROUP"
},
{
"name": "SET_FILE_MODE_OWNER_GROUP"
},
{
"name": "SHALLOW_BUNDLE"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"description": "Specifies the directory that contains the product’s shared frameworks.",
"name": "SHARED_FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHARED_SUPPORT_FOLDER_PATH"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"displayName": "Supported Platforms",
"description": "The 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.",
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"name": "SYMBOL_HEADER"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"description": "Specifies the directory that contains the product’s unlocalized resources.",
"name": "UNLOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"name": "UNSTRIPPED_PRODUCT"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "USE_DYNAMIC_NO_PIC"
},
{
"name": "USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Built Product",
"description": "If enabled, perform validation checks on the product as part of the build process.",
"name": "VALIDATE_PRODUCT"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"description": "Specifies whether the target’s Copy Files build phases generate additional information when copying files.",
"name": "VERBOSE_PBXCP"
},
{
"name": "VERSIONING_STUB"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONPLIST_PATH"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_STRING"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"description": "Specifies the filename, including the appropriate extension, of the product bundle.",
"name": "WRAPPER_NAME"
},
{
"name": "WRAPPER_PREFIX"
},
{
"description": "Specifies the suffix of the product bundle name, including the character that separates the extension from the rest of the bundle name.",
"name": "WRAPPER_SUFFIX"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{
"name": "XPCSERVICES_FOLDER_PATH"
},
{
"name": "YACC"
},
{
"name": "YACCFLAGS"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0",
"path": "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEWatchSupportCore.ideplugin/Contents/Resources/Shared.xcspec",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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.",
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"displayName": "Other Warning Flags",
"description": "Space-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.",
"name": "WARNING_CFLAGS"
},
{
"name": "arch"
},
{
"name": "diagnostic_message_length"
},
{
"name": "print_note_include_stack"
},
{}
]
},
{
"spec": "com.apple.pbx.linkers.ld",
"path": "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEWatchSupportCore.ideplugin/Contents/Resources/Simulator.xcspec",
"options": [
{
"name": "ALL_OTHER_LDFLAGS"
},
{
"name": "ALTERNATE_LINKER"
},
{
"name": "AdditionalCommandLineArguments"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_ADDITIONAL_DEPLOYMENT_TARGET_FLAGS"
},
{
"name": "LD_BITCODE_GENERATION_MODE"
},
{
"name": "LD_DEBUG_VARIANT"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DEPLOYMENT_TARGET"
},
{
"name": "LD_DONT_RUN_DEDUPLICATION"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_ENTITLEMENTS_SECTION"
},
{
"name": "LD_EXPORT_GLOBAL_SYMBOLS"
},
{
"name": "LD_FINAL_OUTPUT_FILE"
},
{
"name": "LD_GENERATE_BITCODE_SYMBOL_MAP"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_HIDE_BITCODE_SYMBOLS"
},
{
"name": "LD_LTO_OBJECT_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_OBJC_ABI_VERSION"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LD_TARGET_TRIPLE_ARCHS"
},
{
"name": "LD_TARGET_TRIPLE_VARIANTS"
},
{
"name": "LD_THREAD_SANITIZER"
},
{
"name": "LD_VERIFY_BITCODE"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDRFLAGS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "PRODUCT_TYPE_LIBRARY_SEARCH_PATHS"
},
{
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"name": "SDKROOT"
},
{
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "__INPUT_FILE_LIST_PATH__"
},
{
"name": "arch"
},
{}
]
},
{
"spec": "com.apple.compilers.metal",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Metal.xcplugin/Contents/Resources/Metal Compiler.xcspec",
"options": [
{
"name": "CLANG_DIAGNOSTICS_FILE"
},
{
"name": "MTLCOMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "MTLCOMPILER_OUTPUT_FILE"
},
{
"displayName": "Other Metal Compiler Flags",
"description": "Space-separated list of compiler flags",
"name": "MTL_COMPILER_FLAGS"
},
{
"name": "MTL_DEPLOYMENT_TARGET"
},
{
"displayName": "Produce Debugging Information",
"description": "Debugging information is required for shader debugging and profiling.",
"name": "MTL_ENABLE_DEBUG_INFO"
},
{
"displayName": "Enable Index-While-Building Functionality (Metal)",
"description": "Control whether the compiler should emit index data while building.",
"name": "MTL_ENABLE_INDEX_STORE"
},
{
"displayName": "Enable Modules (Metal)",
"description": "Enables the use of modules. System headers are imported as semantic modules instead of raw headers. This can result in faster builds and project indexing.",
"name": "MTL_ENABLE_MODULES"
},
{
"displayName": "Enable Fast Math",
"description": "Enable optimizations for floating-point arithmetic that may violate the IEEE 754 standard and disable the high precision variant of math functions for single and half precision floating-point.",
"name": "MTL_FAST_MATH"
},
{
"name": "MTL_FRAMEWORK_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Header Search Paths",
"description": "This is a list of paths to folders to be searched by the compiler for included or imported header files when compiling Metal. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. [MTL_HEADER_SEARCH_PATHS, -I]",
"name": "MTL_HEADER_SEARCH_PATHS"
},
{
"name": "MTL_HEADER_SEARCH_PATH_BUILT_PRODUCTS_DIR"
},
{
"displayName": "Ignore Warnings",
"description": "Enabling this option causes all warnings to be ignored. [MTL_IGNORE_WARNINGS, -W]",
"name": "MTL_IGNORE_WARNINGS"
},
{
"name": "MTL_INDEX_STORE_PATH"
},
{
"displayName": "Metal Language Revision",
"description": "Determine the language revision to use. A value for this option must be provided.",
"name": "MTL_LANGUAGE_REVISION"
},
{
"displayName": "Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form \"foo\" or \"foo=bar\".",
"name": "MTL_PREPROCESSOR_DEFINITIONS"
},
{
"name": "MTL_TARGET_TRIPLE"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors. [MTL_TREAT_WARNINGS_AS_ERRORS, -Werror]",
"name": "MTL_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "SDKROOT"
},
{
"name": "build_file_compiler_flags"
},
{}
]
},
{
"spec": "com.apple.build-system.core",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/CoreBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"description": "Identifies the directory into which derived source files, such as those generated by `lex` and `yacc`, are placed.",
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"description": "Partially identifies the directory into which variant object files are placed. The complete specification is computed using the variants of this build setting.",
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "REZ_EXECUTABLE"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.external",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/ExternalBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"description": "Identifies the directory into which derived source files, such as those generated by `lex` and `yacc`, are placed.",
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"description": "Partially identifies the directory into which variant object files are placed. The complete specification is computed using the variants of this build setting.",
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "REZ_EXECUTABLE"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.jam",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/JamBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"description": "Identifies the directory into which derived source files, such as those generated by `lex` and `yacc`, are placed.",
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"description": "Partially identifies the directory into which variant object files are placed. The complete specification is computed using the variants of this build setting.",
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"name": "PER_STYLE_BUILD_DIRECTORIES"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_REFERENCE"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "REZ_EXECUTABLE"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-system.native",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/NativeBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"displayName": "Additional SDKs",
"description": "The locations of any sparse SDKs that should be layered on top of the one specified by `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.",
"name": "ADDITIONAL_SDKS"
},
{
"displayName": "Alternate Install Group",
"description": "The group name or gid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_GROUP"
},
{
"displayName": "Alternate Install Permissions",
"description": "Permissions used for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_MODE"
},
{
"displayName": "Alternate Install Owner",
"description": "The owner name or uid for the files listed under the `ALTERNATE_PERMISSIONS_FILES` setting.",
"name": "ALTERNATE_OWNER"
},
{
"displayName": "Alternate Permissions Files",
"description": "List of files to which the alternate owner, group and permissions are applied.",
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"displayName": "Always Search User Paths (Deprecated)",
"description": "This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.\n\nIf enabled, both `#include <header.h>`-style and `#include \"header.h\"`-style directives search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` header, have precedence over system headers when using `#include <header.h>`. This is done using the `-iquote` flag for the paths provided in `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.\n\nFor backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.",
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "ALWAYS_USE_SEPARATE_HEADERMAPS"
},
{
"displayName": "Require Only App-Extension-Safe API",
"description": "When 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.",
"name": "APPLICATION_EXTENSION_API_ONLY"
},
{
"displayName": "Convert Copied Files",
"description": "Enabling 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 `PLIST_FILE_OUTPUT_FORMAT` and `STRINGS_FILE_OUTPUT_ENCODING`, respectively.",
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"displayName": "Process Header Files",
"description": "Enabling 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 passed `SCRIPT_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.",
"name": "APPLY_RULES_IN_COPY_HEADERS"
},
{
"displayName": "Architectures",
"description": "A 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.",
"name": "ARCHS"
},
{
"name": "ARCHS_STANDARD_32_64_BIT"
},
{
"name": "ARCHS_STANDARD_32_BIT"
},
{
"name": "ARCHS_STANDARD_64_BIT"
},
{
"displayName": "Asset Pack Manifest URL Prefix",
"description": "If set to anything other than the empty string, every URL in the `AssetPackManifest.plist` file will consist of this string with the name of the asset pack appended. If not set, the URLs in the `AssetPackManifest.plist` will 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 the `AssetPackManifest.plist` file — it does not affect where asset packs are built in the local file system.",
"name": "ASSET_PACK_MANIFEST_URL_PREFIX"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"name": "BUILD_ACTIVE_RESOURCES_ONLY"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUILD_DIR"
},
{
"displayName": "Build Libraries for Distribution",
"description": "Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.",
"name": "BUILD_LIBRARY_FOR_DISTRIBUTION"
},
{
"name": "BUILD_ROOT"
},
{
"name": "BUILD_STYLE"
},
{
"displayName": "Build Variants",
"description": "A list of the build variants of the linked binary that will be produced. By default, only the `normal` variant is produced. Other common values include `debug` and `profile`.",
"name": "BUILD_VARIANTS"
},
{
"description": "Identifies 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_LOCATION` is set to `YES`.",
"name": "BUILT_PRODUCTS_DIR"
},
{
"displayName": "Bundle Loader",
"description": "Specifies 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.",
"name": "BUNDLE_LOADER"
},
{
"name": "CC"
},
{
"name": "CCHROOT"
},
{
"name": "CHMOD"
},
{
"name": "CHOWN"
},
{
"name": "CLASS_FILE_DIR"
},
{
"name": "CLEAN_PRECOMPS"
},
{
"name": "CLONE_HEADERS"
},
{
"name": "CODESIGNING_FOLDER_PATH"
},
{
"name": "CODE_SIGNING_ALLOWED"
},
{
"displayName": "Code Signing Entitlements",
"description": "The path to a file specifying code-signing entitlements.",
"name": "CODE_SIGN_ENTITLEMENTS"
},
{
"displayName": "Code Signing Identity",
"description": "The 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.",
"name": "CODE_SIGN_IDENTITY"
},
{
"displayName": "Code Signing Inject Base Entitlements",
"description": "Automatically inject entitlements from the platform's BaseEntitlements.plist into the code signatures of executables.",
"name": "CODE_SIGN_INJECT_BASE_ENTITLEMENTS"
},
{
"name": "CODE_SIGN_LOCAL_EXECUTION_IDENTITY"
},
{
"displayName": "Code Sign Style",
"description": "This setting specifies the method used to acquire and locate signing assets. Choose `Automatic` to let Xcode automatically create and update profiles, app IDs, and certificates. Choose `Manual` to create and update these yourself on the developer website.",
"name": "CODE_SIGN_STYLE"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COMBINE_HIDPI_IMAGES"
},
{
"displayName": "Enable Index-While-Building Functionality",
"description": "Control whether the compiler should emit index data while building.",
"name": "COMPILER_INDEX_STORE_ENABLE"
},
{
"name": "COMPOSITE_SDK_DIRS"
},
{
"description": "Identifies the build configuration, such as `Debug` or `Release`, that the target uses to generate the product.",
"name": "CONFIGURATION"
},
{
"name": "CONFIGURATION_BUILD_DIR"
},
{
"name": "CONFIGURATION_TEMP_DIR"
},
{
"description": "Specifies the directory inside the generated bundle that contains the product’s files.",
"name": "CONTENTS_FOLDER_PATH"
},
{
"displayName": "Preserve HFS Data",
"description": "Causes the copying of resources to preserve resource forks and Finder info.",
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"displayName": "Run unifdef on Product Headers",
"description": "If enabled, headers are run through the `unifdef(1)` tool when copied to the product.",
"name": "COPY_HEADERS_RUN_UNIFDEF"
},
{
"displayName": "Unifdef Flags for Product Headers",
"description": "Specifies the flags to pass to `unifdef(1)` when invoking that tool to copy headers. This setting has no effect unless `COPY_HEADERS_RUN_UNIFDEF` is enabled.",
"name": "COPY_HEADERS_UNIFDEF_FLAGS"
},
{
"displayName": "Strip Debug Symbols During Copy",
"description": "Specifies 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_INSTALLED_PRODUCT` for that.",
"name": "COPY_PHASE_STRIP"
},
{
"name": "COPY_RESOURCES_FROM_STATIC_FRAMEWORKS"
},
{
"name": "CP"
},
{
"displayName": "Create Info.plist Section in Binary",
"description": "Enabling this setting will create a section in the product's linked binary containing the processed `Info.plist` file for the target. This setting only applies to command-line tool targets.",
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"description": "The name of the active architecture being processed.",
"name": "CURRENT_ARCH"
},
{
"displayName": "Current Project Version",
"description": "This setting defines the current version of the project. The value must be a integer or floating point number, such as `57` or `365.8`.",
"name": "CURRENT_PROJECT_VERSION"
},
{
"description": "The name of the active variant being processed.",
"name": "CURRENT_VARIANT"
},
{
"name": "CURRENT_VERSION"
},
{
"displayName": "Dead Code Stripping",
"description": "Activating this setting causes the `-dead_strip` flag to be passed to `ld(1)` via `cc(1)` to turn on dead code stripping.",
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUGGING_SYMBOLS"
},
{
"displayName": "Debug Information Format",
"description": "The type of debug information to produce.\n\n* *DWARF:* Object files and linked products will use DWARF as the debug information format. [dwarf]\n* *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]",
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_COMPILER"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"displayName": "Defines Module",
"description": "If 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.",
"name": "DEFINES_MODULE"
},
{
"displayName": "Deployment Location",
"description": "If enabled, built products are placed in their installed locations in addition to the built products folder.",
"name": "DEPLOYMENT_LOCATION"
},
{
"displayName": "Deployment Postprocessing",
"description": "If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.",
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DERIVED_FILES_DIR"
},
{
"name": "DERIVED_FILE_DIR"
},
{
"name": "DERIVED_PATHS"
},
{
"name": "DERIVED_SOURCES_DIR"
},
{
"displayName": "Development Assets",
"description": "Files and directories used only for development. Archive and install builds will exclude this content.",
"name": "DEVELOPMENT_ASSET_PATHS"
},
{
"displayName": "Development Team",
"description": "The team ID of a development team to use for signing certificates and provisioning profiles.",
"name": "DEVELOPMENT_TEAM"
},
{
"description": "Identifies the directory that contains the bundle’s documentation files.",
"name": "DOCUMENTATION_FOLDER_PATH"
},
{
"displayName": "Don't Force Info.plist Generation",
"description": "If enabled, don't automatically generate an Info.plist file for wrapped products when the `INFOPLIST_FILE` build setting is empty.",
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DO_HEADER_SCANNING_IN_JAM"
},
{
"displayName": "Installation Build Products Location",
"description": "The 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).dst` to prevent a *test* install build from accidentally overwriting valid and needed data in the ultimate install path.\n\nTypically 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.",
"name": "DSTROOT"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"displayName": "Compatibility Version",
"description": "Determines the compatibility version of the resulting library, bundle, or framework binary. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"displayName": "Current Library Version",
"description": "This setting defines the current version of any framework built by the project. As with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number, such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See [Dynamic Library Design Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19) in [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html) for details on assigning version numbers of dynamic libraries.",
"name": "DYLIB_CURRENT_VERSION"
},
{
"displayName": "Dynamic Library Install Name Base",
"description": "Sets 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 `LD_DYLIB_INSTALL_NAME` directly will override this setting. This setting defaults to the target's `INSTALL_PATH`. It is ignored when building any product other than a dynamic library.",
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "EMBEDDED_PROFILE_NAME"
},
{
"displayName": "Embed Asset Packs In Product Bundle",
"description": "Embed 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.",
"name": "EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"displayName": "Enable Hardened Runtime",
"description": "Enable hardened runtime restrictions.",
"name": "ENABLE_HARDENED_RUNTIME"
},
{
"description": "Specifies whether to automatically track dependencies on included header files.",
"name": "ENABLE_HEADER_DEPENDENCIES"
},
{
"displayName": "Enable On Demand Resources",
"description": "If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.",
"name": "ENABLE_ON_DEMAND_RESOURCES"
},
{
"displayName": "Enable Previews",
"description": "If enabled, the product will be built with options appropriate for supporting previews.",
"name": "ENABLE_PREVIEWS"
},
{
"displayName": "Enable Testability",
"description": "When 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.",
"name": "ENABLE_TESTABILITY"
},
{
"name": "ENTITLEMENTS_DESTINATION"
},
{
"name": "EXCLUDED_ARCHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"displayName": "Sub-Directories to Exclude in Recursive Searches",
"description": "This 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.",
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Excluded Source File Names",
"description": "A 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`). 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).c` could serve to exclude particular files based on the architecture being built.",
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"description": "Identifies the directory that contains additional binary files.",
"name": "EXECUTABLES_FOLDER_PATH"
},
{
"displayName": "Executable Extension",
"description": "This is the extension used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_EXTENSION"
},
{
"description": "Identifies the directory that contains the binary the target builds.",
"name": "EXECUTABLE_FOLDER_PATH"
},
{
"description": "Specifies the name of the binary the target produces.",
"name": "EXECUTABLE_NAME"
},
{
"description": "Specifies the path to the binary the target produces within its bundle.",
"name": "EXECUTABLE_PATH"
},
{
"displayName": "Executable Prefix",
"description": "The prefix used for the executable product generated by the target, which has a default value based on the product type.",
"name": "EXECUTABLE_PREFIX"
},
{
"description": "Specifies the suffix of the binary filename, including the character that separates the extension from the rest of the bundle name.",
"name": "EXECUTABLE_SUFFIX"
},
{
"name": "EXECUTABLE_VARIANT_SUFFIX"
},
{
"displayName": "Exported Symbols File",
"description": "This is a project-relative path to a file that lists the symbols to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FILE_LIST"
},
{
"name": "FIXED_FILES_DIR"
},
{
"description": "Specifies the directory that contains the product’s embedded frameworks.",
"name": "FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Framework Search Paths",
"description": "This 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.",
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "Framework Version",
"description": "Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.",
"name": "FRAMEWORK_VERSION"
},
{
"name": "FULL_PRODUCT_NAME"
},
{
"name": "GCC3_VERSION"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"name": "GCC_PREFIX_HEADER"
},
{
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Compiler for C/C++/Objective-C",
"description": "The compiler to use for C, C++, and Objective-C.",
"name": "GCC_VERSION"
},
{
"name": "GCC_VERSION_IDENTIFIER"
},
{
"displayName": "Perform Single-Object Prelink",
"description": "Activating this setting will cause the object files built by a target to be prelinked using `ld -r` into 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.",
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"displayName": "Force Package Info Generation",
"description": "Forces the `PkgInfo` file to be written to wrapped products even if this file is not expected.",
"name": "GENERATE_PKGINFO_FILE"
},
{
"displayName": "Generate Profiling Code",
"description": "Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with `gprof(1)`.",
"name": "GENERATE_PROFILING_CODE"
},
{
"displayName": "Enable Text-Based Stubs Generation",
"description": "Enables the generation of Text-Based stubs for dynamic libraries and frameworks.",
"name": "GENERATE_TEXT_BASED_STUBS"
},
{
"name": "GLOBAL_CFLAGS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the target being built.",
"name": "HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT"
},
{
"description": "Specifies 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.",
"name": "HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES"
},
{
"name": "HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS"
},
{
"description": "Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.",
"name": "HEADERMAP_INCLUDES_PROJECT_HEADERS"
},
{
"name": "HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES"
},
{
"name": "HEADERMAP_USES_VFS"
},
{
"displayName": "Header Search Paths",
"description": "This 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.",
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "ICONV"
},
{
"displayName": "Sub-Directories to Include in Recursive Searches",
"description": "This 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 `EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES`.",
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"displayName": "Included Source File Names",
"description": "A 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`, and can be used to define complex filters for which files from the phase should be built in response to other build settings.",
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"displayName": "Expand Build Settings in Info.plist File",
"description": "Expand build settings in the `Info.plist` file.",
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"displayName": "Info.plist File",
"description": "The project-relative path to the property list file that contains the `Info.plist` information used by bundles. For details on information property list files, see [Information Property List Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH) in [Runtime Configuration Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).",
"name": "INFOPLIST_FILE"
},
{
"displayName": "Info.plist Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Info.plist Output Encoding",
"description": "Specifies the output encoding for the output `Info.plist`. The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"description": "Specifies the path to the bundle’s information property list file.",
"name": "INFOPLIST_PATH"
},
{
"displayName": "Info.plist Preprocessor Prefix File",
"description": "Implicitly include the given file when preprocessing the `Info.plist` file. The path given should either be a project relative path or an absolute path.",
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"displayName": "Preprocess Info.plist File",
"description": "Preprocess the `Info.plist` file using the C Preprocessor.",
"name": "INFOPLIST_PREPROCESS"
},
{
"displayName": "Info.plist Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing the `Info.plist` file.",
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"description": "Specifies the file that contains the bundle’s localized strings file.",
"name": "INFOSTRINGS_PATH"
},
{
"displayName": "Initialization Routine",
"description": "This is the name of the routine to use for initialization.",
"name": "INIT_ROUTINE"
},
{
"displayName": "Enable Text-Based Stubs Inlining",
"description": "Enables private framework inlining for Text-Based Stubs.",
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"displayName": "Perform Copy Files Phases During `installhdrs`",
"description": "Specifies whether the target’s Copy Files build phases are executed in `installhdr` builds.",
"name": "INSTALLHDRS_COPY_PHASE"
},
{
"displayName": "Perform Shell Script Phases During `installhdrs`",
"description": "Specifies whether the target’s Run Script build phases are executed in `installhdr` builds. See `ACTION` for details on `installhdr` builds.",
"name": "INSTALLHDRS_SCRIPT_PHASE"
},
{
"description": "Identifies the directory in the developer’s filesystem into which the *installed* product is placed.",
"name": "INSTALL_DIR"
},
{
"displayName": "Install Group",
"description": "The group name or `gid` for installed products.",
"name": "INSTALL_GROUP"
},
{
"displayName": "Install Permissions",
"description": "Permissions used for installed product files.",
"name": "INSTALL_MODE_FLAG"
},
{
"displayName": "Install Owner",
"description": "The owner name or `uid` for installed products.",
"name": "INSTALL_OWNER"
},
{
"displayName": "Installation Directory",
"description": "The directory in which to install the build products. This path is prepended by the `DSTROOT`.",
"name": "INSTALL_PATH"
},
{
"name": "INSTALL_ROOT"
},
{
"name": "JAVAC_DEFAULT_FLAGS"
},
{
"name": "JAVA_APP_STUB"
},
{
"name": "JAVA_ARCHIVE_CLASSES"
},
{
"name": "JAVA_ARCHIVE_TYPE"
},
{
"name": "JAVA_COMPILER"
},
{
"name": "JAVA_FOLDER_PATH"
},
{
"name": "JAVA_FRAMEWORK_JARS"
},
{
"name": "JAVA_FRAMEWORK_RESOURCES_DIRS"
},
{
"name": "JAVA_JAR_FLAGS"
},
{
"name": "JAVA_SOURCE_SUBDIR"
},
{
"name": "JAVA_USE_DEPENDENCIES"
},
{
"name": "JAVA_ZIP_FLAGS"
},
{
"name": "JIKES_DEFAULT_FLAGS"
},
{
"displayName": "Preserve Private External Symbols",
"description": "Activating 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.",
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "KEXT_CFLAGS"
},
{
"name": "KEXT_CPLUSPLUSFLAGS"
},
{
"displayName": "Path to Linker Dependency Info File",
"description": "This 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.",
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Dynamic Library Allowable Clients",
"description": "This setting restricts the clients allowed to link a dylib by passing `-allowable_client` to the linker for each supplied value.",
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"displayName": "Dynamic Library Install Name",
"description": "Sets an internal `install path` (`LC_ID_DYLIB`) in a dynamic library. Any clients linked against the library will record that path as the way `dyld` should locate this library. If this option is not specified, then the `-o` path will be used. This setting is ignored when building any product other than a dynamic library. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_FLAGS"
},
{
"displayName": "Write Link Map File",
"description": "Activating 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 `LD_MAP_FILE_PATH` setting.",
"name": "LD_GENERATE_MAP_FILE"
},
{
"displayName": "Path to Link Map File",
"description": "This setting defines the path to the map file written by the linker when the `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.",
"name": "LD_MAP_FILE_PATH"
},
{
"displayName": "Generate Position-Dependent Executable",
"description": "Activating 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.\n\nYou cannot create a PIE from `.o` files compiled with `-mdynamic-no-pic`. Using PIE means the codegen is less optimal, but the address randomization adds some security.",
"name": "LD_NO_PIE"
},
{
"displayName": "Quote Linker Arguments",
"description": "This 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 `-Xlinker` to 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 `-Xlinker` to 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 the `LD` setting to the path to another linker) and that alternate linker does not recognize `-Xlinker`.",
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"displayName": "Runpath Search Paths",
"description": "This is a list of paths to be added to the `runpath` search path list for the image being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose load path begins with `@rpath/`. See [Dynamic Library Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).",
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LEX"
},
{
"name": "LEXFLAGS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_FLAG_NOSPACE"
},
{
"name": "LIBRARY_FLAG_PREFIX"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"displayName": "Library Search Paths",
"description": "This 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.",
"name": "LIBRARY_SEARCH_PATHS"
},
{
"displayName": "Display Mangled Names",
"description": "Activating 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.",
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINKER_LIBRARY_FLAGS"
},
{
"displayName": "Link With Standard Libraries",
"description": "When 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_LDFLAGS`.",
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LLVM_TARGET_TRIPLE_OS_VERSION"
},
{
"name": "LLVM_TARGET_TRIPLE_SUFFIX"
},
{
"name": "LLVM_TARGET_TRIPLE_VENDOR"
},
{
"name": "LOCALIZABLE_CONTENT_DIR"
},
{
"name": "LOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"displayName": "Localized String Macro Names",
"description": "The 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.",
"name": "LOCALIZED_STRING_MACRO_NAMES"
},
{
"displayName": "Localized String Swift UI Support",
"description": "When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.",
"name": "LOCALIZED_STRING_SWIFTUI_SUPPORT"
},
{
"name": "LOCROOT"
},
{
"name": "LOCSYMROOT"
},
{
"name": "LOGNAME"
},
{
"displayName": "Mach-O Type",
"description": "This 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](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/building_files.html#//apple_ref/doc/uid/TP40001828-SW1) in [Mach-O Programming Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html).\n\n* *Executable:* Executables and standalone binaries and cannot be linked. [mh_execute]\n* *Dynamic Library:* Dynamic libraries are linked at build time and loaded automatically when needed. [mh_dylib]\n* *Bundle:* Bundle libraries are loaded explicitly at run time. [mh_bundle]\n* *Static Library:* Static libraries are linked at build time and loaded at execution time. [staticlib]\n* *Relocatable Object File:* Object files are single-module files that are linked at build time. [mh_object]",
"name": "MACH_O_TYPE"
},
{
"name": "MACOS_CREATOR"
},
{
"name": "MACOS_CREATOR_ARG"
},
{
"name": "MACOS_TYPE"
},
{
"name": "MACOS_TYPE_ARG"
},
{
"name": "MAC_OS_X_VERSION_MAX_ALLOWED"
},
{
"name": "MAC_OS_X_VERSION_MIN_REQUIRED"
},
{
"displayName": "Marketing Version",
"description": "This setting defines the user-visible version of the project. The value corresponds to the `CFBundleShortVersionString` key in your app's Info.plist.",
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"displayName": "Module Map File",
"description": "This 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` is enabled.",
"name": "MODULEMAP_FILE"
},
{
"displayName": "Private Module Map File",
"description": "This is the project-relative path to the LLVM module map file that defines the module structure for private headers.",
"name": "MODULEMAP_PRIVATE_FILE"
},
{
"description": "Specifies the directory that contains the product’s Clang module maps and Swift module content.",
"name": "MODULES_FOLDER_PATH"
},
{
"description": "Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.",
"name": "MODULE_CACHE_DIR"
},
{
"displayName": "Module Identifier",
"description": "This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_NAME"
},
{
"displayName": "Module Start Routine",
"description": "This defines the name of the kernel module start routine. This is only used when building kernel extensions.",
"name": "MODULE_START"
},
{
"displayName": "Module Stop Routine",
"description": "This defines the name of the kernel module stop routine. This is only used when building kernel extensions.",
"name": "MODULE_STOP"
},
{
"displayName": "Module Version",
"description": "This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.",
"name": "MODULE_VERSION"
},
{
"description": "Identifies the architecture on which the build is being performed.",
"name": "NATIVE_ARCH"
},
{
"name": "NATIVE_ARCH_32_BIT"
},
{
"name": "NATIVE_ARCH_64_BIT"
},
{
"name": "NATIVE_ARCH_ACTUAL"
},
{
"name": "NO_COMMON"
},
{
"name": "OBJECT_FILE_DIR"
},
{
"displayName": "Intermediate Build Files Path",
"description": "The 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`.",
"name": "OBJROOT"
},
{
"displayName": "Build Active Architecture Only",
"description": "If 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.",
"name": "ONLY_ACTIVE_ARCH"
},
{
"displayName": "On Demand Resources Initial Install Tags",
"description": "Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.",
"name": "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS"
},
{
"displayName": "On Demand Resources Prefetch Order",
"description": "Once 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.",
"name": "ON_DEMAND_RESOURCES_PREFETCH_ORDER"
},
{
"name": "OPTIMIZATION_CFLAGS"
},
{
"displayName": "Order File",
"description": "The path to a file that alters the order in which functions and data are laid out.\n\nFor 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:_foo` or `ppc: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\"`).\n\nGenerally 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.",
"name": "ORDER_FILE"
},
{
"name": "OSAC"
},
{
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other Code Signing Flags",
"description": "A list of additional options to pass to `codesign(1)`.",
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Other Linker Flags",
"description": "Options defined in this setting are passed to invocations of the linker.",
"name": "OTHER_LDFLAGS"
},
{
"displayName": "Other Librarian Flags",
"description": "Options defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.",
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "OTHER_MIGFLAGS"
},
{
"name": "OTHER_OSAFLAGS"
},
{
"name": "OTHER_PRECOMP_CFLAGS"
},
{
"name": "OTHER_RESMERGERFLAGS"
},
{
"name": "OTHER_REZFLAGS"
},
{
"displayName": "Other Text-Based InstallAPI Flags",
"description": "Options defined in this setting are passed to invocations of the `Text-Based InstallAPI` tool.",
"name": "OTHER_TAPI_FLAGS"
},
{
"description": "Uniform 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*.",
"name": "PACKAGE_TYPE"
},
{
"name": "PASCAL_STRINGS"
},
{
"name": "PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES"
},
{
"name": "PBDEVELOPMENTPLIST_PATH"
},
{
"name": "PFE_FILE_C_DIALECTS"
},
{
"name": "PKGINFO_PATH"
},
{
"displayName": "Property List Output Encoding",
"description": "Specifies the output encoding for property list files (`.plist`). The output encodings can be `binary` or `XML`. By default, the output encoding will be unchanged from the input.",
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"description": "Specifies the directory that contains the product’s plugins.",
"name": "PLUGINS_FOLDER_PATH"
},
{
"name": "PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Precompiled Header Uses Files From Build Directory",
"description": "This 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.\n\nIf your prefix file never includes files from the build directory you may set this to `NO` to 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 to `YES` to avoid unintended sharing that may result in build failures.",
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PREFIX_CFLAG_BASE"
},
{
"name": "PREFIX_FLAGS"
},
{
"name": "PREFIX_HEADER"
},
{
"name": "PREFIX_REFERENCE"
},
{
"displayName": "Single-Object Prelink Flags",
"description": "Additional flags to pass when performing a single-object prelink.",
"name": "PRELINK_FLAGS"
},
{
"displayName": "Prelink libraries",
"description": "Additional libraries to pass when performing a single-object prelink.",
"name": "PRELINK_LIBS"
},
{
"displayName": "Don't Dead-Strip Inits and Terms",
"description": "Activating this setting, in combination with the `DEAD_CODE_STRIPPING` (`-dead_strip`) option, causes the `-no_dead_strip_inits_and_terms` flag to be passed to `ld(1)` via `cc(1)` to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned `DEAD_CODE_STRIPPING` option.",
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"displayName": "Private Headers Folder Path",
"description": "The location to copy the private headers to during building, relative to the built products folder.",
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"displayName": "Product Module Name",
"description": "The 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.",
"name": "PRODUCT_MODULE_NAME"
},
{
"displayName": "Product Name",
"description": "This is the basename of the product generated by the target.",
"name": "PRODUCT_NAME"
},
{
"name": "PRODUCT_TYPE"
},
{
"name": "PROFILING_CODE"
},
{
"name": "PROJECT_DERIVED_FILE_DIR"
},
{
"name": "PROJECT_DIR"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"description": "Identifies 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.",
"name": "PROJECT_TEMP_DIR"
},
{
"name": "PROJECT_TEMP_ROOT"
},
{
"displayName": "Provisioning Profile",
"description": "Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with [DEVELOPMENT_TEAM] to fully specify provisioning profile.",
"name": "PROVISIONING_PROFILE_SPECIFIER"
},
{
"displayName": "Public Headers Folder Path",
"description": "The location to copy the public headers to during building, relative to the built products folder.",
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS"
},
{
"name": "REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Framework Names",
"description": "List of framework names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_FRAMEWORK_NAMES"
},
{
"name": "REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"displayName": "Re-Exported Library Names",
"description": "List of library names that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_NAMES"
},
{
"displayName": "Re-Exported Library Paths",
"description": "List of library paths that should have their symbols be reexported from the built library.",
"name": "REEXPORTED_LIBRARY_PATHS"
},
{
"description": "Specifies whether to remove `CVS` directories from bundle resources when they are copied.",
"name": "REMOVE_CVS_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `.git` directories from bundle resources when they are copied.",
"name": "REMOVE_GIT_FROM_RESOURCES"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"description": "Specifies whether to remove `.hg` directories from bundle resources when they are copied.",
"name": "REMOVE_HG_FROM_RESOURCES"
},
{
"description": "Specifies whether to remove `SVN` directories from bundle resources when they are copied.",
"name": "REMOVE_SVN_FROM_RESOURCES"
},
{
"displayName": "Resources Targeted Device Family",
"description": "Overrides `TARGETED_DEVICE_FAMILY` when the resource copying needs to differ from the default targeted device.",
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCE_RULES_PLIST_PATH"
},
{
"description": "Specifies whether to keep copies of unstripped binaries available.",
"name": "RETAIN_RAW_BINARIES"
},
{
"description": "Specifies the directory in which the collected Resource Manager resources generated by `ResMerger` are stored before they are added to the product.",
"name": "REZ_COLLECTOR_DIR"
},
{
"name": "REZ_EXECUTABLE"
},
{
"description": "Specifies the directory in which compiled Resource Manager resources generated by `Rez` are stored before they are collected using `ResMerger`.",
"name": "REZ_OBJECTS_DIR"
},
{
"displayName": "Rez Search Paths",
"description": "This 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.",
"name": "REZ_SEARCH_PATHS"
},
{
"displayName": "Scan All Source Files for Includes",
"description": "Activating 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.\n\nThis setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.",
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"description": "Specifies the directory that contains the product’s scripts.",
"name": "SCRIPTS_FOLDER_PATH"
},
{
"displayName": "Base SDK",
"description": "The 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` setting.",
"name": "SDKROOT"
},
{
"displayName": "Symbol Ordering Flags",
"description": "These flags are typically used to specify options for ordering symbols within segments, for example the `-sectorder` option to `ld`.\n\nGenerally 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.",
"name": "SECTORDER_FLAGS"
},
{
"name": "SED"
},
{
"name": "SEPARATE_STRIP"
},
{
"displayName": "Separately Edit Symbols",
"description": "Activating 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.",
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SET_DIR_MODE_OWNER_GROUP"
},
{
"name": "SET_FILE_MODE_OWNER_GROUP"
},
{
"name": "SHALLOW_BUNDLE"
},
{
"name": "SHARED_DERIVED_FILE_DIR"
},
{
"description": "Specifies the directory that contains the product’s shared frameworks.",
"name": "SHARED_FRAMEWORKS_FOLDER_PATH"
},
{
"displayName": "Precompiled Headers Cache Path",
"description": "The path where precompiled prefix header files are placed during a build. Defaults to `$(OBJROOT)/SharedPrecompiledHeaders`. Using a common location allows precompiled headers to be shared between multiple projects.",
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHARED_SUPPORT_FOLDER_PATH"
},
{
"name": "SHELL"
},
{
"displayName": "Skip Install",
"description": "If enabled, don't install built products even if deployment locations are active.",
"name": "SKIP_INSTALL"
},
{
"name": "SOURCE_ROOT"
},
{
"description": "Identifies the directory containing the target’s source files.",
"name": "SRCROOT"
},
{
"displayName": "Strings File Output Encoding",
"description": "Specify 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 by `NSString`, or it can be an IANA character set name as understood by `CFString`. The operation will fail if the file cannot be converted to the specified encoding.",
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"displayName": "Additional Strip Flags",
"description": "Additional flags to be passed when stripping the linked product of the build.",
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"displayName": "Strip Linked Product",
"description": "If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.",
"name": "STRIP_INSTALLED_PRODUCT"
},
{
"displayName": "Strip Style",
"description": "The 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.\n\n* *All Symbols:* Completely strips the binary, removing the symbol table and relocation information. [all, -s]\n* *Non-Global Symbols:* Strips non-global symbols, but saves external symbols. [non-global, -x]\n* *Debugging Symbols:* Strips debugging symbols, but saves local and global symbols. [debugging, -S]",
"name": "STRIP_STYLE"
},
{
"displayName": "Strip Swift Symbols",
"description": "Adjust 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.",
"name": "STRIP_SWIFT_SYMBOLS"
},
{
"displayName": "Supported Platforms",
"description": "The 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.",
"name": "SUPPORTED_PLATFORMS"
},
{
"displayName": "Supports Text-Based InstallAPI",
"description": "Enable to indicate that the target supports `Text-Based InstallAPI`, which will enable its generation during `install` builds.",
"name": "SUPPORTS_TEXT_BASED_API"
},
{
"name": "SWIFT_PLATFORM_TARGET_PREFIX"
},
{
"name": "SYMBOL_HEADER"
},
{
"displayName": "Build Products Path",
"description": "The 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`.",
"name": "SYMROOT"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"displayName": "System Framework Search Paths",
"description": "This 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\".",
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"displayName": "System Header Search Paths",
"description": "This 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\".",
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Text-Based InstallAPI Verification Mode",
"description": "Selects the level of warnings and errors to report when building `Text-Based InstallAPI`.",
"name": "TAPI_VERIFY_MODE"
},
{
"description": "Identifies 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_DIR` instead.",
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_BUILD_SUBPATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"description": "Identifies 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.",
"name": "TARGET_TEMP_DIR"
},
{
"name": "TEMP_DIR"
},
{
"name": "TEMP_FILES_DIR"
},
{
"name": "TEMP_FILE_DIR"
},
{
"name": "TEMP_ROOT"
},
{
"displayName": "Test Host",
"description": "Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.",
"name": "TEST_HOST"
},
{
"name": "TOOLCHAINS"
},
{
"displayName": "Treat missing baselines as test failures",
"description": "When running tests that measure performance via `XCTestCase`, report missing baselines as test failures.",
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"displayName": "Unexported Symbols File",
"description": "A project-relative path to a file that lists the symbols not to export. See `ld -exported_symbols_list` for details on exporting symbols.",
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"description": "Specifies the directory that contains the product’s unlocalized resources.",
"name": "UNLOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"name": "UNSTRIPPED_PRODUCT"
},
{
"name": "USER"
},
{
"displayName": "User Header Search Paths",
"description": "This 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` 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`.",
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "USE_DYNAMIC_NO_PIC"
},
{
"name": "USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Header Maps",
"description": "Enable 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.",
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"name": "USE_LLVM_TARGET_TRIPLES"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_CLANG"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_LD"
},
{
"name": "USE_LLVM_TARGET_TRIPLES_FOR_TAPI"
},
{
"displayName": "Validate Built Product",
"description": "If enabled, perform validation checks on the product as part of the build process.",
"name": "VALIDATE_PRODUCT"
},
{
"displayName": "Validate Workspace",
"description": "If enabled, perform validation checks on the workspace configuration as part of the build process.",
"name": "VALIDATE_WORKSPACE"
},
{
"displayName": "Validate Workspace - Ignored Frameworks",
"description": "List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.",
"name": "VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS"
},
{
"displayName": "Valid Architectures",
"description": "A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in `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.",
"name": "VALID_ARCHS"
},
{
"description": "Specifies whether the target’s Copy Files build phases generate additional information when copying files.",
"name": "VERBOSE_PBXCP"
},
{
"name": "VERSIONING_STUB"
},
{
"displayName": "Versioning System",
"description": "Selects the process used for version-stamping generated files.\n\n* *None:* Use no versioning system.\n* *Apple Generic:* Use the current project version setting. [apple-generic]",
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONPLIST_PATH"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"displayName": "Versioning Username",
"description": "This 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 `USER` environment variable.",
"name": "VERSION_INFO_BUILDER"
},
{
"displayName": "Generated Versioning Variables",
"description": "This 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 `export` keyword to the version symbol declaration. This should rarely be changed.",
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"displayName": "Generated Versioning Source Filename",
"description": "Used 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`.",
"name": "VERSION_INFO_FILE"
},
{
"displayName": "Versioning Name Prefix",
"description": "Used 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.",
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_STRING"
},
{
"displayName": "Versioning Name Suffix",
"description": "Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.",
"name": "VERSION_INFO_SUFFIX"
},
{
"displayName": "Warning Linker Flags",
"description": "These flags are passed with linker invocations, and by default give the `-no_arch_warnings` flag to the linker to avoid many warnings being generated during multi-architecture builds.",
"name": "WARNING_LDFLAGS"
},
{
"displayName": "Wrapper Extension",
"description": "The extension used for product wrappers, which has a default value based on the product type.",
"name": "WRAPPER_EXTENSION"
},
{
"description": "Specifies the filename, including the appropriate extension, of the product bundle.",
"name": "WRAPPER_NAME"
},
{
"name": "WRAPPER_PREFIX"
},
{
"description": "Specifies the suffix of the product bundle name, including the character that separates the extension from the rest of the bundle name.",
"name": "WRAPPER_SUFFIX"
},
{
"name": "WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{
"name": "XPCSERVICES_FOLDER_PATH"
},
{
"name": "YACC"
},
{
"name": "YACCFLAGS"
},
{}
]
},
{
"spec": "com.apple.buildsettings.standard",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/CoreBuildSystem.xcspec",
"options": [
{
"displayName": "Active Build Action",
"description": "A string identifying the build system action being performed.",
"name": "ACTION"
},
{
"name": "ADDITIONAL_SDKS"
},
{
"name": "ALTERNATE_GROUP"
},
{
"name": "ALTERNATE_MODE"
},
{
"name": "ALTERNATE_OWNER"
},
{
"name": "ALTERNATE_PERMISSIONS_FILES"
},
{
"name": "ALWAYS_SEARCH_USER_PATHS"
},
{
"name": "APPLY_RULES_IN_COPY_FILES"
},
{
"name": "BITCODE_GENERATION_MODE"
},
{
"displayName": "Active Build Components",
"description": "A list of components being built during this action.",
"name": "BUILD_COMPONENTS"
},
{
"name": "BUNDLE_LOADER"
},
{
"name": "COLOR_DIAGNOSTICS"
},
{
"name": "COPYING_PRESERVES_HFS_DATA"
},
{
"name": "CREATE_INFOPLIST_SECTION_IN_BINARY"
},
{
"name": "CURRENT_PROJECT_VERSION"
},
{
"name": "CURRENT_VERSION"
},
{
"name": "DEAD_CODE_STRIPPING"
},
{
"name": "DEBUG_INFORMATION_FORMAT"
},
{
"name": "DEFAULT_DEXT_INSTALL_PATH"
},
{
"name": "DEFAULT_KEXT_INSTALL_PATH"
},
{
"name": "DEPLOYMENT_LOCATION"
},
{
"name": "DEPLOYMENT_POSTPROCESSING"
},
{
"name": "DONT_GENERATE_INFOPLIST_FILE"
},
{
"name": "DWARF_DSYM_FILE_NAME"
},
{
"name": "DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT"
},
{
"name": "DWARF_DSYM_FOLDER_PATH"
},
{
"name": "DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "DYLIB_CURRENT_VERSION"
},
{
"name": "DYLIB_INSTALL_NAME_BASE"
},
{
"name": "ENABLE_BITCODE"
},
{
"name": "ENABLE_DEFAULT_HEADER_SEARCH_PATHS"
},
{
"name": "EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS"
},
{
"name": "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "EXCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "EXECUTABLE_EXTENSION"
},
{
"name": "EXECUTABLE_PREFIX"
},
{
"name": "EXPORTED_SYMBOLS_FILE"
},
{
"name": "FRAMEWORK_SEARCH_PATHS"
},
{
"name": "GENERATE_MASTER_OBJECT_FILE"
},
{
"name": "GENERATE_PKGINFO_FILE"
},
{
"name": "GENERATE_PROFILING_CODE"
},
{
"name": "HEADER_SEARCH_PATHS"
},
{
"name": "HIDE_BITCODE_SYMBOLS"
},
{
"name": "HOME"
},
{
"name": "INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES"
},
{
"name": "INCLUDED_SOURCE_FILE_NAMES"
},
{
"name": "INFOPLIST_EXPAND_BUILD_SETTINGS"
},
{
"name": "INFOPLIST_FILE"
},
{
"name": "INFOPLIST_OTHER_PREPROCESSOR_FLAGS"
},
{
"name": "INFOPLIST_OUTPUT_FORMAT"
},
{
"name": "INFOPLIST_PREFIX_HEADER"
},
{
"name": "INFOPLIST_PREPROCESS"
},
{
"name": "INFOPLIST_PREPROCESSOR_DEFINITIONS"
},
{
"name": "INIT_ROUTINE"
},
{
"name": "INSTALL_PATH"
},
{
"name": "KEEP_PRIVATE_EXTERNS"
},
{
"name": "LD_DEPENDENCY_INFO_FILE"
},
{
"name": "LD_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "LD_DYLIB_INSTALL_NAME"
},
{
"name": "LD_GENERATE_MAP_FILE"
},
{
"name": "LD_MAP_FILE_PATH"
},
{
"name": "LD_NO_PIE"
},
{
"name": "LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER"
},
{
"name": "LD_RUNPATH_SEARCH_PATHS"
},
{
"name": "LIBRARY_DEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_KEXT_INSTALL_PATH"
},
{
"name": "LIBRARY_SEARCH_PATHS"
},
{
"name": "LINKER_DISPLAYS_MANGLED_NAMES"
},
{
"name": "LINK_WITH_STANDARD_LIBRARIES"
},
{
"name": "LOGNAME"
},
{
"name": "MACH_O_TYPE"
},
{
"name": "MARKETING_VERSION"
},
{
"name": "METAL_LIBRARY_FILE_BASE"
},
{
"name": "METAL_LIBRARY_OUTPUT_DIR"
},
{
"name": "MODULE_NAME"
},
{
"name": "MODULE_START"
},
{
"name": "MODULE_STOP"
},
{
"name": "MODULE_VERSION"
},
{
"name": "ORDER_FILE"
},
{
"name": "OTHER_LDFLAGS"
},
{
"name": "OTHER_LIBTOOLFLAGS"
},
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR"
},
{
"name": "PRECOMP_DESTINATION_DIR"
},
{
"name": "PRELINK_FLAGS"
},
{
"name": "PRELINK_LIBS"
},
{
"name": "PRESERVE_DEAD_CODE_INITS_AND_TERMS"
},
{
"name": "PRIVATE_HEADERS_FOLDER_PATH"
},
{
"displayName": "Product Bundle Identifier",
"description": "A 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 the `CFBundleIdentifier` in the `Info.plist` of the built bundle.",
"name": "PRODUCT_BUNDLE_IDENTIFIER"
},
{
"name": "PRODUCT_NAME"
},
{
"displayName": "Project Name",
"description": "The name of the current project.",
"name": "PROJECT_NAME"
},
{
"name": "PUBLIC_HEADERS_FOLDER_PATH"
},
{
"name": "PWD"
},
{
"name": "REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES"
},
{
"name": "REZ_SEARCH_PATHS"
},
{
"name": "SCAN_ALL_SOURCE_FILES_FOR_INCLUDES"
},
{
"name": "SDKROOT"
},
{
"name": "SECTORDER_FLAGS"
},
{
"name": "SEPARATE_STRIP"
},
{
"name": "SEPARATE_SYMBOL_EDIT"
},
{
"name": "SHARED_PRECOMPS_DIR"
},
{
"name": "SHELL"
},
{
"name": "SKIP_INSTALL"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_BITCODE_FROM_COPIED_FILES"
},
{
"name": "STRIP_STYLE"
},
{
"name": "SUPPORTED_PLATFORMS"
},
{
"name": "SYSTEM_DEXT_INSTALL_PATH"
},
{
"name": "SYSTEM_KEXT_INSTALL_PATH"
},
{
"displayName": "Target Name",
"description": "The name of the current target.",
"name": "TARGET_NAME"
},
{
"name": "TEST_HOST"
},
{
"name": "TREAT_MISSING_BASELINES_AS_TEST_FAILURES"
},
{
"name": "UNEXPORTED_SYMBOLS_FILE"
},
{
"name": "USER"
},
{
"name": "USER_HEADER_SEARCH_PATHS"
},
{
"name": "VERSIONING_SYSTEM"
},
{
"name": "VERSIONS_FOLDER_PATH"
},
{
"name": "VERSION_INFO_BUILDER"
},
{
"name": "VERSION_INFO_EXPORT_DECL"
},
{
"name": "VERSION_INFO_FILE"
},
{
"name": "VERSION_INFO_PREFIX"
},
{
"name": "VERSION_INFO_SUFFIX"
},
{
"name": "WARNING_LDFLAGS"
},
{
"name": "WRAPPER_EXTENSION"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-tasks.compile-rc-project.xcplugin",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/RCBuildSystemSupport.xcplugin/Contents/Resources/CompileRCProject.xcspec",
"options": [
{
"name": "Enable Warnings"
},
{
"name": "Other RC Project Compiler flags"
},
{
"displayName": "RC Generation Language",
"description": "The Source-code language to use for generated RC objects. By default Xcode will generate Swift types that represent the objects in your scene. Adjust this setting to explicitly select \"Swift\", or select \"None\" to disable RC object generation.",
"name": "RCPROJECT_CODEGEN_LANGUAGE"
},
{
"name": "RCPROJECT_CODEGEN_SWIFT_VERSION"
},
{}
]
},
{
"spec": "com.apple.build-tasks.compile-scenekit-shadercache",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/SceneKit.xcplugin/Contents/Resources/SceneKit Tools.xcspec",
"options": [
{
"name": "PLATFORM_NAME"
},
{
"name": "SCENEKIT_DEPLOYMENT_TARGET"
},
{
"name": "TARGET_BUILD_DIR"
},
{
"name": "TARGET_TEMP_DIR"
},
{
"name": "UNLOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-tasks.compile-skybox.xcplugin",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/RCBuildSystemSupport.xcplugin/Contents/Resources/CompileSkybox.xcspec",
"options": [
{
"name": "Enable Warnings"
},
{
"name": "Other Skybox Compiler flags"
},
{}
]
},
{
"spec": "com.apple.build-tasks.compile-usdz.xcplugin",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/RCBuildSystemSupport.xcplugin/Contents/Resources/CompileUSDZ.xcspec",
"options": [
{
"displayName": "Enable Compilation",
"name": "ENABLE_USDZ_COMPILATION"
},
{
"name": "Enable Warnings"
},
{
"name": "Other USDZ Compiler flags"
},
{}
]
},
{
"spec": "com.apple.build-tasks.copy-plist-file",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/CopyPlistFile.xcspec",
"options": [
{
"name": "PLIST_FILE_OUTPUT_FORMAT"
},
{
"name": "VALIDATE_PLIST_FILES_WHILE_COPYING"
},
{}
]
},
{
"spec": "com.apple.build-tasks.copy-png-file",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/CopyPNGFile.xcspec",
"options": [
{
"displayName": "Compress PNG Files",
"description": "If enabled, PNG resource files are compressed as they are copied.",
"name": "COMPRESS_PNG_FILES"
},
{
"displayName": "Remove Text Metadata From PNG Files",
"description": "Metadata in the form of text chunks in PNG files will be removed to reduce their footprint on disk.",
"name": "STRIP_PNG_TEXT"
},
{}
]
},
{
"spec": "com.apple.build-tasks.copy-scenekit-assets",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/SceneKit.xcplugin/Contents/Resources/SceneKit Tools.xcspec",
"options": [
{
"name": "PLATFORM_NAME"
},
{
"name": "SCENEKIT_DEPLOYMENT_TARGET"
},
{
"name": "TARGET_BUILD_DIR"
},
{
"name": "UNLOCALIZED_RESOURCES_FOLDER_PATH"
},
{
"name": "XCODE_DEVELOPER_DIR_PATH"
},
{}
]
},
{
"spec": "com.apple.build-tasks.copy-strings-file",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/CopyStringsFile.xcspec",
"options": [
{
"name": "STRINGS_FILE_INPUT_ENCODING"
},
{
"name": "STRINGS_FILE_OUTPUT_ENCODING"
},
{
"name": "VALIDATE_STRINGS_FILES_WHILE_COPYING"
},
{}
]
},
{
"spec": "com.apple.build-tasks.copy-tiff-file",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/CopyTiffFile.xcspec",
"options": [
{
"name": "COMPRESS_TIFF_FILES_WHILE_COPYING"
},
{}
]
},
{
"spec": "com.apple.build-tasks.generate-texture-atlas.xcplugin",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/SpriteKit.xcplugin/Contents/Resources/GenerateTextureAtlas.xcspec",
"options": [
{
"name": "Enable Warnings"
},
{
"name": "Texture Atlas Format"
},
{
"name": "Texture Atlas Maximum Size"
},
{}
]
},
{
"spec": "com.apple.build-tasks.ls-register-url",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/LSRegisterURL.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.build-tasks.process-xcframework-library",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tasks.register-execution-policy-exception",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.codesign",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/CodeSign.xcspec",
"options": [
{
"name": "CODE_SIGN_IDENTITY"
},
{
"name": "CODE_SIGN_KEYCHAIN"
},
{
"name": "OTHER_CODE_SIGN_FLAGS"
},
{
"name": "PROVISIONING_PROFILE"
},
{}
]
},
{
"spec": "com.apple.build-tools.gate",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.master-object-link",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.nmedit",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/BuiltInCompilers.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.odr.create-asset-pack-manifest",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.platform.validate",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/ProductTypeValidationTool.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.set-attributes",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.strip",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/StripSymbols.xcspec",
"options": [
{
"name": "STRIPFLAGS"
},
{
"name": "STRIP_STYLE"
},
{
"name": "STRIP_SWIFT_SYMBOLS"
},
{}
]
},
{
"spec": "com.apple.build-tools.swift-header-tool",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.swift-stdlib-tool",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/XCLanguageSupport.xcplugin/Contents/Resources/swift-stdlib-tool.xcspec",
"options": [
{
"name": "DEVELOPER_DIR"
},
{
"name": "OTHER_SWIFT_STDLIB_TOOL_FLAGS"
},
{
"name": "PRODUCT_TYPE_SWIFT_STDLIB_TOOL_FLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "SWIFT_STDLIB_TOOL_ACTION"
},
{
"name": "SWIFT_STDLIB_TOOL_CODE_SIGN_IDENTITY"
},
{
"name": "SWIFT_STDLIB_TOOL_DESTINATION_DIR"
},
{
"name": "SWIFT_STDLIB_TOOL_EXECUTABLE_TO_SCAN"
},
{
"name": "SWIFT_STDLIB_TOOL_FOLDERS_TO_SCAN"
},
{
"name": "SWIFT_STDLIB_TOOL_KEYCHAIN"
},
{
"name": "SWIFT_STDLIB_TOOL_OTHER_CODE_SIGN_FLAGS"
},
{
"name": "SWIFT_STDLIB_TOOL_SOURCE_LIBRARIES"
},
{
"name": "SWIFT_STDLIB_TOOL_STRIP_BITCODE"
},
{
"name": "SWIFT_STDLIB_TOOL_TOOLCHAINS"
},
{
"name": "SWIFT_STDLIB_TOOL_UNSIGNED_DESTINATION_DIR"
},
{
"name": "SWIFT_STDLIB_TOOL_VERBOSITY"
},
{
"name": "TOOLCHAINS"
},
{}
]
},
{
"spec": "com.apple.build-tools.tapi.installapi",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/TAPI.xcspec",
"options": [
{
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"name": "OTHER_TAPI_FLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "TAPI_APPLICATION_EXTENSION_API_ONLY"
},
{
"name": "TAPI_ARCHS"
},
{
"name": "TAPI_DEPLOYMENT_TARGET"
},
{
"name": "TAPI_DYLIB_ALLOWABLE_CLIENTS"
},
{
"name": "TAPI_DYLIB_COMPATIBILITY_VERSION"
},
{
"name": "TAPI_DYLIB_CURRENT_VERSION"
},
{
"name": "TAPI_DYLIB_INSTALL_NAME"
},
{
"name": "TAPI_EMIT_PROFILING_SYMBOLS"
},
{
"name": "TAPI_ENABLE_VERIFICATION_MODE"
},
{
"name": "TAPI_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "TAPI_HEADER_SEARCH_PATHS"
},
{
"name": "TAPI_INPUTS"
},
{
"name": "TAPI_LIBRARY_SEARCH_PATHS"
},
{
"name": "TAPI_PREPROCESSOR_DEFINITIONS"
},
{
"name": "TAPI_PRODUCT_TYPE"
},
{
"name": "TAPI_REEXPORTED_FRAMEWORK_INSTALL_NAMES"
},
{
"name": "TAPI_REEXPORTED_LIBRARY_INSTALL_NAMES"
},
{
"name": "TAPI_SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "TAPI_SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "TAPI_TARGET_TRIPLE_ARCHS"
},
{
"name": "TAPI_TARGET_TRIPLE_VARIANTS"
},
{
"name": "TAPI_VERIFY_AGAINST"
},
{
"name": "TAPI_VERIFY_MODE"
},
{}
]
},
{
"spec": "com.apple.build-tools.tapi.merge",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.tapi.stubify",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/TAPI.xcspec",
"options": [
{
"name": "INLINE_PRIVATE_FRAMEWORKS"
},
{
"name": "SDKROOT"
},
{
"name": "TAPI_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "TAPI_LIBRARY_SEARCH_PATHS"
},
{
"name": "TAPI_SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{}
]
},
{
"spec": "com.apple.build-tools.version-plist-utility",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.build-tools.write-file",
"path": "",
"options": [
{}
]
},
{
"spec": "com.apple.commands.built-in.compilation-database-generator",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/BuiltInCompilers.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.commands.built-in.headermap-generator",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/BuiltInCompilers.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.commands.shell-script",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework/Resources/BuiltInCompilers.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.compilers.assetcatalog",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/IBCompilerPlugin.xcplugin/Contents/Resources/AssetCatalogCompiler.xcspec",
"options": [
{
"displayName": "Asset Catalog App Icon Set Name",
"description": "Name of an asset catalog app icon set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_APPICON_NAME"
},
{
"name": "ASSETCATALOG_COMPILER_COMPRESS_PNGS"
},
{
"name": "ASSETCATALOG_COMPILER_DEPENDENCY_INFO_FILE"
},
{
"name": "ASSETCATALOG_COMPILER_ENABLE_ON_DEMAND_RESOURCES"
},
{
"name": "ASSETCATALOG_COMPILER_INFOPLIST_CONTENT_FILE"
},
{
"displayName": "Asset Catalog Launch Image Set Name",
"description": "Name of an asset catalog launch image set whose contents will be merged into the `Info.plist`.",
"name": "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME"
},
{
"displayName": "Optimization",
"description": "With no value, the compiler uses the default optimization. You can also specify `time` to optimize for speed of access or `space` to optimize for a smaller compiled asset catalogs.",
"name": "ASSETCATALOG_COMPILER_OPTIMIZATION"
},
{
"displayName": "Sticker Pack Identifier Prefix",
"description": "Sticker 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.",
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX"
},
{
"name": "ASSETCATALOG_COMPILER_STICKER_PACK_STRINGS"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_MODEL"
},
{
"name": "ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSION"
},
{
"displayName": "Show Notices",
"description": "Show notices encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_NOTICES"
},
{
"displayName": "Asset Catalog Other Flags",
"description": "Pass additional flags through to the asset catalog compiler.",
"name": "ASSETCATALOG_OTHER_FLAGS"
},
{
"name": "ASSETCATALOG_OUTPUT_FORMAT"
},
{
"displayName": "Show Warnings",
"description": "Show warnings encountered during the compilation of asset catalogs.",
"name": "ASSETCATALOG_WARNINGS"
},
{
"name": "DEVELOPMENT_LANGUAGE"
},
{
"displayName": "Enable Incremental Distill",
"description": "Enabled the incremental `distill` option in the asset catalog compiler. This feature is experimental and should only be enabled with caution.",
"name": "ENABLE_INCREMENTAL_DISTILL"
},
{
"displayName": "Build Active Resources Only",
"description": "Omit inapplicable resources when building for a single device. For example, when building for a device with a Retina display, exclude 1x resources.",
"name": "ENABLE_ONLY_ACTIVE_RESOURCES"
},
{
"name": "RESOURCES_TARGETED_DEVICE_FAMILY"
},
{
"name": "RESOURCES_UI_FRAMEWORK_FAMILY"
},
{}
]
},
{
"spec": "com.apple.compilers.coreml",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/MLKit.xcplugin/Contents/Resources/MLKit.xcspec",
"options": [
{
"displayName": "CoreML Model Class Generation Language",
"description": "The 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.",
"name": "COREML_CODEGEN_LANGUAGE"
},
{
"displayName": "CoreML Generated Model Inherits NSObject",
"description": "Generate 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\".",
"name": "COREML_CODEGEN_SWIFT_GLOBAL_MODULE"
},
{
"name": "COREML_CODEGEN_SWIFT_VERSION"
},
{
"name": "COREML_COMPILER_INFOPLIST_CONTENT_FILE"
},
{
"name": "build_file_compiler_flags"
},
{}
]
},
{
"spec": "com.apple.compilers.cpp",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/Cpp.xcspec",
"options": [
{
"displayName": "Cpp Other Preprocessor Flags",
"description": "Other flags to pass to the C preprocessor when using the standalone C Preprocessor rule.",
"name": "CPP_OTHER_PREPROCESSOR_FLAGS"
},
{
"displayName": "Cpp Prefix File",
"description": "Implicitly 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.",
"name": "CPP_PREFIX_HEADER"
},
{
"displayName": "Cpp Preprocessor Definitions",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are used when preprocessing using the standalone C Preprocessor rule.",
"name": "CPP_PREPROCESSOR_DEFINITIONS"
},
{
"name": "SDKROOT"
},
{}
]
},
{
"spec": "com.apple.compilers.dtrace",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/DTrace.xcspec",
"options": [
{
"displayName": "Other DTrace Flags",
"description": "Space-separated list of additional flags to pass to the `dtrace` compiler. 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 `dtrace` flag.",
"name": "DTRACE_OTHER_FLAGS"
},
{
"name": "DTRACE_OUTPUT_FILE_TYPE"
},
{
"name": "build_file_compiler_flags"
},
{}
]
},
{
"spec": "com.apple.compilers.gcc",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Clang LLVM 1.0.xcplugin/Contents/Resources/Default Compiler.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.compilers.iconutil",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/Iconutil.xcspec",
"options": [
{}
]
},
{
"spec": "com.apple.compilers.iig",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/Iig.xcspec",
"options": [
{
"name": "IIG_CXX_LANGUAGE_STANDARD"
},
{
"name": "IIG_DERIVED_FILE_DIR"
},
{
"name": "IIG_FRAMEWORK_NAME"
},
{
"name": "IIG_HEADERS_DIR"
},
{
"name": "IIG_IMPLEMENTATION_DIR"
},
{
"name": "IIG_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Other IIG C Flags",
"description": "Space-separated list of additional flags to pass to the `iig` invocation 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 particular `iig` flag",
"name": "OTHER_IIG_CFLAGS"
},
{
"displayName": "Other IIG Flags",
"description": "Space-separated list of additional flags to pass to the `iig` compiler. 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 `iig` flag",
"name": "OTHER_IIG_FLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "SYSTEM_FRAMEWORK_SEARCH_PATHS"
},
{
"name": "SYSTEM_HEADER_SEARCH_PATHS"
},
{
"name": "__IIG_FRAMEWORK_NAME__"
},
{
"name": "__OTHER_IIG_CFLAGS__"
},
{}
]
},
{
"spec": "com.apple.compilers.instruments-package-builder",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/InstrumentsPackage.xcspec",
"options": [
{
"name": "INSTRUMENTS_PACKAGE_BUILDER"
},
{
"name": "INSTRUMENTS_PACKAGE_BUILDER_DEPENDENCY_INFO_FILE"
},
{
"displayName": "Linked Instruments Packages",
"name": "INSTRUMENTS_PACKAGE_BUILDER_LINKED_PACKAGES"
},
{
"displayName": "Disable Standard Instruments Package Search Path",
"name": "INSTRUMENTS_PACKAGE_BUILDER_NO_SYSTEM_SEARCH"
},
{
"displayName": "Instruments Package Builder Search Paths",
"name": "INSTRUMENTS_PACKAGE_BUILDER_SEARCH_PATHS"
},
{
"displayName": "Instruments Package Version",
"name": "INSTRUMENTS_PACKAGE_BUILDER_VERSION_OVERRIDE"
},
{}
]
},
{
"spec": "com.apple.compilers.intents",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Intents.xcplugin/Contents/Resources/Intents.xcspec",
"options": [
{
"displayName": "Intent Class Generation Language",
"description": "The Source-code language to use for generated Intent class. By default \"Automatic\" will analyze your project to determine the correct language. Adjust this setting to explicitly select \"Swift\" or \"Objective-C\".",
"name": "INTENTS_CODEGEN_LANGUAGE"
},
{}
]
},
{
"spec": "com.apple.compilers.lex",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/Lex.xcspec",
"options": [
{
"displayName": "Other Lex Flags",
"description": "Space-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 a `lex` flag.",
"name": "LEXFLAGS"
},
{
"displayName": "Generate Case-Insensitive Scanner",
"description": "Enabling this option causes `lex` to generate a case-insensitive scanner. The case of letters given in the `lex` input patterns will be ignored, and tokens in the input will be matched regardless of case. The matched text given in `yytext` will have the preserved case (for example, it will not be folded).",
"name": "LEX_CASE_INSENSITIVE_SCANNER"
},
{
"displayName": "Insert #line Directives",
"description": "Enabling this option instructs `lex` to insert `#line` directives so error messages in the actions will be correctly located with respect to either the original `lex` input file (if the errors are due to code in the input file), or `lex.yy.c` (if the errors are `lex`'s fault). This option is enabled by default; disabling it passes a flag to `lex` to not insert `#line` directives.",
"name": "LEX_INSERT_LINE_DIRECTIVES"
},
{
"displayName": "Suppress Default Rule",
"description": "Enabling 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.",
"name": "LEX_SUPPRESS_DEFAULT_RULE"
},
{
"displayName": "Suppress Warning Messages",
"description": "Enabling this option causes `lex` to suppress its warning messages.",
"name": "LEX_SUPPRESS_WARNINGS"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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.",
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"displayName": "Other Warning Flags",
"description": "Space-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.",
"name": "WARNING_CFLAGS"
},
{
"name": "arch"
},
{
"name": "diagnostic_message_length"
},
{
"name": "print_note_include_stack"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0.analyzer",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ANALYZER_ALTERNATE_EDGES"
},
{
"displayName": "Dead Stores",
"description": "Check for values stored to variables and never read again.",
"name": "CLANG_ANALYZER_DEADCODE_DEADSTORES"
},
{
"name": "CLANG_ANALYZER_DEFINES"
},
{
"name": "CLANG_ANALYZER_EXEC"
},
{
"displayName": "Misuse of Grand Central Dispatch",
"description": "Check for misuses of the Grand Central Dispatch API.",
"name": "CLANG_ANALYZER_GCD"
},
{
"displayName": "Performance Anti-Patterns with Grand Central Dispatch",
"description": "Check for Grand Central Dispatch idioms that may lead to poor performance.",
"name": "CLANG_ANALYZER_GCD_PERFORMANCE"
},
{
"displayName": "Violation of IOKit and libkern Reference Counting Rules",
"description": "Finds leaks and overreleases associated with objects inheriting from OSObject",
"name": "CLANG_ANALYZER_LIBKERN_RETAIN_COUNT"
},
{
"displayName": "Missing Localization Context Comment",
"description": "Warn when a call to an `NSLocalizedString()` macro is missing a context comment for the localizer.",
"name": "CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT"
},
{
"displayName": "Missing Localizability",
"description": "Warn when a nonlocalized string is passed to a user interface method expecting a localized string.",
"name": "CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED"
},
{
"name": "CLANG_ANALYZER_MALLOC"
},
{
"displayName": "Improper Memory Management",
"description": "Warn about memory leaks, use-after-free, and other API misuses.",
"name": "CLANG_ANALYZER_MEMORY_MANAGEMENT"
},
{
"displayName": "Violation of Mach Interface Generator Conventions",
"description": "Warn when a MIG routine violates memory management conventions.",
"name": "CLANG_ANALYZER_MIG_CONVENTIONS"
},
{
"displayName": "Misuse of 'nonnull'",
"description": "Check for misuses of `nonnull` parameter and return types.",
"name": "CLANG_ANALYZER_NONNULL"
},
{
"displayName": "Suspicious Conversions of NSNumber and CFNumberRef",
"description": "Warn when a number object, such as an instance of `NSNumber`, `CFNumberRef`, `OSNumber`, or `OSBoolean` is compared or converted to a primitive value instead of another object.",
"name": "CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION"
},
{
"displayName": "@synchronized with nil mutex",
"description": "Warn on `nil` pointers used as mutexes for `@synchronized`.",
"name": "CLANG_ANALYZER_OBJC_ATSYNC"
},
{
"displayName": "Misuse of Collections API",
"description": "Warn if `CF` collections are created with non-pointer-size values. Check if `NS` collections are initialized with non-Objective-C type elements.",
"name": "CLANG_ANALYZER_OBJC_COLLECTIONS"
},
{
"displayName": "Improper Instance Cleanup in '-dealloc'",
"description": "Warn when an instance is improperly cleaned up in `-dealloc`.",
"name": "CLANG_ANALYZER_OBJC_DEALLOC"
},
{
"displayName": "Misuse of Objective-C generics",
"description": "Warn if a specialized generic type is converted to an incompatible type.",
"name": "CLANG_ANALYZER_OBJC_GENERICS"
},
{
"displayName": "Method Signatures Mismatch",
"description": "Warn about Objective-C method signatures with type incompatibilities.",
"name": "CLANG_ANALYZER_OBJC_INCOMP_METHOD_TYPES"
},
{
"displayName": "Improper Handling of CFError and NSError",
"description": "Warn if functions accepting `CFErrorRef` or `NSError` cannot indicate that an error occurred.",
"name": "CLANG_ANALYZER_OBJC_NSCFERROR"
},
{
"displayName": "Violation of Reference Counting Rules",
"description": "Warn on leaks and improper reference count management.",
"name": "CLANG_ANALYZER_OBJC_RETAIN_COUNT"
},
{
"displayName": "Violation of 'self = [super init]' Rule",
"description": "Check that `super init` is properly called within an Objective-C initialization method.",
"name": "CLANG_ANALYZER_OBJC_SELF_INIT"
},
{
"displayName": "Unused Ivars",
"description": "Warn about private ivars that are never used.",
"name": "CLANG_ANALYZER_OBJC_UNUSED_IVARS"
},
{
"name": "CLANG_ANALYZER_OTHER_CHECKERS"
},
{
"name": "CLANG_ANALYZER_OTHER_FLAGS"
},
{
"name": "CLANG_ANALYZER_OUTPUT"
},
{
"name": "CLANG_ANALYZER_OUTPUT_DIR"
},
{
"name": "CLANG_ANALYZER_REPORT_MAIN_SOURCE_FILE"
},
{
"displayName": "*EXPERIMENTAL* Buffer overflows",
"description": "Check for potential buffer overflows.",
"name": "CLANG_ANALYZER_SECURITY_BUFFER_OVERFLOW_EXPERIMENTAL"
},
{
"displayName": "Floating Point Value Used as Loop Counter",
"description": "Warn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP).",
"name": "CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER"
},
{
"displayName": "Use of 'getpw', 'gets' (Buffer Overflow)",
"description": "Warn on uses of `getpw` and `gets`. The functions are dangerous as they may trigger a buffer overflow.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS"
},
{
"displayName": "Use of 'mktemp' or Predictable 'mktemps'",
"description": "Warn on uses of `mktemp`, which produces predictable temporary files. It is obsoleted by `mktemps`. Warn when `mkstemp` is passed fewer than 6 `X`'s in the format string.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP"
},
{
"displayName": "Use of 'rand' Functions",
"description": "Warn on uses of `rand`, `random`, and related functions, which produce predictable random number sequences. Use `arc4random` instead.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND"
},
{
"displayName": "Use of 'strcpy' and 'strcat'",
"description": "Warn on uses of the `strcpy` and `strcat` functions, which can result in buffer overflows. Use `strlcpy` or `strlcat` instead.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY"
},
{
"displayName": "Unchecked Return Values",
"description": "Warn on uses of sensitive functions whose return values must be always checked.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN"
},
{
"displayName": "Use of 'vfork'",
"description": "Warn on uses of the `vfork` function, which is inherently insecure. Use the safer `posix_spawn` function instead.",
"name": "CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK"
},
{
"displayName": "Misuse of Keychain Services API",
"description": "Check for leaks of keychain attribute lists and data buffers returned by the Keychain Services API.",
"name": "CLANG_ANALYZER_SECURITY_KEYCHAIN_API"
},
{
"displayName": "Use-After-Move Errors in C++",
"description": "Warn when a C++ object is used after it has been moved from.",
"name": "CLANG_ANALYZER_USE_AFTER_MOVE"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"displayName": "Mode of Analysis for 'Build'",
"description": "The depth the static analyzer uses during the Build action. Use `Deep` to exercise the full power of the analyzer. Use `Shallow` for faster analysis.",
"name": "CLANG_STATIC_ANALYZER_MODE"
},
{
"name": "CLANG_STATIC_ANALYZER_MODE_ACTION_deep"
},
{
"name": "CLANG_STATIC_ANALYZER_MODE_ACTION_shallow"
},
{
"displayName": "Mode of Analysis for 'Analyze'",
"description": "The depth the static analyzer uses during the Analyze action. Use `Deep` to exercise the full power of the analyzer. Use `Shallow` for faster analysis.",
"name": "CLANG_STATIC_ANALYZER_MODE_ON_ANALYZE_ACTION"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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.",
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"displayName": "Analyze During 'Build'",
"description": "Activating this setting will cause Xcode to run the `Clang` static analysis tool on qualifying source files during every build.",
"name": "RUN_CLANG_STATIC_ANALYZER"
},
{
"name": "SDKROOT"
},
{
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"displayName": "Other Warning Flags",
"description": "Space-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.",
"name": "WARNING_CFLAGS"
},
{
"name": "arch"
},
{
"name": "diagnostic_message_length"
},
{
"name": "print_note_include_stack"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0.assembler",
"path": "",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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.",
"name": "OTHER_CPLUSPLUSFLAGS"
},
{
"name": "SDKROOT"
},
{
"name": "USE_HEADERMAP"
},
{
"name": "USE_HEADER_SYMLINKS"
},
{
"displayName": "Other Warning Flags",
"description": "Space-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.",
"name": "WARNING_CFLAGS"
},
{
"name": "arch"
},
{
"name": "diagnostic_message_length"
},
{
"name": "print_note_include_stack"
},
{}
]
},
{
"spec": "com.apple.compilers.llvm.clang.1_0.astbuilder",
"path": "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec",
"options": [
{
"name": "CLANG_ADDRESS_SANITIZER"
},
{
"displayName": "Enable C++ Container Overflow Checks",
"description": "Check 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.",
"name": "CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW"
},
{
"name": "CLANG_ADDRESS_SANITIZER_USE_AFTER_SCOPE"
},
{
"displayName": "Allow Non-modular Includes In Framework Modules",
"description": "Enabling 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.",
"name": "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"
},
{
"name": "CLANG_ARC_MIGRATE_DIR"
},
{
"name": "CLANG_ARC_MIGRATE_EMIT_ERROR"
},
{
"name": "CLANG_ARC_MIGRATE_PRECHECK"
},
{
"name": "CLANG_ARC_MIGRATE_REPORT_OUTPUT"
},
{
"name": "CLANG_BITCODE_GENERATION_MODE"
},
{
"name": "CLANG_COLOR_DIAGNOSTICS"
},
{
"name": "CLANG_COVERAGE_MAPPING"
},
{
"name": "CLANG_COVERAGE_MAPPING_LINKER_ARGS"
},
{
"displayName": "C++ Language Dialect",
"description": "Choose a standard or non-standard C++ language dialect. Options include:\n\n* *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]\n* *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]\n* *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. [-std=c++11]\n* *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions. [-std=gnu++11]\n* *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. [-std=c++14]\n* *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions. [-std=gnu++14]\n* *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. [-std=c++17]\n* *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions. [-std=gnu++17]\n* *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.)",
"name": "CLANG_CXX_LANGUAGE_STANDARD"
},
{
"displayName": "C++ Standard Library",
"description": "Choose a version of the C++ standard library to use.\n\n* *libstdc++:* A traditional C++ standard library that works with GCC and Clang (default).\n* *libc++:* A highly optimized C++ standard library that works only with Clang, and is designed to support new C++11 features.",
"name": "CLANG_CXX_LIBRARY"
},
{
"displayName": "Debug Information Level",
"description": "Toggles 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.",
"name": "CLANG_DEBUG_INFORMATION_LEVEL"
},
{
"name": "CLANG_DEBUG_MODULES"
},
{
"name": "CLANG_ENABLE_APP_EXTENSION"
},
{
"displayName": "Enable Code Coverage Support",
"description": "Enables 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.",
"name": "CLANG_ENABLE_CODE_COVERAGE"
},
{
"displayName": "Destroy Static Objects",
"description": "Controls whether variables with static or thread storage duration should have their exit-time destructors run.",
"name": "CLANG_ENABLE_CPP_STATIC_DESTRUCTORS"
},
{
"displayName": "Enable Modules (C and Objective-C)",
"description": "Enables 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.",
"name": "CLANG_ENABLE_MODULES"
},
{
"displayName": "Enable Clang Module Debugging",
"description": "When this setting is enabled, `clang` will use the shared debug info available in `clang` modules 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.",
"name": "CLANG_ENABLE_MODULE_DEBUGGING"
},
{
"name": "CLANG_ENABLE_MODULE_IMPLEMENTATION_OF"
},
{
"displayName": "Objective-C Automatic Reference Counting",
"description": "Compiles 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 `retain` and `release` messages) or automated reference counting. Using this mode is currently incompatible with compiling code to use Objective-C Garbage Collection.",
"name": "CLANG_ENABLE_OBJC_ARC"
},
{
"displayName": "Weak References in Manual Retain Release",
"description": "Compiles Objective-C code to enable weak references for code compiled with manual retain release (MRR) semantics.",
"name": "CLANG_ENABLE_OBJC_WEAK"
},
{
"name": "CLANG_INDEX_STORE_ENABLE"
},
{
"name": "CLANG_INDEX_STORE_PATH"
},
{
"name": "CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING"
},
{
"displayName": "Implicitly Link Objective-C Runtime Support",
"description": "When 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.",
"name": "CLANG_LINK_OBJC_RUNTIME"
},
{
"name": "CLANG_MACRO_BACKTRACE_LIMIT"
},
{
"displayName": "Link Frameworks Automatically",
"description": "Automatically link SDK frameworks that are referenced using `#import` or `#include`. This feature requires also enabling support for modules. This build setting only applies to C-family languages.",
"name": "CLANG_MODULES_AUTOLINK"
},
{
"name": "CLANG_MODULES_BUILD_SESSION_FILE"
},
{
"displayName": "Disable Private Modules Warnings",
"description": "Disable warnings related to the recommended use of private module naming. This only makes sense when support for modules is enabled.",
"name": "CLANG_MODULES_DISABLE_PRIVATE_WARNING"
},
{
"name": "CLANG_MODULES_IGNORE_MACROS"
},
{
"name": "CLANG_MODULES_PRUNE_AFTER"
},
{
"name": "CLANG_MODULES_PRUNE_INTERVAL"
},
{
"name": "CLANG_MODULES_VALIDATE_SYSTEM_HEADERS"
},
{
"name": "CLANG_MODULE_CACHE_PATH"
},
{
"name": "CLANG_MODULE_LSV"
},
{
"name": "CLANG_OBJC_MIGRATE_DIR"
},
{
"displayName": "Optimization Profile File",
"description": "The path to the file of the profile data to use when `CLANG_USE_OPTIMIZATION_PROFILE` is enabled.",
"name": "CLANG_OPTIMIZATION_PROFILE_FILE"
},
{
"name": "CLANG_RETAIN_COMMENTS_FROM_SYSTEM_HEADERS"
},
{
"name": "CLANG_TARGET_TRIPLE_ARCHS"
},
{
"name": "CLANG_TARGET_TRIPLE_VARIANTS"
},
{
"name": "CLANG_THREAD_SANITIZER"
},
{
"name": "CLANG_TOOLCHAIN_FLAGS"
},
{
"displayName": "Trivial automatic variable initialization",
"description": "Specify 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.",
"name": "CLANG_TRIVIAL_AUTO_VAR_INIT"
},
{
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER"
},
{
"displayName": "Enable Extra Integer Checks",
"description": "Check for unsigned integer overflow, in addition to checks for signed integer overflow.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER"
},
{
"displayName": "Enable Nullability Annotation Checks",
"description": "Check for violations of nullability annotations in function calls, return statements, and assignments.",
"name": "CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY"
},
{
"displayName": "Use Optimization Profile",
"description": "When this setting is enabled, `clang` will use the optimization profile collected for a target when building it.",
"name": "CLANG_USE_OPTIMIZATION_PROFILE"
},
{
"displayName": "Out-of-Range Enum Assignments",
"description": "Warn about assigning integer constants to enum values that are out of the range of the enumerated type.",
"name": "CLANG_WARN_ASSIGN_ENUM"
},
{
"displayName": "Usage of implicit sequentially-consistent atomics",
"description": "Warns when an atomic is used with an implicitly sequentially-consistent memory order, instead of explicitly specifying memory order.",
"name": "CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST"
},
{
"displayName": "Block Capture of Autoreleasing",
"description": "Warn about block captures of implicitly autoreleasing parameters.",
"name": "CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
},
{
"displayName": "Implicit Boolean Conversions",
"description": "Warn about implicit conversions to boolean values that are suspicious. For example, writing `if (foo)` where `foo` is the name a function will trigger a warning.",
"name": "CLANG_WARN_BOOL_CONVERSION"
},
{
"displayName": "Suspicious Commas",
"description": "Warn about suspicious uses of the comma operator.",
"name": "CLANG_WARN_COMMA"
},
{
"displayName": "Implicit Constant Conversions",
"description": "Warn about implicit conversions of constant values that cause the constant value to change, either through a loss of precision, or entirely in its meaning.",
"name": "CLANG_WARN_CONSTANT_CONVERSION"
},
{
"displayName": "Using C++11 extensions in earlier versions of C++",
"description": "When compiling C++ code using a language standard older than C++11, warn about the use of C++11 extensions.",
"name": "CLANG_WARN_CXX0X_EXTENSIONS"
},
{
"displayName": "Deleting Instance of Polymorphic Class with No Virtual Destructor",
"description": "Warn when deleting an instance of a polymorphic class with virtual functions but without a virtual destructor.",
"name": "CLANG_WARN_DELETE_NON_VIRTUAL_DTOR"
},
{
"displayName": "Overriding Deprecated Objective-C Methods",
"description": "Warn if an Objective-C class either subclasses a deprecated class or overrides a method that has been marked deprecated or unavailable.",
"name": "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"
},
{
"displayName": "Direct usage of 'isa'",
"description": "Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime API.",
"name": "CLANG_WARN_DIRECT_OBJC_ISA_USAGE"
},
{
"displayName": "Documentation Comments",
"description": "Warns about issues in documentation comments (`doxygen`-style) such as missing or incorrect documentation tags.",
"name": "CLANG_WARN_DOCUMENTATION_COMMENTS"
},
{
"displayName": "Empty Loop Bodies",
"description": "Warn about loop bodies that are suspiciously empty.",
"name": "CLANG_WARN_EMPTY_BODY"
},
{
"displayName": "Implicit Enum Conversions",
"description": "Warn 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.",
"name": "CLANG_WARN_ENUM_CONVERSION"
},
{
"displayName": "Implicit Float Conversions",
"description": "Warn about implicit conversions that turn floating-point numbers into integers.",
"name": "CLANG_WARN_FLOAT_CONVERSION"
},
{
"displayName": "Implicit Signedness Conversions",
"description": "Warn about implicit integer conversions that change the signedness of an integer value.",
"name": "CLANG_WARN_IMPLICIT_SIGN_CONVERSION"
},
{
"displayName": "Infinite Recursion",
"description": "Warn if all paths through a function call itself.",
"name": "CLANG_WARN_INFINITE_RECURSION"
},
{
"displayName": "Implicit Integer to Pointer Conversions",
"description": "Warn about implicit conversions between pointers and integers. For example, this can catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.",
"name": "CLANG_WARN_INT_CONVERSION"
},
{
"displayName": "Missing Noescape Annotation",
"description": "Warn about noescape annotations that are missing in a method's signature.",
"name": "CLANG_WARN_MISSING_NOESCAPE"
},
{
"displayName": "Implicit Non-Literal Null Conversions",
"description": "Warn about non-literal expressions that evaluate to zero being treated as a null pointer.",
"name": "CLANG_WARN_NON_LITERAL_NULL_CONVERSION"
},
{
"displayName": "Incorrect Uses of Nullable Values",
"description": "Warns when a nullable expression is used somewhere it’s not allowed, such as when passed as a `_Nonnull` parameter.",
"name": "CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION"
},
{
"displayName": "Implicit ownership types on out parameters",
"description": "Warn 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`.",
"name": "CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE"
},
{
"displayName": "Implicit Atomic Objective-C Properties",
"description": "Warn about `@property` declarations that are implicitly atomic.",
"name": "CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES"
},
{
"displayName": "Implicit retain of 'self' within blocks",
"description": "Warn about implicit retains of `self` within blocks, which can create a retain-cycle.",
"name": "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF"
},
{
"displayName": "Interface Declarations of Instance Variables",
"description": "Warn about instance variable declarations in `@interface`.",
"name": "CLANG_WARN_OBJC_INTERFACE_IVARS"
},
{
"displayName": "Implicit Objective-C Literal Conversions",
"description": "Warn about implicit conversions from Objective-C literals to values of incompatible type.",
"name": "CLANG_WARN_OBJC_LITERAL_CONVERSION"
},
{
"displayName": "Implicit Synthesized Properties",
"description": "Starting 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`.",
"name": "CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS"
},
{
"displayName": "Repeatedly using a __weak reference",
"description": "Warn 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 `nil` between accesses, resulting in unexpected behavior. Assigning to temporary strong reference ensures the object stays alive during the related accesses.",
"name": "CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK"
},
{
"displayName": "Unintentional Root Class",
"description": "Warn about classes that unintentionally do not subclass a root class, such as `NSObject`.",
"name": "CLANG_WARN_OBJC_ROOT_CLASS"
},
{
"displayName": "Suspicious Pragma Pack",
"description": "Warn 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.",
"name": "CLANG_WARN_PRAGMA_PACK"
},
{
"displayName": "Outdated Private Module Map",
"description": "Warn about private modules that do not use the recommended private module layout.",
"name": "CLANG_WARN_PRIVATE_MODULE"
},
{
"displayName": "Quoted Include In Framework Header",
"description": "Warns when a quoted include is used instead of a framework style include in a framework header.",
"name": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER"
},
{
"displayName": "Range-based For Loops",
"description": "Warn about ranged-based for loops.",
"name": "CLANG_WARN_RANGE_LOOP_ANALYSIS"
},
{
"displayName": "Semicolon Before Method Body",
"description": "Warn about ignored semicolon between a method implementation's signature and body.",
"name": "CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY"
},
{
"displayName": "Strict Prototypes",
"description": "Warn about non-prototype declarations.",
"name": "CLANG_WARN_STRICT_PROTOTYPES"
},
{
"displayName": "Suspicious Implicit Conversions",
"description": "Warn about various implicit conversions that can lose information or are otherwise suspicious.",
"name": "CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION"
},
{
"displayName": "Suspicious Moves",
"description": "Warn about suspicious uses of `std::move`.",
"name": "CLANG_WARN_SUSPICIOUS_MOVE"
},
{
"displayName": "Unguarded availability",
"description": "Warn if an API that is newer than the deployment target is used without \"if (@available(...))\" guards.",
"name": "CLANG_WARN_UNGUARDED_AVAILABILITY"
},
{
"displayName": "Unreachable Code",
"description": "Warns about potentially unreachable code.",
"name": "CLANG_WARN_UNREACHABLE_CODE"
},
{
"displayName": "Ambiguous C++ Parsing Situation",
"description": "Warn about a parsing ambiguity between a variable declaration and a function-style cast.",
"name": "CLANG_WARN_VEXING_PARSE"
},
{
"displayName": "Using __bridge Casts Outside of ARC",
"description": "Warn about using `__bridge` casts when not using ARC, where they have no effect.",
"name": "CLANG_WARN__ARC_BRIDGE_CAST_NONARC"
},
{
"displayName": "Duplicate Method Definitions",
"description": "Warn about declaring the same method more than once within the same `@interface`.",
"name": "CLANG_WARN__DUPLICATE_METHOD_MATCH"
},
{
"displayName": "Exit-Time C++ Destructors",
"description": "Warn about destructors for C++ objects that are called when an application is terminating.",
"name": "CLANG_WARN__EXIT_TIME_DESTRUCTORS"
},
{
"displayName": "Enable Additional Vector Extensions",
"description": "Enables the use of extended vector instructions. Only used when targeting Intel architectures.",
"name": "CLANG_X86_VECTOR_INSTRUCTIONS"
},
{
"name": "CPP_HEADERMAP_FILE"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_NON_FRAMEWORK_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_ALL_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_GENERATED_FILES"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_OWN_TARGET_HEADERS"
},
{
"name": "CPP_HEADERMAP_FILE_FOR_PROJECT_FILES"
},
{
"name": "CPP_HEADERMAP_PRODUCT_HEADERS_VFS_FILE"
},
{
"name": "CPP_HEADER_SYMLINKS_DIR"
},
{
"name": "DEFAULT_SSE_LEVEL_3_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_3_SUPPLEMENTAL_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_3_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_1_YES"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_NO"
},
{
"name": "DEFAULT_SSE_LEVEL_4_2_YES"
},
{
"name": "ENABLE_APPLE_KEXT_CODE_GENERATION"
},
{
"displayName": "Enable Foundation Assertions",
"description": "Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing. Disabling assertions can improve code performance.",
"name": "ENABLE_NS_ASSERTIONS"
},
{
"displayName": "Enable Strict Checking of objc_msgSend Calls",
"description": "Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer type before being called.",
"name": "ENABLE_STRICT_OBJC_MSGSEND"
},
{
"displayName": "'char' Type Is Unsigned",
"description": "Enabling this setting causes `char` to be unsigned by default, disabling it causes `char` to be signed by default.",
"name": "GCC_CHAR_IS_UNSIGNED_CHAR"
},
{
"displayName": "CodeWarrior/MS-Style Inline Assembly",
"description": "Enable the CodeWarrior/Microsoft syntax for inline assembly code in addition to the standard GCC syntax.",
"name": "GCC_CW_ASM_SYNTAX"
},
{
"displayName": "C Language Dialect",
"description": "Choose a standard or non-standard C language dialect.\n\n* *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are incompatible. [-ansi]\n Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but not the equivalent `\\_\\_asm\\_\\_`, `\\_\\_inline\\_\\_`, and `\\_\\_typeof\\_\\_` forms), and the `//` syntax for comments.\n This setting also enables trigraphs.\n* *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]\n* *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]\n* *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]\n* *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]\n* *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]\n* *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]\n* *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.)",
"name": "GCC_C_LANGUAGE_STANDARD"
},
{
"name": "GCC_DEBUG_INFORMATION_FORMAT"
},
{
"displayName": "Generate Position-Dependent Code",
"description": "Faster function calls for applications. Not appropriate for shared libraries, which need to be position-independent.",
"name": "GCC_DYNAMIC_NO_PIC"
},
{
"displayName": "Allow 'asm', 'inline', 'typeof'",
"description": "Controls whether `asm`, `inline`, and `typeof` are treated as keywords or whether they can be used as identifiers.",
"name": "GCC_ENABLE_ASM_KEYWORD"
},
{
"displayName": "Recognize Builtin Functions",
"description": "Controls whether builtin functions that do not begin with `\\_\\_builtin\\_` as prefix are recognized.\n\nGCC normally generates special code to handle certain builtin functions more efficiently; for instance, calls to `alloca` may become single instructions that adjust the stack directly, and calls to `memcpy` may 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 `-Wformat` for bad calls to `printf`, when `printf` is built in, and `strlen` is known not to modify global memory.",
"name": "GCC_ENABLE_BUILTIN_FUNCTIONS"
},
{
"displayName": "Enable C++ Exceptions",
"description": "Enable 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++.",
"name": "GCC_ENABLE_CPP_EXCEPTIONS"
},
{
"displayName": "Enable C++ Runtime Types",
"description": "Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (`dynamic_cast` and `typeid`). 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.",
"name": "GCC_ENABLE_CPP_RTTI"
},
{
"displayName": "Enable Exceptions",
"description": "Enable 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.",
"name": "GCC_ENABLE_EXCEPTIONS"
},
{
"displayName": "Generate Floating Point Library Calls",
"description": "Generate output containing library calls for floating point.",
"name": "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS"
},
{
"displayName": "Kernel Development Mode",
"description": "Activating this setting enables kernel development mode.",
"name": "GCC_ENABLE_KERNEL_DEVELOPMENT"
},
{
"displayName": "Enable Objective-C Exceptions",
"description": "This setting enables `@try`/`@catch`/`@throw` syntax for handling exceptions in Objective-C code. Only applies to Objective-C.",
"name": "GCC_ENABLE_OBJC_EXCEPTIONS"
},
{
"displayName": "Recognize Pascal Strings",
"description": "Recognize and construct Pascal-style string literals. Its use in new code is discouraged.\n\nPascal string literals take the form `\"\\pstring\"` . The special escape sequence `\\p` denotes the Pascal length byte for the string, and will be replaced at compile time with the number of characters that follow. The `\\p` may only appear at the beginning of a string literal, and may not appear in wide string literals or as an integral constant.",
"name": "GCC_ENABLE_PASCAL_STRINGS"
},
{
"displayName": "Enable SSE3 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE3 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE3_EXTENSIONS"
},
{
"displayName": "Enable SSE4.1 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.1 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE41_EXTENSIONS"
},
{
"displayName": "Enable SSE4.2 Extensions",
"description": "Specifies whether the binary uses the builtin functions that provide access to the SSE4.2 extensions to the IA-32 architecture.",
"name": "GCC_ENABLE_SSE42_EXTENSIONS"
},
{
"name": "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS"
},
{
"displayName": "Enable Trigraphs",
"description": "Controls whether or not trigraphs are permitted in the source code.",
"name": "GCC_ENABLE_TRIGRAPHS"
},
{
"displayName": "Relax IEEE Compliance",
"description": "Enables 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.",
"name": "GCC_FAST_MATH"
},
{
"displayName": "Generate Debug Symbols",
"description": "Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.",
"name": "GCC_GENERATE_DEBUGGING_SYMBOLS"
},
{
"displayName": "Generate Legacy Test Coverage Files",
"description": "Activating this setting causes a `notes` file to be produced that the `gcov` code-coverage utility can use to show program coverage.",
"name": "GCC_GENERATE_TEST_COVERAGE_FILES"
},
{
"displayName": "Increase Sharing of Precompiled Headers",
"description": "Enabling this option will enable increased sharing of precompiled headers among targets that share the same prefix header and precompiled header directory.\n\nXcode 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.\n\nEnabling 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.",
"name": "GCC_INCREASE_PRECOMPILED_HEADER_SHARING"
},
{
"displayName": "Inline Methods Hidden",
"description": "When enabled, out-of-line copies of inline methods are declared `private extern`.",
"name": "GCC_INLINES_ARE_PRIVATE_EXTERN"
},
{
"displayName": "Compile Sources As",
"description": "Specifies 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.",
"name": "GCC_INPUT_FILETYPE"
},
{
"displayName": "Instrument Program Flow",
"description": "Activating this setting indicates that code should be added so program flow arcs are instrumented.",
"name": "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"
},
{
"displayName": "Enable Linking With Shared Libraries",
"description": "Enabling this option allows linking with the shared libraries. This is the default for most product types.",
"name": "GCC_LINK_WITH_DYNAMIC_LIBRARIES"
},
{
"name": "GCC_MACOSX_VERSION_MIN"
},
{
"displayName": "No Common Blocks",
"description": "In 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.",
"name": "GCC_NO_COMMON_BLOCKS"
},
{
"name": "GCC_OBJC_ABI_VERSION"
},
{
"name": "GCC_OBJC_LEGACY_DISPATCH"
},
{
"name": "GCC_OPERATION"
},
{
"displayName": "Optimization Level",
"description": "Specifies the degree to which the generated code is optimized for speed and binary size.\n\n* *None:* Do not optimize. [-O0]\n With 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.\n* *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a large function. [-O1]\n With 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.\n* *Faster:* The compiler performs nearly all supported optimizations that do not involve a space-speed tradeoff. [-O2]\n With this setting, the compiler does not perform loop unrolling or function inlining, or register renaming. As compared to the `Fast` setting, this setting increases both compilation time and the performance of the generated code.\n* *Fastest:* Turns on all optimizations specified by the `Faster` setting and also turns on function inlining and register renaming options. This setting may result in a larger binary. [-O3]\n* *Fastest, Smallest:* Optimize for size. This setting enables all `Faster` optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. [-Os]\n* *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables aggressive optimizations that may break strict standards compliance but should work well on well-behaved code. [-Ofast]\n* *Smallest, Aggressive Size Optimizations:* This setting enables additional size savings by isolating repetitive code patterns into a compiler generated function. [-Oz]",
"name": "GCC_OPTIMIZATION_LEVEL"
},
{
"name": "GCC_PFE_FILE_C_DIALECTS"
},
{
"displayName": "Precompile Prefix Header",
"description": "Generates a precompiled header for the prefix header, which should reduce overall build times.\n\nPrecompiling 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.",
"name": "GCC_PRECOMPILE_PREFIX_HEADER"
},
{
"displayName": "Prefix Header",
"description": "Implicitly include the named header. The path given should either be a project relative path or an absolute path.",
"name": "GCC_PREFIX_HEADER"
},
{
"displayName": "Preprocessor Macros",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.",
"name": "GCC_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Preprocessor Macros Not Used In Precompiled Headers",
"description": "Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. These macros are not used when precompiling a prefix header file.",
"name": "GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS"
},
{
"name": "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS"
},
{
"displayName": "Make Strings Read-Only",
"description": "Reuse string literals.",
"name": "GCC_REUSE_STRINGS"
},
{
"displayName": "Short Enumeration Constants",
"description": "Make enums only as large as needed for the range of possible values.\n\nThis setting generates code that may not binary compatible with code generated without this setting or with macOS frameworks.",
"name": "GCC_SHORT_ENUMS"
},
{
"displayName": "Enforce Strict Aliasing",
"description": "Optimize 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.",
"name": "GCC_STRICT_ALIASING"
},
{
"displayName": "Symbols Hidden by Default",
"description": "When enabled, all symbols are declared `private extern` unless explicitly marked to be exported using `\\_\\_attribute\\_\\_((visibility(\"default\")))` in code. If not enabled, all symbols are exported unless explicitly marked as `private extern`. See [Controlling Symbol Visibility](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html#//apple_ref/doc/uid/TP40001670-CJBGBHEJ) in [C++ Runtime Environment Programming Guide](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html).",
"name": "GCC_SYMBOLS_PRIVATE_EXTERN"
},
{
"displayName": "Statics are Thread-Safe",
"description": "Emits 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.",
"name": "GCC_THREADSAFE_STATICS"
},
{
"displayName": "Treat Missing Function Prototypes as Errors",
"description": "Causes warnings about missing function prototypes to be treated as errors. Only applies to C and Objective-C.",
"name": "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS"
},
{
"displayName": "Treat Incompatible Pointer Type Warnings as Errors",
"description": "Enabling this option causes warnings about incompatible pointer types to be treated as errors.",
"name": "GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS"
},
{
"displayName": "Treat Warnings as Errors",
"description": "Enabling this option causes all warnings to be treated as errors.",
"name": "GCC_TREAT_WARNINGS_AS_ERRORS"
},
{
"displayName": "Unroll Loops",
"description": "Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the number of branches executed.",
"name": "GCC_UNROLL_LOOPS"
},
{
"name": "GCC_USE_GCC3_PFE_SUPPORT"
},
{
"displayName": "Use Standard System Header Directory Searching",
"description": "Controls whether the standard system directories are searched for header files. When disabled, only the directories you have specified with `-I` options (and the directory of the current file, if appropriate) are searched.",
"name": "GCC_USE_STANDARD_INCLUDE_SEARCHING"
},
{
"displayName": "Implicit Conversion to 32 Bit Type",
"description": "Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a subset of the warnings provided by -Wconversion.",
"name": "GCC_WARN_64_TO_32_BIT_CONVERSION"
},
{
"displayName": "Deprecated Functions",
"description": "Warn about the use of deprecated functions, variables, and types (as indicated by the `deprecated` attribute).",
"name": "GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS"
},
{
"displayName": "Undefined Use of offsetof Macro",
"description": "Unchecking this setting will suppress warnings from applying the `offsetof` macro to a non-POD type. According to the 1998 ISO C++ standard, applying `offsetof` to a non-POD type is undefined. In existing C++ implementations, however, `offsetof` typically 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.\n\nThe restrictions on `offsetof` may be relaxed in a future version of the C++ standard.",
"name": "GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO"
},
{
"displayName": "Missing Fields in Structure Initializers",
"description": "Warn if a structure's initializer has some fields missing. For example, the following code would cause such a warning because `x.h` is implicitly zero:\n\n struct s { int f, g, h; };\n struct s x = { 3, 4 };\n\nThis option does not warn about designated initializers, so the following modification would not trigger a warning:\n\n struct s { int f, g, h; };\n struct s x = { .f = 3, .g = 4 };",
"name": "GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS"
},
{
"displayName": "Missing Newline At End Of File",
"description": "Warn when a source file does not end with a newline.",
"name": "GCC_WARN_ABOUT_MISSING_NEWLINE"
},
{
"displayName": "Missing Function Prototypes",
"description": "Causes warnings to be emitted about missing prototypes.",
"name": "GCC_WARN_ABOUT_MISSING_PROTOTYPES"
},
{
"displayName": "Pointer Sign Comparison",
"description": "Warn when pointers passed via arguments or assigned to a variable differ in sign.",
"name": "GCC_WARN_ABOUT_POINTER_SIGNEDNESS"
},
{
"displayName": "Mismatched Return Type",
"description": "Causes 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.",
"name": "GCC_WARN_ABOUT_RETURN_TYPE"
},
{
"displayName": "Incomplete Objective-C Protocols",
"description": "Warn if methods required by a protocol are not implemented in the class adopting it. Only applies to Objective-C.",
"name": "GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL"
},
{
"displayName": "Check Switch Statements",
"description": "Warn 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.",
"name": "GCC_WARN_CHECK_SWITCH_STATEMENTS"
},
{
"displayName": "Four Character Literals",
"description": "Warn about four-char literals (for example, macOS-style `OSTypes`: `'APPL'`).",
"name": "GCC_WARN_FOUR_CHARACTER_CONSTANTS"
},
{
"displayName": "Overloaded Virtual Functions",
"description": "Warn when a function declaration hides virtual functions from a base class.\n\nFor example, in the following example, the `A` class version of `f()` is hidden in `B`.\n\n\tstruct A {\n\t virtual void f();\n\t};\n\n\tstruct B: public A {\n\t void f(int);\n\t};\n\nAs a result, the following code will fail to compile.\n\n\tB* b;\n\tb->f();\n\nThis setting only applies to C++ and Objective-C++ sources.",
"name": "GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS"
},
{
"displayName": "Inhibit All Warnings",
"description": "Inhibit all warning messages.",
"name": "GCC_WARN_INHIBIT_ALL_WARNINGS"
},
{
"displayName": "Initializer Not Fully Bracketed",
"description": "Warn if an aggregate or union initializer is not fully bracketed. In the following example, the initializer for `a` is not fully bracketed, but the initializer for `b` is fully bracketed.\n\n\tint a[2][2] = { 0, 1, 2, 3 };\n\tint b[2][2] = { { 0, 1 }, { 2, 3 } };\n",
"name": "GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED"
},
{
"displayName": "Missing Braces and Parentheses",
"description": "Warn 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 `if` statement an `else` branch belongs. For example:\n\n {\n if (a)\n if (b)\n foo ();\n else\n bar ();\n }\n\nIn C, every `else` branch belongs to the innermost possible `if` statement, which in the example above is `if (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 innermost `if` statement so there is no way the `else` could belong to the enclosing `if`. For example:\n\n {\n if (a)\n {\n if (b)\n foo ();\n else\n bar ();\n }\n }\n",
"name": "GCC_WARN_MISSING_PARENTHESES"
},
{
"name": "GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR"
},
{
"displayName": "Nonvirtual Destructor",
"description": "Warn 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.",
"name": "GCC_WARN_NON_VIRTUAL_DESTRUCTOR"
},
{
"displayName": "Pedantic Warnings",
"description": "Issue 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 `-std` option used.",
"name": "GCC_WARN_PEDANTIC"
},
{
"displayName": "Hidden Local Variables",
"description": "Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a builtin function is shadowed.",
"name": "GCC_WARN_SHADOW"
},
{
"displayName": "Sign Comparison",
"description": "Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.",
"name": "GCC_WARN_SIGN_COMPARE"
},
{
"displayName": "Strict Selector Matching",
"description": "Warn 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 `id` or `Class`. 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.",
"name": "GCC_WARN_STRICT_SELECTOR_MATCH"
},
{
"displayName": "Typecheck Calls to printf/scanf",
"description": "Check calls to `printf` and `scanf` to 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.",
"name": "GCC_WARN_TYPECHECK_CALLS_TO_PRINTF"
},
{
"displayName": "Undeclared Selector",
"description": "Warn 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 `@interface` or `@protocol` declaration, or implicitly in an `@implementation` section. This option always performs its checks as soon as a `@selector(...)` expression is found, while `-Wselector` only 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.",
"name": "GCC_WARN_UNDECLARED_SELECTOR"
},
{
"displayName": "Uninitialized Variables",
"description": "Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable is used without prior initialization.\n\nThe 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.",
"name": "GCC_WARN_UNINITIALIZED_AUTOS"
},
{
"displayName": "Unknown Pragma",
"description": "Warn when a `#pragma` directive 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 `-Wall` command-line option.",
"name": "GCC_WARN_UNKNOWN_PRAGMAS"
},
{
"displayName": "Unused Functions",
"description": "Warn whenever a static function is declared but not defined or a noninline static function is unused.",
"name": "GCC_WARN_UNUSED_FUNCTION"
},
{
"displayName": "Unused Labels",
"description": "Warn whenever a label is declared but not used.",
"name": "GCC_WARN_UNUSED_LABEL"
},
{
"displayName": "Unused Parameters",
"description": "Warn whenever a function parameter is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_PARAMETER"
},
{
"displayName": "Unused Values",
"description": "Warn whenever a statement computes a result that is explicitly not used.",
"name": "GCC_WARN_UNUSED_VALUE"
},
{
"displayName": "Unused Variables",
"description": "Warn whenever a local variable or nonconstant static variable is unused aside from its declaration.",
"name": "GCC_WARN_UNUSED_VARIABLE"
},
{
"name": "HEADERMAP_FILE_FORMAT"
},
{
"name": "LLVM_IMPLICIT_AGGRESSIVE_OPTIMIZATIONS"
},
{
"displayName": "Link-Time Optimization",
"description": "Enabling this setting allows optimization across file boundaries during linking.\n\n* *No:* Disabled. Do not use link-time optimization.\n* *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.\n* *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.",
"name": "LLVM_LTO"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_0"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_1"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_2"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_3"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_fast"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_s"
},
{
"name": "LLVM_OPTIMIZATION_LEVEL_VAL_z"
},
{
"displayName": "Other C Flags",
"description": "Space-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.",
"name": "OTHER_CFLAGS"
},
{
"displayName": "Other C++ Flags",
"description": "Space-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+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment