XCRUN(1)                  BSD General Commands Manual                 XCRUN(1)

NAME
       xcrun - Run or locate development tools and properties.

SYNOPSIS
       xcrun [--sdk <SDK name>] --find <tool name>

       xcrun [--sdk <SDK name>] <tool name> ... tool arguments ...

       <tool name> ... tool arguments ...

DESCRIPTION
       xcrun provides a means to locate or invoke developer tools from the
       command-line, without requiring users to modify Makefiles or otherwise
       take inconvenient measures to support multiple Xcode tool chains.

       The tool xcode-select(1) is used to set a system default for the active
       developer directory, and may be overridden by the DEVELOPER_DIR
       environment variable (see ENVIRONMENT).

       The SDK which will be searched defaults to the most recent available
       SDK, and can be specified by the SDKROOT environment variable or the
       --sdk option (which takes precedences over SDKROOT). When used to
       invoke another tool (as opposed to simply finding it), xcrun will
       provide the absolute path to the selected SDK in the SDKROOT
       environment variable. See ENVIRONMENT for more information.

   Usage
       xcrun supports several different usages, to both look up the paths to
       tools as well as execute them.

       When used with the --find argument, as in xcrun [--sdk <SDK name>]
       --find <tool name>, the absolute path to the tool (in the provided SDK,
       if given) will be printed.

       When used without --find, the name of a tool is required and the tool
       will be executed with the provided arguments.

       When used as the target of a symbolic link, it derives the tool name to
       use from the name it was invoked under, and then executes that tool.

OPTIONS

       -v, --verbose
              Add verbose information on how the tool lookup is performed.

       -n, --no-cache
              Don't consult the cache when looking up values. In effect,
              causes the cache entry to be refreshed.

       -k, --kill-cache
              Removes the cache. Causes all values to be re-cached.

       --sdk  Specifies which SDK to search for tools. If no --sdk argument is
              provided, then the SDK used will be taken from the SDKROOT
              environment variable, if present.

              Use xcodebuild -showsdks to list the available SDK names.

       --toolchain
              Specifies which toolchain to use to perform the lookup. If no
              --toolchain argument is provided, then the toolchain to use will
              be taken from the TOOLCHAINS environment variable, if present.

       -l, --log
              Print the full command line that is invoked.

       -f, --find
              Enable "find" mode, in which the resolved tool path is printed
              instead of the tool being executed.

       -r, --run
              Enable "run" mode, in which the resolved tool path is executed
              with any provided additional arguments. This is the default
              mode.

       --show-sdk-path
              Print the path to the selected SDK.

       --show-sdk-version
              Print the version number of the selected SDK.

       --show-sdk-build-version
              Print the build version number of the selected SDK.

       --show-sdk-platform-path
              Print the path to the platform for the selected SDK.

       --show-sdk-platform-version
              Print the version number of the platform for the selected SDK.

ENVIRONMENT
       CPATH
          This environment variable is modified by xcrun to include
          /usr/local/include when an explicit SDK is not requested via
          environment variable nor command line argument and neither -nostdinc
          nor -nostdsysteminc are present.

       DEVELOPER_DIR
          Overrides the active developer directory. When DEVELOPER_DIR is set,
          its value will be used instead of the system-wide active developer
          directory.

       LIBRARY_PATH
          This environment variable is modified by xcrun to include
          /usr/local/lib when an explicit SDK is not requested via environment
          variable nor command line argument and -Z is not being passed to the
          linker.

       SDKROOT
          Specifies the default SDK to be used when looking up tools (some
          tools may have SDK specific versions).

          This environment variable is also set by xcrun to be the absolute
          path to the user provided SDK (either via SDKROOT or the --sdk
          option), when it is used to invoke a normal developer tool (build
          tools like xcodebuild or make are exempt from this behavior).

          For example, if xcrun is used to invoke clang via:
             xcrun --sdk macosx clang test.c

          then xcrun will provide the full path to the macosx SDK in the
          environment variable SDKROOT. That in turn will be used by clang(1)
          to automatically select that SDK when compiling the test.c file.

       TOOLCHAINS
          Specifies the default toolchain to be used when looking up tools
          (for tools which are toolchain specific).

       xcrun_log
          Same as specifying --log.

       xcrun_nocache
          Same as specifying --no-cache.

       xcrun_verbose
          Same as specifying --verbose.

EXAMPLES
       xcrun --find clang
          Finds the path to the clang binary in the default SDK.

       xcrun --sdk iphoneos --find texturetool
          Finds the path to the texturetool binary in the iOS SDK.

       xcrun --sdk macosx --show-sdk-path
          Prints the path to the current Mac OS X SDK.

       xcrun git status
          Locates the git command and then executes it with a single argument
          ("status").

DIAGNOSTICS
       When xcrun is invoked with the name xcrun, the options --log and
       --verbose are useful debugging aids. The option --no-cache can be used
       to bypass cache lookup, but often at a significant cost in performance.

       When xcrun has taken the place of another tool, the arguments are those
       of the tool replaced, and the various xcrun options can't be used. In
       this case, use the specific environment variables instead.

SEE ALSO
       xcodebuild(1), xcode-select(1)

Mac OS X                         July 9, 2015                         XCRUN(1)