Commit Graph

11527 Commits

Author SHA1 Message Date
Wez Furlong
192a4108a6 fbcode_builder: getdeps: add copytree helper
Summary:
this module adds some functions that help with copying
directory trees.  The copytree function is aware of eden and will
issue a prefetch prior to walking the directory.

Reviewed By: simpkins

Differential Revision: D14691006

fbshipit-source-id: 079bf850756f61aca17978453d07bc73b2f91788
2019-05-03 15:59:38 -07:00
Wez Furlong
3d0d9e6d53 fbcode_builder: getdeps: add run_cmd() function
Summary:
This runs a command, raising an exception if it exits with a non-zero error status.

It prints out the arguments in a mostly copy-and-pasteable form, with PATH-like
env vars pretty printed to make it easier to see what is being invoked; here's
an example of how cmake is being invoked later in this stack:

```
 ---
+ CMAKE_PREFIX_PATH=\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/ninja-5d7ec7:\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/cmake-91dc9a:\
+ PKG_CONFIG_PATH=\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/ninja-5d7ec7/lib/pkgconfig:\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/cmake-91dc9a/lib/pkgconfig:\
+ cd /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/build/zstd-470344 && \
+ cmake configure /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git/build/cmake -DCMAKE_INST
ALL_PREFIX=/data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/zstd-470344 -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=R
elWithDebInfo -G Ninja
```

Reviewed By: simpkins

Differential Revision: D14690999

fbshipit-source-id: cdb0c681c7dfdfdc6e8c96bf4830bfbcf666411b
2019-05-03 15:59:38 -07:00
Wez Furlong
0bc46905d0 fbcode_builder: add getdeps main entrypoint
Summary:
This is the new getdeps entrypoint.  It lives in `opensource/fbcode_builder` so that
it is synced into the various opensource projects at FB.

In the incarnation in this diff is has a single subcommand that can be used to validate
a manifest file.

Reviewed By: sinancepel

Differential Revision: D14690995

fbshipit-source-id: 53f8ec9bafb7b1930970079e3ce20f496ac1c188
2019-05-03 15:59:37 -07:00
Wez Furlong
4b50455edb fbcode_builder: getdeps: add envfuncs.py
Summary:
Add some helpers for manipulating environment variables
that will hold either compiler flags or paths.

These are used in later diffs when setting up arguments/environment
for eg: cmake.

Reviewed By: sinancepel, simpkins

Differential Revision: D14690993

fbshipit-source-id: 7f9753cd99d968550fe9e3ba8b7017a44683061e
2019-05-03 15:59:37 -07:00
Wez Furlong
5ec4990bc8 fbcode_builder: add manifest files for some dependencies
Summary:
These are ported over from the logic in the watchman and eden getdeps
scripts, with additions to help bootstrap a build environment.

These are sufficient to build watchman with thrift support on windows, mac and
linux, and eden on mac and linux when combined with the getdeps code that
follows in later diffs in this stack.

Reviewed By: simpkins

Differential Revision: D14691005

fbshipit-source-id: 7f8b02fedcdc020e2d0e758c466959d8161d4587
2019-05-03 15:59:37 -07:00
Wez Furlong
f272c533f3 fbcode_builder: add manifest file parser
Summary:
Adds a parser for manifest files that describe projects
that may be either 1st party or 3rd party.

A selection of manifest files appears in a later diff in this stack.

This diff provides the raw parser and a couple of low level helpers.
It also defines a mechanism for validating the schema to help catch
structural (rather than semantic) issues with manifest file contents.

Later diffs in the stack add helpers for accessing the data in
a higher level way.

Reviewed By: sinancepel

Differential Revision: D14691003

fbshipit-source-id: 7d2930a3359ede0f6e21fdc45686b083ab7a9ffa
2019-05-03 15:59:37 -07:00
Wez Furlong
04281b1122 fbcode_builder: getdeps: add boolean expression parser
Summary:
As part of folding getdeps into fbcode_builder, this
expression parser is needed to allow constrained and deterministic
conditionals in the manifest file format.

For example, the watchman manifest will use this cargo-inspired syntax
for system dependent sections:

