tapi-installapi(1)

NAME
tapi-installapi - Create a text-based stub file by scanning the header files

SYNOPSIS
tapi installapi [options] <directory>

DESCRIPTION

The installapi command creates a text-based stub file (.tbd) by parsing the header files that are associated with a framework/dynamic library. The headers are parsed per default in Objective-C syntax mode. C++ support is still experimental.

REQUIRED OPTIONS

-target <triple>
    Specifies the architecture, platform, and deployment target to use for parsing the header files. At least one arget option must be specified. The <triple> is the same as the one that is used by clang and has the general format <arch>-<vendor>-<system>-<abi>. The architecture <arch> specifies the architecture slice (for example 'x86_64' or 'arm64'). The only supported vendor by this tool is 'apple'. The system encodes the platform and deployment target. The abi is optional and the only supported value is 'simulator'. Examples:
    x86_64-apple-macosx10.14 - creates an x86_64 architecture slice for macOS with a deployment target of 10.14.
    arm64-apple-ios12.0 - creates an arm64 architecture slice for iOS with a deployment target of 12.0.
    x86_64-apple-ios12.0-simulator - creates an x86_64 architecture slice for the iOS simulator with a deployment target of 12.0.

-install_name <path>
    Sets an internal "install path" (LC_ID_DYLIB) in a dynamic library.

COMMON OPTIONS

-ObjC
    Treat source input files as Objective-C inputs (default).

-ObjC++
    Treat source input files as Objective-C++ inputs.

-x <language>
    Treat subsequent input files as having type <language>. Supported values for language are c, c++, objective-c, and objective-c++.

-std=<value>
    Language standard to compile for.

-current_version <value>
    Specifies the current version number of the library.

-compatibility_version <value>
    Specifies the compatibility version number of the library.

-D <value>
-U <value>
    Define/undefine macro.

-isysroot <directory>
    Specifies the path to the SDK directory.

-I <value>
    Add directory to include search path.

-L <value>
    Add directory to the library search path.

-F <value>
    Add directory to framework include search path.

--verify-mode=<value>
    Specify the severity of the validation. Supported values are ErrorsOnly, ErrorsAndWarnings, and Pedantic.

-verify-against <value>
    Verify the specified dynamic library/framework against the headers.

-o <file>
    Write output to <file>.

--demangle
    Demangle C++ symbols when printing warnings and errors.

--filelist=<path>
    The specified file (JSON) contains a list of headers to parse.

--help
    Prints the list of options.

RARELY USED OPTIONS

-allowable_client <value>
    Restricts what can link against the dynamic library being created. Per default this option applies to all provided architectures. The use of -Xarch_<arch> before the option limits the effect to the provided architecture <arch>.

-reexport_install_name <name>
    Reexport the specified internal "install path" (LC_ID_DYLIB). Per default this option applies to all provided architectures. The use of -Xarch_<arch> before the option limits the effect to the provided architecture <arch>.

-umbrella <framework_name>
    Specifies that the dylib being linked is re-exported through an umbrella framework of the specified name.

-fno-rtti
    Disable generation of rtti information.

-fprofile-instr-generate
    Add extra symbols for InstallAPI that are created by code coverage.

-extra-public-header <path>
    Add additional public header file/directory for parsing.

-extra-private-header <path>
    Add additional private header file/directory for parsing.

-exclude-public-header <glob>
    Exclude public headers that match the glob from parsing.

-exclude-private-header <glob>
    Exclude private header that match the glob from parsing.

-fapplication-extension
    Restrict code to those available for App Extensions.

-ferror-limit <N>
    Set the maximum number of errors to emit before stopping (0 = no limit).

-alias_list <path>
    The specified file contains a list of aliases. The symbol name and its alias are on one line, separated by whitespace. Lines starting with # are ignored. Per default this option applies to all provided architectures. The use of -Xarch_<arch> before the option limits the effect to the provided architecture <arch>.

DEPRECATED OPTIONS

-arch <architecture>
    Specifies the architectures to use for parsing the headers. At least one architecture must be specified. This option has been replaced by -target option.

-macosx_version_min <value>
-ios_version_min <value>
-watchos_version_min <value>
-tvos_version_min <value>
    This is set to indicate the oldest platform version that that the output is to be used on. This option has been replaced by the -target option.

ENVIRONMENT VARIABLES

MACOSX_DEPLOYMENT_TARGET
IPHONEOS_DEPLOYMENT_TARGET
TVOS_DEPLOYMENT_TARGET
WATCHOS_DEPLOYMENT_TARGET
    This is set to indicate the oldest platform version that that the output is to be used on. See also -macosx_version_min, -ios_version_min, -watchos_version_min, or -tvos_version_min. These environment variables are ignored if any of the minimum deployment targets or the -target option have been specified on the command line.

LD_NO_ENCRYPT
LD_APPLICATION_EXTENSION_SAFE
    Defining either of these environment variables has the same effect as specifying -fapplication-extension on the command line. These enironment variables are ignored if -fapplication-extension or -fno-application-extension are specified on the command line.

SEE ALSO
tapi(1), ld(1)