Re-sync with internal repository
[hiphop-php.git] / third-party / watchman / src / build / fbcode_builder / README.md
blobd47dd41c01492438db8ccccfea4fe304deaa86dd
1 # Easy builds for Facebook projects
3 This directory contains tools designed to simplify continuous-integration
4 (and other builds) of Facebook open source projects.  In particular, this helps
5 manage builds for cross-project dependencies.
7 The main entry point is the `getdeps.py` script.  This script has several
8 subcommands, but the most notable is the `build` command.  This will download
9 and build all dependencies for a project, and then build the project itself.
11 ## Deployment
13 This directory is copied literally into a number of different Facebook open
14 source repositories.  Any change made to code in this directory will be
15 automatically be replicated by our open source tooling into all GitHub hosted
16 repositories that use `fbcode_builder`.  Typically this directory is copied
17 into the open source repositories as `build/fbcode_builder/`.
20 # Project Configuration Files
22 The `manifests` subdirectory contains configuration files for many different
23 projects, describing how to build each project.  These files also list
24 dependencies between projects, enabling `getdeps.py` to build all dependencies
25 for a project before building the project itself.
28 # Shared CMake utilities
30 Since this directory is copied into many Facebook open source repositories,
31 it is also used to help share some CMake utility files across projects.  The
32 `CMake/` subdirectory contains a number of `.cmake` files that are shared by
33 the CMake-based build systems across several different projects.
36 # Older Build Scripts
38 This directory also still contains a handful of older build scripts that
39 pre-date the current `getdeps.py` build system.  Most of the other `.py` files
40 in this top directory, apart from `getdeps.py` itself, are from this older
41 build system.  This older system is only used by a few remaining projects, and
42 new projects should generally use the newer `getdeps.py` script, by adding a
43 new configuration file in the `manifests/` subdirectory.