```
[dependencies]
folly

[dependencies.not(os=windows)]
thrift
```

Reviewed By: sinancepel

Differential Revision: D14691014

fbshipit-source-id: 080bcdb20579da40d225799f5f22debe65708b03
2019-05-03 15:59:37 -07:00
svcscm
0625ec48dc Updating submodules
Reviewed By: yns88

fbshipit-source-id: 345b0ecaa54caf0c4e07824749d884f9a024c57e
2019-05-02 21:48:57 -07:00
svcscm
cc9f3b92c2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 7988b6e87f28004495c59a3a94e93204f392e36f
2019-05-02 20:42:35 -07:00
svcscm
a131c46009 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 3d32d5e564285b9d60e6c84944e89acfaac43153
2019-05-02 19:32:56 -07:00
svcscm
3587e4fd7d Updating submodules
Reviewed By: yns88

fbshipit-source-id: 89fcc80618a65cea87d30988a498cf50d948b5f5
2019-05-02 16:18:40 -07:00
svcscm
4d41f562ee Updating submodules
Reviewed By: yns88

fbshipit-source-id: c3448d193e49051cc00769ad43e7a59daaa979db
2019-05-02 09:59:39 -07:00
svcscm
3d3e525821 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 79aa2ff2fc1a08bce3e34c5123cc0559902a6bf1
2019-05-01 20:31:18 -07:00
svcscm
2c29080a9b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8a8c2e064e41bcfc7eaea0e6d6413277a6db7823
2019-05-01 20:09:44 -07:00
svcscm
812b99977a Updating submodules
Reviewed By: yns88

fbshipit-source-id: d8c980be58a6f17abc38b8ea19d71d0efd8f7100
2019-05-01 17:41:32 -07:00
svcscm
4387530823 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e7090567ddcb01dbcb8b1823525938c44df4a0ce
2019-05-01 10:04:21 -07:00
svcscm
a0f6e720d6 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 80b839b89f04818388d339ef8e801fc065a26c2b
2019-05-01 09:22:57 -07:00
svcscm
150ac51f9a Updating submodules
Reviewed By: yns88

fbshipit-source-id: b8f638d43ab0d8ce61ca964bd2a4248540d13001
2019-04-30 18:55:23 -07:00
svcscm
789c6131b2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4967478aee4a308095460545bf3dbe0f3cded657
2019-04-30 15:20:37 -07:00
svcscm
8498a633b1 Updating submodules
Reviewed By: yns88

fbshipit-source-id: d03118e363bf26c0bc437fe04c4e3d0f314b82ef
2019-04-29 19:21:48 -07:00
svcscm
c736f2adc9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: a1db5d4e3d0520adcc3bb91b3a901ded46dde12d
2019-04-29 19:21:48 -07:00
Adam Simpkins
f13e0d9f83 Fix-up commit to resync shipit
Summary:
The previous commit did not update the facebookincubator/fizz-rev.txt
hash (due to running an older version of the shipit code), which is
confusing newer shipit releases that want to keep this file up-to-date.

fbshipit-source-id: 459ae013d33f3f157856320e67a8f6b16ea5e32a
2019-04-29 16:32:15 -07:00
svcscm
bdb8dea71f Updating submodules
Reviewed By: zpao

fbshipit-source-id: 459ae013d33f3f157856320e67a8f6b16ea5e32a
2019-04-26 16:53:29 -07:00
svcscm
5528f00ae5 Updating submodules
Reviewed By: zpao

fbshipit-source-id: fd36b9f5749a92b1d5f976a73fc9910850ff32bb
2019-04-26 14:26:31 -07:00
svcscm
573075ac37 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 4ce80b9af230ab92702c494990f59cfaa70f545a
2019-04-26 14:11:36 -07:00
svcscm
94e464bd14 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 8c7985dae0573e787dbba51c4acc87883ead2fb1
2019-04-26 12:24:13 -07:00
Adam Simpkins
bcad7419bf add fbcode_builder sources
Summary:
Initial commit to include the fbcode_builder sources in the
eden github repository.

fbshipit-source-id: 49098cecda04a7e9dd9dcc0b569fffc96f0f719b
2019-04-26 11:31:58 -07:00