{"id":3147,"url":"https://github.com/facebookarchive/xcbuild","last_synced_at":"2025-08-03T13:32:03.152Z","repository":{"id":47432655,"uuid":"43019030","full_name":"facebookarchive/xcbuild","owner":"facebookarchive","description":"Xcode-compatible build tool.","archived":true,"fork":false,"pushed_at":"2020-01-09T06:28:30.000Z","size":4453,"stargazers_count":2003,"open_issues_count":63,"forks_count":190,"subscribers_count":79,"default_branch":"master","last_synced_at":"2024-08-24T02:02:00.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/facebookarchive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-23T18:24:01.000Z","updated_at":"2024-08-10T06:32:24.000Z","dependencies_parsed_at":"2022-08-23T22:31:34.181Z","dependency_job_id":null,"html_url":"https://github.com/facebookarchive/xcbuild","commit_stats":null,"previous_names":["facebook/xcbuild"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookarchive%2Fxcbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookarchive%2Fxcbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookarchive%2Fxcbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookarchive%2Fxcbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebookarchive","download_url":"https://codeload.github.com/facebookarchive/xcbuild/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228548567,"owners_count":17935221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-01-05T20:16:32.756Z","updated_at":"2024-12-07T01:30:37.143Z","avatar_url":"https://github.com/facebookarchive.png","language":"C++","funding_links":[],"categories":["Tools","C++","HarmonyOS"],"sub_categories":["Web View","Windows Manager"],"readme":"\n\u003ch1 align=\"center\"\u003e\n  \u003c!--\u003cimg src=\"xcbuild_logo.jpg\" alt=\"Facebook xcbuild\" /\u003e--\u003e\n  xcbuild\n\u003c/h1\u003e\n\n**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)\n\n### Why xcbuild?\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth colspan=\"2\"\u003eFeatures\u003c/th\u003e\n    \u003cth rowspan=\"10\"\u003e\u003c/th\u003e\n    \u003cth colspan=\"3\"\u003ePerformance\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:rocket:\u003c/td\u003e\u003ctd\u003eBlazing fast incremental builds\u003c/td\u003e\u003cth rowspan=\"3\"\u003e\u003c/th\u003e\u003cth rowspan=\"3\"\u003e\u003ccode\u003excodebuild\u003c/code\u003e\u003c/th\u003e\u003cth rowspan=\"3\"\u003excbuild + Ninja\u003c/th\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:book:\u003c/td\u003e\u003ctd\u003eDocuments the Xcode build process\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:link:\u003c/td\u003e\u003ctd\u003eBuilds Xcode projects and workspaces\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:hatching_chick:\u003c/td\u003e\u003ctd\u003eSupports Swift apps and frameworks\u003c/td\u003e\u003cth rowspan=\"3\"\u003eClean Build\u003c/th\u003e\u003ctd rowspan=\"3\"\u003e30.103s\u003c/td\u003e\u003ctd rowspan=\"3\"\u003e25.122s\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:sparkles:\u003c/td\u003e\u003ctd\u003eTools and libraries for Xcode projects\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:gift_heart:\u003c/td\u003e\u003ctd\u003eFully compatible with \u003ca href=\"https://github.com/supermarin/xcpretty\"\u003excpretty\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:tophat:\u003c/td\u003e\u003ctd\u003eUses \u003ca href=\"https://ninja-build.org/\"\u003eNinja\u003c/a\u003e and \u003ca href=\"https://github.com/apple/swift-llbuild\"\u003ellbuild\u003c/a\u003e\u003c/td\u003e\u003cth rowspan=\"3\"\u003eIncremental Build\u003c/th\u003e\u003ctd rowspan=\"3\"\u003e2.190s\u003c/td\u003e\u003ctd rowspan=\"3\"\u003e0.046s :zap:\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:octocat:\u003c/td\u003e\u003ctd\u003eOpen source under the BSD license\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e:penguin:\u003c/td\u003e\u003ctd\u003eBuilds on Linux and Windows\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### xcbuild and other build tools\n\n[xctool](https://github.com/facebook/xctool) | [Buck](https://github.com/facebook/buck) | [xcpretty](https://github.com/supermarin/xcpretty)\n----|----|---\nxcbuild 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`.\n\n## Building xcbuild\n\n[![Build Status](https://travis-ci.org/facebook/xcbuild.svg?branch=master)](https://travis-ci.org/facebook/xcbuild)\n\n### Requirements\n\n#### All platforms\n\n- [CMake](http://www.cmake.org) and [Ninja](https://ninja-build.org/) (or [llbuild](https://github.com/apple/swift-llbuild)) are required to build xcbuild.  \n\nOn macOS you can install those tools with [Homebrew](https://brew.sh/): `brew install cmake ninja`.\n\nOn Windows you can install those tools with [Chocolatey](https://chocolatey.org): `choco install cmake ninja`.\n\n#### Linux\n\n###### Ubuntu 18.04\n`sudo apt install libpng-dev libpng16-16 libxml2-dev pkg-config ninja-build`\n\n###### All others\n- GCC 4.8 or later. `libpng16-dev`, `zlib1g-dev`, `libxml2-dev`, and `pkg-config` are also required.\n\n#### FreeBSD\n\n###### FreeBSD 12.1\n`pkg install png-1.6.37 libxml2-2.9.9 pkgconf-1.6.3,1 ninja-1.9.0,2 gmake-4.2.1_3`\n\n#### OpenBSD\n\n###### OpenBSD 6.6\n`pkg_add png-1.6.37 libxml-2.9.9 pkgconf-1.6.3 ninja-1.9.0 gmake-4.2.1p4`\n\n#### macOS\n- Xcode 7 or later.\n\n#### Windows \n- Visual Studio 2015 or later, on Windows. A `zlib` DLL is also required.\n\n### Instructions \n\n#### All platforms\n\n```sh\ngit clone --depth=1 https://github.com/facebook/xcbuild\ncd xcbuild\ngit submodule update --init\n```\n#### Linux and macOS:\n\n```sh\nmake\n```\n\n#### FreeBSD and OpenBSD:\n\n```sh\ngmake\n```\n\nBuild output will be in the `build` directory. Run xcbuild with `./build/xcbuild`.\n\nYou can place xcbuild in your `bin` directory to run it from other locations: `mv build/xcbuild /usr/local/bin/`.\n\n#### Windows (experimental):\n\n```sh\ncmake -Bbuild -H. -G \"Visual Studio 14 2015\" -DZLIB_ROOT=\u003cpath\u003e\n```\n\nOpen `build\\xcbuild.sln` and build.\n\n\n## Usage\n\nThe command line options are compatible with [xcodebuild](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html).\n\n```\nxcbuild -workspace Example.xcworkspace -scheme Example\n```\n\n### Using Ninja (or llbuild)\n\nTo switch to the significantly faster [Ninja](https://ninja-build.org/) executor:\n\n```sh\nxcbuild -executor ninja [-workspace Example.xcworkspace ...]\n```\n\nBesides 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.\n\n## Contributing\n\nxcbuild 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.\n\n## Thanks\n\nxcbuild is built on build system documentation from the community. In particular, thanks to these people for their writing:\n\n - [Samantha Marshall](http://pewpewthespells.com)\n - [Damien Bobillot](http://maxao.free.fr/xcode-plugin-interface/)\n - [Michele Titolo](http://michele.io)\n - [Laurent Etiemble](http://www.monobjc.net/xcode-project-file-format.html)\n - [Apple Developer](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/Xcode_Build_System.pdf)\n\nThird-party licenses are listed in the `LICENSE` document.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebookarchive%2Fxcbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffacebookarchive%2Fxcbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebookarchive%2Fxcbuild/lists"}