# xcbuild
**Repository Path**: mengfengfei/xcbuild
## Basic Information
- **Project Name**: xcbuild
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-02-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
xcbuild
**xcbuild** is an Xcode-compatible build tool with the goal of providing faster builds, better documentation of the build process and running on multiple platforms (macOS, Linux, and Windows)
### Why xcbuild?
| Features |
|
Performance |
| :rocket: | Blazing fast incremental builds | | xcodebuild | xcbuild + Ninja |
| :book: | Documents the Xcode build process |
| :link: | Builds Xcode projects and workspaces |
| :hatching_chick: | Supports Swift apps and frameworks | Clean Build | 30.103s | 25.122s |
| :sparkles: | Tools and libraries for Xcode projects |
| :gift_heart: | Fully compatible with xcpretty |
| :tophat: | Uses Ninja and llbuild | Incremental Build | 2.190s | 0.046s :zap: |
| :octocat: | Open source under the BSD license |
| :penguin: | Builds on Linux and Windows |
### xcbuild and other build tools
[xctool](https://github.com/facebook/xctool) | [Buck](https://github.com/facebook/buck) | [xcpretty](https://github.com/supermarin/xcpretty)
----|----|---
xcbuild and [xctool](https://github.com/facebook/xctool) are both Xcode-compatible build systems. We plan on slowly deprecating xctool's build support but keep it as a great way to run tests. | Facebook's main build system is [Buck](https://buckbuild.com). Buck has a stronger architecture and advanced features like artifact caching while having a much simpler build format. If you have a new project, it's highly recommended. | xcbuild works great with [xcpretty](https://github.com/supermarin/xcpretty). Pipe the output from xcbuild to xcpretty the same way as you would from `xcodebuild`.
## Building xcbuild
[](https://travis-ci.org/facebook/xcbuild)
### Requirements
#### All platforms
- [CMake](http://www.cmake.org) and [Ninja](https://ninja-build.org/) (or [llbuild](https://github.com/apple/swift-llbuild)) are required to build xcbuild.
On macOS you can install those tools with [Homebrew](https://brew.sh/): `brew install cmake ninja`.
On Windows you can install those tools with [Chocolatey](https://chocolatey.org): `choco install cmake ninja`.
#### Linux
- GCC 4.8 or later. `libpng16-dev`, `zlib1g-dev`, `libxml2-dev`, and `pkg-config` are also required.
#### macOS
- Xcode 7 or later.
#### Windows
- Visual Studio 2015 or later, on Windows. A `zlib` DLL is also required.
### Instructions
#### All platforms
```sh
git clone --depth=1 https://github.com/facebook/xcbuild
cd xcbuild
git submodule update --init
```
#### Linux and macOS:
```sh
make
```
Build output will be in the `build` directory. Run xcbuild with `./build/xcbuild`.
You can place xcbuild in your `bin` directory to run it from other locations: `mv build/xcbuild /usr/local/bin/`.
#### Windows (experimental):
```sh
cmake -Bbuild -H. -G "Visual Studio 14 2015" -DZLIB_ROOT=
```
Open `build\xcbuild.sln` and build.
## Usage
The command line options are compatible with [xcodebuild](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html).
```
xcbuild -workspace Example.xcworkspace -scheme Example
```
### Using Ninja (or llbuild)
To switch to the significantly faster [Ninja](https://ninja-build.org/) executor:
```sh
xcbuild -executor ninja [-workspace Example.xcworkspace ...]
```
Besides the `-executor ninja` parameters, the options are otherwise identical. The Ninja executor is fastest if it can avoid re-generating the Ninja files if the build configuration and input project files do not change.
## Contributing
xcbuild actively welcomes contributions from the community. If you're interested in contributing, be sure to check out the [contributing guide](https://github.com/facebook/xcbuild/blob/master/CONTRIBUTING.md). It includes some tips for getting started in the codebase, as well as important information about the code of conduct, license, and CLA.
## Thanks
xcbuild is built on build system documentation from the community. In particular, thanks to these people for their writing:
- [Samantha Marshall](http://pewpewthespells.com)
- [Damien Bobillot](http://maxao.free.fr/xcode-plugin-interface/)
- [Michele Titolo](http://michele.io)
- [Laurent Etiemble](http://www.monobjc.net/xcode-project-file-format.html)
- [Apple Developer](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/Xcode_Build_System.pdf)
Third-party licenses are listed in the `LICENSE` document.