Commit Graph

687 Commits

Author SHA1 Message Date
Luca Niccolini
ebdaad98a9 BUILD_SHARED_LIBS=OFF for CI build
Summary: fixes the CI build

Reviewed By: dddmello

Differential Revision: D17158685

fbshipit-source-id: 44ea871eab4d8c964b8372fb8d84879fa823ca50
2019-09-03 09:32:58 -07:00
svcscm
41b48b2d32 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 3da26995a154a60bd3026b62fd13854d5cba2c90
2019-09-03 08:04:15 -07:00
svcscm
c5e93773c1 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 6503db1fb6fcc3a0081835df449ffb8d74fe3582
2019-09-02 19:21:49 -07:00
svcscm
ac77fd099f Updating submodules
Reviewed By: yns88

fbshipit-source-id: d217abe63e6027134c5cfc2ffbaae478918a72f6
2019-09-02 09:22:09 -07:00
svcscm
1400d1928f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 9f3c7b1cb30b8e29d5f21af226c8e065307daaab
2019-09-01 12:21:50 -07:00
svcscm
289ed6d5bb Updating submodules
Reviewed By: yns88

fbshipit-source-id: c2d294e5a44a8d5cd9cf7f19cf70b76a56485dc7
2019-08-31 17:22:58 -07:00
svcscm
d19bcdd449 Updating submodules
Reviewed By: yns88

fbshipit-source-id: ddbe558238c33cbd59ff36c071808232c0555cd2
2019-08-30 16:39:51 -07:00
svcscm
cb0f4ea56d Updating submodules
Reviewed By: yns88

fbshipit-source-id: f031a56fcb96a2f5bd9338e2fe3111ee5c1162b2
2019-08-30 14:07:22 -07:00
svcscm
de54a53932 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 57e0c03a82dbb17daad7c853de82942a7ded8d20
2019-08-30 13:37:33 -07:00
svcscm
97f749226c Updating submodules
Reviewed By: yns88

fbshipit-source-id: ed9c979746e3d7de5cf0d1aa0b99c00cc2e0929c
2019-08-30 11:15:45 -07:00
Wez Furlong
75ad139034 fbzmq: disable build on darwin and windows
Summary:
boost.fiber is not available on macos and is required by fbzmq,
so disable the build on darwin.

In D17128935 I tried to make libzmq build with cmake to build
on windows, but there's a problem with its cmake and it fails
to configure.

So let's just nop out the build for !linux for now.

Reviewed By: jstrizich

Differential Revision: D17129362

fbshipit-source-id: db89010d18707a4105b8d395b1758f738336495d
2019-08-30 10:48:04 -07:00
svcscm
ebba323fcc Updating submodules
Reviewed By: yns88

fbshipit-source-id: 776b0dda3929e5b66a716ce37ccb2e7c3d7e5bd3
2019-08-30 10:48:03 -07:00
svcscm
9ce1e6b2fc Updating submodules
Reviewed By: yns88

fbshipit-source-id: ebf75b38d338867af7d01545de29450c0cc70635
2019-08-29 23:46:18 -07:00
svcscm
b5d54405e9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: b6219f97186fbcede08240945f8af6125fcf8b3c
2019-08-29 23:23:30 -07:00
svcscm
b3376b951c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 80ff1036a0aa582e069a4699b6ba09b749ecdba7
2019-08-29 22:45:32 -07:00
Adam Simpkins
2fd1d16ba9 fbcode_builder: add a FBThriftLibrary.cmake file
Summary:
This module provides a `add_fbthrift_library()` convenience function that can
be used to generate thrift libraries for multiple languages with a single
call.

Reviewed By: wez

Differential Revision: D16742275

fbshipit-source-id: c13120cf9e051629951282141eb22f3e085782f9
2019-08-29 22:05:44 -07:00
Adam Simpkins
ea8f788011 fbcode_builder: add an FBThriftPyLibrary.cmake module
Summary:
This module helps generate Python libraries from thrift files.
It is the Python equivalent of `FBThriftCppLibrary.cmake`

Reviewed By: wez

Differential Revision: D16742274

fbshipit-source-id: ef0dc7f24eb1c7375d2587ee6b71fd25bd6f35a7
2019-08-29 22:05:44 -07:00
svcscm
c8fbf55018 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 410e8d7912cfd70a8857244f322d81c26cb7b8fd
2019-08-29 22:05:44 -07:00
svcscm
b772f483b8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: bc29befbd71ea2ff38da0857b66c6002fa4581db
2019-08-29 20:47:26 -07:00
Adam Simpkins
aa1aefa0f2 fbcode_builder: fix a minor bug in THRIFT_INCLUDE_DIR argument parsing
Summary:
Fix a minor bug in the argument parsing for `add_fbthrift_cpp_library()`:
only a single value should be supplied for the `THRIFT_INCLUDE_DIR` argument.
This parameter should not accept a list of arguments.

Reviewed By: strager

Differential Revision: D17125810

fbshipit-source-id: 31f354e4d6299d3626a94f3b4b5ff8c58bb0cf7b
2019-08-29 20:12:04 -07:00
svcscm
8e4bb3e91d Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4f72e2374d87645e3cfe3fbf7b3e3acbeb645b5f
2019-08-29 20:12:04 -07:00
svcscm
14b94fd93f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 5b970f18df38fb4b700e42db06349ab64e8d1331
2019-08-29 17:11:00 -07:00
Adam Simpkins
6b5f79c0d2 fbcode_builder: rename add_thrift_cpp2_library() to add_fbthrift_cpp_library()
Summary:
Rename the `ThriftCppLibrary.cmake` file to `FBThriftCppLibrary.cmake`, and
also rename `add_thrift_cpp2_library()` to `add_fbthrift_cpp_library()`.

Explicitly calling this `fbthrift` helps clearly distinguish that this is
intended for use with fbthrift (https://github.com/facebook/fbthrift/), as
opposed to Apache thrift.

Reviewed By: wez

Differential Revision: D16738440

fbshipit-source-id: 9b255e06b71c98ad74a34989f564a211958dcdd5
2019-08-29 16:45:12 -07:00
svcscm
770c67d8b8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: ee63fb227f1761192ca89657e7db9c843bb40635
2019-08-29 16:45:12 -07:00
svcscm
e8657686ba Updating submodules
Reviewed By: yns88

fbshipit-source-id: e74361bfe76195e20b2860d23a34e88b4dca18e8
2019-08-29 14:41:11 -07:00
svcscm
fdb0d6a844 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 2a7c8d2c1eb6e10da06b54814def7ca0d88e800a
2019-08-29 11:15:31 -07:00
svcscm
a8ef39078d Updating submodules
Reviewed By: yns88

fbshipit-source-id: 92ca1847b2ff5fa73c2585924253b9e16e864f69
2019-08-29 09:09:22 -07:00
svcscm
2757fcc811 Updating submodules
Reviewed By: yns88

fbshipit-source-id: a3bf615e8af2b0bab29a94341c3f9bf775a15e48
2019-08-28 21:52:29 -07:00
Adam Simpkins
ea23555faf fbcode_builder: fix install_fb_python_library() to work with old CMake versions
Summary:
Update install_fb_python_library() to work with CMake versions older than 3.7.

Previously the code used a generator expression in the directory argument
supplied to `install(DIRECTORY)`.  Support for generators in this parameter
was only added in CMake 3.5, but it was buggy and did not correctly handle
absolute paths until 3.7.

This updates the code to avoid using a generator expression.  This does
require that the corresponding `add_fb_python_library()` statement appear
before the `install_fb_python_library()` statement, but this seems like a
pretty reasonable restriction.

Reviewed By: chadaustin

Differential Revision: D17103597

fbshipit-source-id: 54d6af93a3f530373cfe3137db99436d8484f308
2019-08-28 21:00:27 -07:00
svcscm
e59603d147 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 864cd9c40804dd5fa6785b9c4a6c8cd36d17da1b
2019-08-28 19:51:20 -07:00
svcscm
506028b995 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 9303325ab0a54e470bf2b566c42e1c7bd7e3c78d
2019-08-28 17:56:24 -07:00
svcscm
c36a07058b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8682f6a02b5d43c3b4e6ebc2baf2381c394cfb1c
2019-08-28 17:03:06 -07:00
svcscm
331b95f1c2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4b926ff21ef676cf1a8aab1fe33145821d447143
2019-08-28 16:49:28 -07:00
svcscm
3a1a160d93 Updating submodules
Reviewed By: yns88

fbshipit-source-id: ec58ad68d60c8333e9db0bc982e28da997bdae35
2019-08-28 15:27:12 -07:00
Adam Simpkins
0d6c2c908e fbcode_builder: fix run_cmake.py to propagate the command return code
Summary:
Update the generated `run_cmake.py` script to use `os.execve()` rather than
`subprocess.call()`, so that it now propagates CMake's return code back to its
caller.

Reviewed By: chadaustin

Differential Revision: D17089206

fbshipit-source-id: e01f05f492ccb842d4967e59fd0bc9a3e59b8a42
2019-08-28 13:12:59 -07:00
Adam Simpkins
fe4265172e fbcode_builder: fix the error message if we cannot find a project fetcher
Summary:
Fix printing the manifest context in the error message if we cannot find a
project fetcher.  Previously the context in the message would be printed as
something like `<getdeps.manifest.ManifestContext object at 0x7fcce987e610>`,
now it shows instead as something like
`{distro=ubuntu, distro_vers=18.04, fb=off, os=linux, test=off}`

Reviewed By: chadaustin

Differential Revision: D17089208

fbshipit-source-id: c16549b61030d813b7b5ff9f65966436dc1e1898
2019-08-28 13:12:59 -07:00
Adam Simpkins
3a3c1f8978 fbcode_builder: minor fixup to normalize python installation paths
Summary:
This just strips off a trailing '/' from the `INSTALL_DIR` property that we
set on python targets, to avoid having double-slashes in the paths that we use
during installation.  This shouldn't really have any material difference other
than cleaning up the paths that get printed during the installation phase.

Reviewed By: chadaustin

Differential Revision: D17089207

fbshipit-source-id: ab36bb76c19fa60fe037f7a5290ccfd6bdbf13b0
2019-08-28 13:12:58 -07:00
Adam Simpkins
83516bb83a use ThriftCppLibrary.cmake from fbcode_builder
Summary:
Update fboss to use `ThriftCppLibrary.cmake` directly from fbcode_builder
rather than maintaining its own copy of this file.

Reviewed By: chadaustin

Differential Revision: D17005421

fbshipit-source-id: a64df426118df6088b47f09410dad7b8b7e79a43
2019-08-28 11:58:02 -07:00
Adam Simpkins
2e09bbac2a fbcode_builder: cmake: propagate thrift include dependencies correctly
Summary:
Update `add_thrift_cpp2_library()` to pass in the correct `-I` flags when
invoking the thrift compiler so that it can find all of the other thrift files
that this library depends on.

D16062657 was a previous attempt to do this, but suffered from a few problems:
- It required all dependencies to be defined before
  `add_thrift_cpp2_library()` was called.  This requires users to carefully
  order their CMake files and subdirectory include ordering.
- It only handled one level of dependencies, and did not propagate include
  paths for deeper dependencies.
- It set the include path for dependencies to the source directory path where
  the dependency was originally built, rather than the directory where the
  thrift file for that dependency would be installed.

This change does require CMake 3.8+.  Previous versions of CMake do not
support using generator expressions to generate multiple arguments for a
custom command.

Reviewed By: strager

Differential Revision: D17005381

fbshipit-source-id: 31190beba94b4d1010445375a5e2791450230f7d
2019-08-28 11:58:01 -07:00
svcscm
45ac09554f Updating submodules
Reviewed By: yns88

fbshipit-source-id: c3d5d2b5fced2df8edd75e0e5168b21aafdf2cb0
2019-08-28 11:43:17 -07:00
svcscm
a46aac3d33 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 9b162ce46ad06d7fb709c0c63fe5e7d3d0e19e4c
2019-08-28 10:23:18 -07:00
svcscm
11bc6db291 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8de038693ae1cef5ab8d0704662080b3c80d908e
2019-08-28 07:51:13 -07:00
svcscm
8b25d7789f Updating submodules
Reviewed By: yns88

fbshipit-source-id: e1a8f136ecb13ca44807a0946816afcb39b35129
2019-08-28 06:46:42 -07:00
svcscm
6c5bf52015 Updating submodules
Reviewed By: yns88

fbshipit-source-id: faffdd640539228a185903709ad72f1d3b9acdf4
2019-08-27 19:14:44 -07:00
Alex Eckert
badd2c8f26 break oss build dependency on fboss/common/
Summary:
All of the requisite headers are now open sourced and eden
has been converted to use them. This removes any logic that references
this directory and kills the now unused cmake file.

Reviewed By: chadaustin

Differential Revision: D16994732

fbshipit-source-id: 573b8b50540ee64590682be2a54aa94659f12368
2019-08-27 17:15:54 -07:00
Alex Eckert
850ab27d4d use facebook::fb303 instead of common::stats where possible
Summary:
Most stat code in fbcode was moved in to open source under
fbcode/fb303. The only exception that we use internally is the
MonotonicCounter class. This diff moves all of our stats code to use
the open source headers and updates cmake files to pull in the open
source fb303.

Reviewed By: chadaustin, shri-khare

Differential Revision: D16969960

fbshipit-source-id: 12b7abb54c956c242c8e27eb69fd96925c7e61f7
2019-08-27 17:15:54 -07:00
svcscm
7f19614fc2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 44a3f8acc05eb3d90e08fbe8dab38907e91d6000
2019-08-27 17:04:18 -07:00
svcscm
0b04b66ba1 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 6153522beb6219af9ff580f168c36eb86a1e702b
2019-08-27 11:23:39 -07:00
svcscm
e3ffb47536 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 33daf8eab1b2bc66635f8566168e80744fc152c9
2019-08-27 11:23:38 -07:00
svcscm
cb4a5859fc Updating submodules
Reviewed By: yns88

fbshipit-source-id: 3b2e2726a560c80941f394f3c77d63780e54efc1
2019-08-26 22:07:30 -07:00
svcscm
adc2ea86a1 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 7cb55d4545156148956d8ba5304b1104c04d3456
2019-08-26 18:50:29 -07:00
svcscm
4257c732e7 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0ada7d1c1fa94142ce41e3795a282070606495b0
2019-08-26 16:06:36 -07:00
Adam Simpkins
6d9b66c90d fbcode_builder: support installing thrift generated header files
Summary:
Update add_thrift_cpp2_library() to add a PUBLIC_HEADER property to the
generated library target, so that the generated headers can be installed using
an `install()` call.  Also add a `HEADER_INSTALL_DIR` property which indicates
the directory they should be installed into.  A `INCLUDE_DIR` argument was
added to customize the include installation path, should anyone care to do so.

This also removes code that was previously incorrectly installing the
generated headers into the source tree.

Reviewed By: wez

Differential Revision: D16853404

fbshipit-source-id: 6f640b2bd347c99804e074fca0209dda37c8a9cf
2019-08-26 15:40:28 -07:00
svcscm
e240aa3ec3 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8ffdbb7567fa67269c71be9f9974640a2855a84f
2019-08-26 15:40:28 -07:00
svcscm
410f5745d9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0544781d4886fc3f7b741509443a81fb117b664d
2019-08-26 13:07:16 -07:00
svcscm
0f113935d8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 66b0d10238080244a63673065f1e5ae8ce8dad56
2019-08-26 13:07:16 -07:00
svcscm
d56acaf3d0 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 7588a59e904d5c6505bb29c48b64eacdda2234b5
2019-08-26 12:01:56 -07:00
Adam Simpkins
7f813eafed fbcode_builder: update the old fbcode_builder spec for fbzmq
Summary:
The external Travis CI builds for fbzmq are still using the older
fbcode_builder spec (as opposed to the newer getdeps manifest file).

D16577367 moved the CMakeLists.txt file to the top-level directory, but the
fbzmq spec file was still looking for it in the fbzmq subdirectory.

Reviewed By: jstrizich

Differential Revision: D17005361

fbshipit-source-id: 3f7664eadfb60ec7606124a14445b44ae586b8a7
2019-08-26 11:47:03 -07:00
Adam Simpkins
633b3cce47 fbcode_builder: fix the shipit path map for fbzmq
Summary:
Fix the fbzmq pathmap listed in its manifest file to match the path map
actually used by ShipIt.  The fact that this was broken was why internal
getdeps builds did not detect that D16577367 broke the build.

Reviewed By: wez, jstrizich

Differential Revision: D17005360

fbshipit-source-id: 046ff58ad70c03b860c3fccebaba975808df244d
2019-08-26 11:47:02 -07:00
svcscm
ee6b6dddb8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 04fb796c13be74d2b690bdadba278f7e9b51edb4
2019-08-26 11:47:02 -07:00
svcscm
fd0bfe6576 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7861cc7ba812cbbdd776d100d121fafb41055b56
2019-08-25 20:21:57 -07:00
svcscm
cf5b357f96 Updating submodules
Reviewed By: zpao

fbshipit-source-id: d9b13284f81503d0e7d82918b56028d04ba8b682
2019-08-24 20:18:41 -07:00
Adam Simpkins
369050f9e6 fbcode_builder: ThriftCppLibrary: the output depends on the thrift templates
Summary:
Update ThriftCppLibrary.cmake to record that the output depends on the thrift
`cpp2` template files.  The `THRIFT_TEMPLATE_FILES` variable was defined in
D16062657 but doesn't appear to be used anywhere.  This uses it, and also
updates it to only match the C++ template files.

Reviewed By: wez

Differential Revision: D16738442

fbshipit-source-id: aa4097e9ec1d009ef1e3ee2efd03ffa19a82ed12
2019-08-24 19:47:09 -07:00
Adam Simpkins
3675eda973 fbcode_builder: minor style cleanup in ThriftCppLibrary.cmake
Summary:
Add explicit double quotes around arguments that are intended to be exactly a
single parameter.  Also line wrap to 80 characters.

Reviewed By: wez

Differential Revision: D16738443

fbshipit-source-id: b8c9b6d50da72b44e23eaf5effbc384b6cbbc1c0
2019-08-24 19:47:09 -07:00
Adam Simpkins
d3914e39c1 fbcode_builder: update ThriftCppLibrary to use fb_cmake_parse_args()
Summary:
Change ThriftCppLibrary to use `fb_cmake_parse_args()`

This code doesn't really care much about handling empty arguments, so we could
use the standard `cmake_parse_arguments()` function here instead of
`fb_cmake_parse_args()`.  However, it is slightly more convenient that
`fb_cmake_parse_args()` automatically errors out on unhandled arguments, so
that we don't have to check for this ourselves.

Reviewed By: wez

Differential Revision: D16738445

fbshipit-source-id: 67b9761f2ceaf7665bd336290bb44af32fec6f4a
2019-08-24 19:47:08 -07:00
svcscm
7f85443a4e Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7fce2e201e2afa285f01846dc3372dca0f953c2e
2019-08-24 19:34:26 -07:00
Adam Simpkins
52b697f5f8 fbcode_builder: update current commit for iproute2
Summary:
The manifest file for iproute2 previously listed the commit to check out as
7ca63aef7d1b0c808da0040c6b366ef7a61f38c1.  However, this is not a commit, but
a tag object that refers to commit 92a0236a3cdf3438000834121b7ea8a09f1f52b1.

This caused getdeps to think that iproute2 was always out-of-date, even when
it was already on the correct commit, since it was comparing current commit ID
against the tag ID.

This updates the manifest to refer to the commit ID instead of the tag ID.

Reviewed By: shri-khare

Differential Revision: D17005418

fbshipit-source-id: c7145c73b66ae93a2e9097ddcf8c53237b135d32
2019-08-24 19:23:50 -07:00
svcscm
e60fc5e0c8 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 33beb96668b9a7ce266e42c6c30f381585168832
2019-08-24 19:23:49 -07:00
svcscm
a9c2f37b8d Updating submodules
Reviewed By: zpao

fbshipit-source-id: ff319318ab09a14c096704dda48ac854a9401b89
2019-08-24 12:22:27 -07:00
svcscm
197fb1da06 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 67c349294b5e6adecef61043f0436984a638e2f9
2019-08-23 11:43:35 -07:00
svcscm
2318e14b80 Updating submodules
Reviewed By: zpao

fbshipit-source-id: ca71126c4cf2ccb66063f194f1d251aaf87f892c
2019-08-23 11:06:37 -07:00
svcscm
3ecc728498 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7ee08757714d2d25e6f9d2a8093728af97b95539
2019-08-22 22:02:50 -07:00
svcscm
43c5bd6f04 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7d4efa5cfab76c438f4fb66e5bb47be6d756f977
2019-08-22 19:36:24 -07:00
svcscm
541029ba4d Updating submodules
Reviewed By: zpao

fbshipit-source-id: 6b3c29d46cdad8cf58d11b6f0911ccda39c7f214
2019-08-21 21:01:09 -07:00
Wez Furlong
3d917744ce watchman: only enable eden support for FB internal builds
Summary:
This simplifies things for the OSS CI situation in
the short term, especially since Eden isn't quite buildable
or usable outside FB at this time.

Reviewed By: chadaustin

Differential Revision: D16953346

fbshipit-source-id: 028150bb3cfc9a8ccbe1197321214b56ad359463
2019-08-21 20:29:07 -07:00
svcscm
5a43f47f11 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 44bb6391719c0472774333328654f0711e8602fb
2019-08-21 17:57:29 -07:00
svcscm
908a64b94a Updating submodules
Reviewed By: zpao

fbshipit-source-id: 33f119a97529f4777aee6378082253a6a956f8e9
2019-08-21 17:22:45 -07:00
svcscm
3b9f79ea66 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 80fc0e60f538ca79d31c3152db76cbb9aff10831
2019-08-21 11:20:14 -07:00
Luca Niccolini
cf75a6ba8e do not build proxygen and mvfst for Windows (yet)
Summary:
does not affect the github build.
this is for fb CI

Reviewed By: dddmello

Differential Revision: D16935982

fbshipit-source-id: 61656fa600f19438b5aa89486486ed4ee103dea4
2019-08-21 10:57:35 -07:00
svcscm
dee1387199 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 49d96e515f94bb383f58748eca6fdcc7ac913193
2019-08-21 10:57:35 -07:00
svcscm
cdf1f26cee Updating submodules
Reviewed By: zpao

fbshipit-source-id: f684cffe7928485da7d9c977720ec78b70e33d82
2019-08-20 16:03:11 -07:00
Wez Furlong
b0da5d8238 getdeps: fixup testpilot new test recording
Summary:
In the Facebook infrastructure the testpilot runner talks
to a service to determine whether a given test should be run locally.

The remote service was returning an error for some tests because they
didn't have enough configuration specified.

This diff associates some configuration with the tests based on the
host type and makes things happier.

Reviewed By: Ben0mega

Differential Revision: D16894682

fbshipit-source-id: b6f59b112991160ef26cc126e98041d8908a6273
2019-08-20 15:43:32 -07:00
svcscm
0b2adfac01 Updating submodules
Reviewed By: zpao

fbshipit-source-id: dd95d921c8b2a7242580c813a4c7d5074d3af9f3
2019-08-20 15:35:30 -07:00
svcscm
a4e9279463 Updating submodules
Reviewed By: zpao

fbshipit-source-id: d7788cb91160f1fddff2b8df7e178c7ef1548636
2019-08-20 09:49:59 -07:00
svcscm
60aedc13ea Updating submodules
Reviewed By: zpao

fbshipit-source-id: 2ab340da3d83e6031a70099de61be188a59c0259
2019-08-20 09:49:59 -07:00
svcscm
03144ccb16 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 083264d2b5f45df19d40bb87b7bb66285c36c8a6
2019-08-19 11:42:58 -07:00
Adam Simpkins
53f8ded39e fbcode_builder: CMake functions for building standalone python programs
Summary:
Add some CMake functions for building standalone executables from Python
source files.  This generates executables similar to PEX
(https://github.com/pantsbuild/pex).

In the future this could potentially be leveraged to directly build XAR files
(https://github.com/facebookincubator/xar).

The main advantages of these functions is that they allow easily defining
"libraries" of python files, and their dependencies, which can then be used
and packaged as part of multiple different standalone executables.

Reviewed By: wez

Differential Revision: D16722499

fbshipit-source-id: e1d829b911dc428e5438b5cf9cebf99b3fb6ce24
2019-08-19 11:08:34 -07:00
svcscm
4534e72815 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 306d2a6f53cd045bd821a0d4e90e84e1a0179ca2
2019-08-19 11:08:34 -07:00
svcscm
5f84263ae8 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e7188b7b391c9b1387516f958a9122a10a6f6e92
2019-08-18 16:21:40 -07:00
svcscm
a21a621cd4 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 46e10115c52ac820d5911250c4390c04b4bb4b12
2019-08-17 18:21:50 -07:00
svcscm
5da58ab496 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: db4295df02abcf7699c45a48b01154e32ad04d5f
2019-08-16 18:12:38 -07:00
svcscm
3627152f69 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 18643c0b82eaf7436633f902f05f1b2404334527
2019-08-16 12:21:01 -07:00
svcscm
41be5afe0e Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 0010637ad7fda2d0a56731778b5def92b5ea43eb
2019-08-16 11:13:30 -07:00
svcscm
836d4d02c7 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: adcf32d04bacad4a77fb9f5e1598eccf6e515f5b
2019-08-15 20:46:47 -07:00
svcscm
2d1616b88b Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e757c7a80edc58430b7019c7e1ecbc20e278ceeb
2019-08-15 18:37:22 -07:00
Adam Simpkins
117f32ca05 getdeps: distinguish build vs install steps in run_cmake.py
Summary:
Update the generated `run_cmake.py` script to allow the caller to specify that
they just want to run a build without the install step.

Reviewed By: wez

Differential Revision: D16778007

fbshipit-source-id: 1859aca2b80fa7b099b4790682a6508e0185f2a0
2019-08-15 17:58:29 -07:00
Adam Simpkins
e4fca4936d getdeps: honor INSTALL_DIR correctly in the generated run_cmake.py script
Summary:
This cleans up how the `CMAKE_ENV` and `CMAKE_DEFINE_ARGS` variables are
written in the generated `run_cmake.py` script that we emit for CMake-based
projects.

We now emit each entry in these variables on separate lines, just to improve
readability.  (Both of these variables tend to have a number of entries and
are very long if emitted on a single line.)

This also replaces the `-DCMAKE_INSTALL_PREFIX` entry in `CMAKE_DEFINE_ARGS`
to have it correctly honor the `INSTALL_DIR` variable defined in
`run_cmake.py`.  This makes `run_cmake.py` still do the right thing if someone
manually edits it to change the `INSTALL_DIR` value.

Reviewed By: wez

Differential Revision: D16778006

fbshipit-source-id: fee5d25748b87b5d9c57ee2edf8de5e586e872ee
2019-08-15 17:58:29 -07:00
Adam Simpkins
39fdad4d3a getdeps: allow overriding project source, build, and install directories
Summary:
Add arguments to getdeps.py to allow overriding the source, build, and install
directories a per-project basis.  The arguments take the form `[PROJECT:]PATH`
If the `PROJECT` portion is omitted, it defaults to the current project being
built.

In particular this makes it possible to specify `--src-dir .` to tell
getdeps.py to find the project sources from the current directory rather than
downloading them.

Reviewed By: wez

Differential Revision: D16778011

fbshipit-source-id: f33b87213ace04abb66334f588babdf59df91964
2019-08-15 17:58:29 -07:00
Adam Simpkins
c7a0ad4b36 getdeps: fix a crash if the project_hashes directory does not exist
Summary:
This makes getdeps.py no longer crash if used in the folly repository.
Folly does not depend on any other Facebook projects, so it does not
include a `build/deps` directory.

Reviewed By: wez

Differential Revision: D16778009

fbshipit-source-id: 41be53d862f41b62154b081eb90ddba8742658fe
2019-08-15 17:58:28 -07:00
Adam Simpkins
78a214307e getdeps: consolidate code for project subcommands
Summary:
Most of the getdeps subcommands operate on a single project, and some of the
argument parsing and initial logic to load the project is largely the same.
This consolidates that logic into a base class so that we can share this code
across subcommands, instead of repeating it.

This also unifies the behavior so that by default all commands enable tests on
the specified project, and disable test on dependent projects.  Making sure
all commands use the same behavior here is important as whether are not tests
are enabled can affect the project configuration, and therefore affect its
getdeps hash.

Reviewed By: wez

Differential Revision: D16778010

fbshipit-source-id: 044f99ad6cdd4a56f843276cec8ead786249ee7a
2019-08-15 17:58:28 -07:00
svcscm
c3641decf8 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: a9887337afc578680e3c6a43afd51246caca685e
2019-08-15 14:36:54 -07:00
svcscm
a241a6941f Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 15cf80855f4d10a242c7ed38f39de9d8409ed6cc
2019-08-15 14:02:16 -07:00
svcscm
15de398467 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: f6ffa442b1541648352985c520155ee1a15926ca
2019-08-14 23:56:31 -07:00
svcscm
02b35131b4 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 731dc637a4f543f912bf7a55051c8163f21e97c6
2019-08-14 19:31:40 -07:00
svcscm
49882e6dbe Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: b75992be2b9a97040275972abed6a6d25af0a8c0
2019-08-14 19:11:33 -07:00
svcscm
4ab4b081d2 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: a85a5b8258ce777e5001b0973e173707c729b8e4
2019-08-14 16:39:21 -07:00
svcscm
685418899d Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 559f1bf10ad130b2139dbf3f9fa06dafed658365
2019-08-14 16:39:21 -07:00
svcscm
c4c460c3e2 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c762765b41313e645b8a25516197c7cac293fded
2019-08-14 12:55:11 -07:00
svcscm
16ddf64dd9 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 45a666d17339c7e458f476768e96c2c6e8302b62
2019-08-14 12:11:05 -07:00
svcscm
2ab3e8ef4a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 62dc21b9ccbc77b59ce2881ce82b5e5dc105b511
2019-08-13 14:38:43 -07:00
Adam Simpkins
df9a1bf374 getdeps: fix handling of the --host-type command line flag
Summary:
Fix the BuildOptions class to correctly honor the `host_type` parameter that
it was constructed with when constructing the manifest evaluation context.
I accidentally broke this behavior in D16477396, and incorrectly had this code
path default to using the current host system rather than the value passed in
from the command line.

Reviewed By: wez

Differential Revision: D16779579

fbshipit-source-id: de911daaa643f6303fd35149775ab25d3f64d34f
2019-08-13 14:11:44 -07:00
svcscm
918adfd3de Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 7471bc5bf9df3e2f08351927ad03d182298f96a2
2019-08-13 14:11:43 -07:00
svcscm
435f65bc9a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 2b77081840a0d035ff5adb12ca3c6748632b9a45
2019-08-13 11:41:08 -07:00
svcscm
4a61dce954 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 4a1cc66bae12d200ef14ab959149243f89017f32
2019-08-13 02:15:46 -07:00
svcscm
314b1601b0 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: ab67038c3a545e3170097760f7be762c21d73175
2019-08-12 19:53:43 -07:00
svcscm
a435c91890 Updating submodules
Reviewed By: yns88

fbshipit-source-id: a9c2fdb1a03dde53b8b2be9d71a3a44a0ec77f5b
2019-08-11 23:48:03 -07:00
svcscm
71a5963449 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e81e5cec02db0d44779f6ff1879e32b7cb4aac23
2019-08-11 14:10:25 -07:00
svcscm
ae515972e9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e0619359256bac755e0f2b5351dd38beb94f7ed5
2019-08-10 14:04:19 -07:00
svcscm
9077a3421f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 93d3fafe5c7655e34e581aef9ecec84b9c09c3eb
2019-08-10 11:19:23 -07:00
svcscm
874f70a627 Updating submodules
Reviewed By: yns88

fbshipit-source-id: c525db5ec7c34f3cfa66530dad6d8b24077c94c8
2019-08-09 13:02:03 -07:00
Adam Simpkins
9cfbf61798 getdeps: make sure ManifestLoader never reloads manifests
Summary:
In response to review feedback for D16477400 and D16477401, update
`ManifestLoader.load_all_manifests()` to only update its data for projects
that have not previously been loaded.  This helps ensure that code using a
single `ManifestLoader` object cannot have two in-memory `Manifest` objects
for the same project, and that existing data (such as project hashes) can't be
invalidated if a manifest is later loaded from updated on-disk data.

Reviewed By: pkaush

Differential Revision: D16586682

fbshipit-source-id: 50b1979ec55f2ad6901629cd852293a8f6ca903f
2019-08-09 11:22:24 -07:00
svcscm
967a85a126 Updating submodules
Reviewed By: yns88

fbshipit-source-id: fc980e902f8b03b48d5801488987f32732fe426c
2019-08-09 11:22:24 -07:00
svcscm
6f3f4d5363 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8800c8078ca856e5fa6343db537390bcdfbf89c3
2019-08-08 13:12:03 -07:00
svcscm
ae0d10759f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 6aba866b7e145e39133997780c391012bdf3799d
2019-08-08 12:50:57 -07:00
svcscm
5dd4f90d4e Updating submodules
Reviewed By: yns88

fbshipit-source-id: d555f46e52db5b1f040050ec6d11bc187f299bc1
2019-08-08 12:29:12 -07:00
svcscm
a193926e1f Updating submodules
Reviewed By: yns88

fbshipit-source-id: ab99c2a9f4ecd3098dbbdb7d2fa3c4e5fbab0904
2019-08-07 12:23:43 -07:00
svcscm
6da3985cd3 Updating submodules
Reviewed By: yns88

fbshipit-source-id: b3d84f6df7db1e400d6ca3c9597b069966328378
2019-08-07 11:22:34 -07:00
svcscm
8c4ec5b169 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 39679982cb27ffc42ca42220359bf3be7ebb01f8
2019-08-06 20:30:02 -07:00
svcscm
473fca0af1 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 382d8cfeba1a7d7d77afe8dada10953bb6690413
2019-08-05 20:22:29 -07:00
svcscm
d23dc1ebb5 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 254178e08042af082a0b84bd1cc9843499af5cae
2019-08-05 20:22:29 -07:00
svcscm
2c34f8aa73 Updating submodules
Reviewed By: yns88

fbshipit-source-id: d86a9d51656213c4979cf7ce357bc6dba1558a97
2019-08-05 16:35:52 -07:00
svcscm
76963f33f8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: feb1b0318fa3292429459928d0dce1bb088a4aa5
2019-08-05 15:03:17 -07:00
svcscm
7981258f94 Updating submodules
Reviewed By: zpao

fbshipit-source-id: a3841e21c3ba1726d5961be16894daf13f44723c
2019-08-05 01:24:48 -07:00
svcscm
0eb33a5b52 Updating submodules
Reviewed By: zpao

fbshipit-source-id: c335360154dbc64b0e1ddbe50503c67fceba85b9
2019-08-04 15:24:35 -07:00
svcscm
e819ff8a4a Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7806761cd6701805a7acedffa8ae6a543260fab5
2019-08-03 14:56:30 -07:00
svcscm
9687a5fb46 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 08014df1718a72eac798421be9462a9f30257d05
2019-08-03 08:09:13 -07:00
svcscm
8260a7cf0f Updating submodules
Reviewed By: zpao

fbshipit-source-id: a854ff01facfbd447476889c9641eeee21d2fc53
2019-08-02 22:06:44 -07:00
svcscm
dd1a800b45 Updating submodules
Reviewed By: zpao

fbshipit-source-id: b2b1dcccbee8eec99d2874638cbeeaa96613a3a0
2019-08-02 17:49:16 -07:00
svcscm
2c53f7d1b7 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 436df19ac1a4bf8e7090771b33f457b8b8dc7682
2019-08-02 16:27:10 -07:00
svcscm
f5fec45c68 Updating submodules
Reviewed By: zpao

fbshipit-source-id: ab041e3c578c2f0b542ee093830e2988de6126bb
2019-08-02 15:48:00 -07:00
svcscm
60c83ff74d Updating submodules
Reviewed By: zpao

fbshipit-source-id: c7a80571238669f97a32fdc390ffd0dee8631cd8
2019-08-02 13:31:31 -07:00
svcscm
032745a144 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 20835b06ba65c4d4289e811db9e890646b359637
2019-08-02 09:44:03 -07:00
svcscm
d6faf04d5a Updating submodules
Reviewed By: zpao

fbshipit-source-id: 88f161fa1d1c52cea21f47cdc107ce12c638b9d4
2019-08-01 18:33:48 -07:00
svcscm
1f3402cd39 Updating submodules
Reviewed By: zpao

fbshipit-source-id: e03b0651494000c6394a847a9dc178cd2f258136
2019-08-01 16:51:38 -07:00
svcscm
7d9b3276d0 Updating submodules
Reviewed By: zpao

fbshipit-source-id: e3ea07bd8fc3fb245b2fad7dff26933cfd5ab1ed
2019-08-01 14:14:36 -07:00
John Strizich
cd069aca3f add manifest for re2
Summary: needed for openr

Reviewed By: simpkins

Differential Revision: D16010070

fbshipit-source-id: 6d485fa7e4e321e6cd23d9894b38c1ecc7574665
2019-08-01 13:12:39 -07:00
svcscm
29dba2fab3 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 050a53e1bad2333e42daf3c6b5e03be7dc5893f2
2019-08-01 12:10:03 -07:00
svcscm
1c032f5d93 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 39c451a7b3095c30a28fa2dd338be0542951e690
2019-07-31 21:11:27 -07:00
Adam Simpkins
96c6b7e849 have CMakeBuilder emit a script to allow invoking CMake manually
Summary:
While developing on a project it is often convenient to be able to invoke its
build manually, rather than always needing to re-run `getdeps.py`.  This
updates the CMakeBuilder to also emit a script that can be used to manually
run CMake outside of `getdeps.py`.

The CMakeBuilder is the only builder that this really matters for right now,
as pretty much all of the projects where we do first-party development use
CMake for their build system.

Reviewed By: pkaush

Differential Revision: D16477399

fbshipit-source-id: c8a14af158af7b32d6c799ef685b037e68b748ff
2019-07-31 20:56:53 -07:00
Adam Simpkins
334b83ed2e move project hash computation to ManifestLoader
Summary:
Move code that computes project hashes to ManifestLoader.  ManifestLoader is
the only class that has all of the information necessary to compute the
project hashes correctly.  The ManifestLoader object can also cache previously
computed hashes, so that we don't have to keep computing hashes for projects
over and over again.  Previously the `BuildOptions.compute_dirs()` function
would end up re-computing hashes for all dependencies each time it was called.

Reviewed By: strager

Differential Revision: D16477401

fbshipit-source-id: ce03642114f91ce4f859f612e6b2e747cf1653be
2019-07-31 20:56:53 -07:00
Adam Simpkins
605d1808e0 add a create_fetcher() method to ManifestLoader
Summary:
The ManifestLoader contains all of the state needed to create a fetcher
object, so define a helper method on this object to create a fetcher.

Reviewed By: strager

Differential Revision: D16477395

fbshipit-source-id: 6de0942fe6b8de26c18c82bf99343f5467dc006a
2019-07-31 20:56:52 -07:00
Adam Simpkins
96a3f98ab6 add a new ManifestLoader class
Summary:
Add a new ManifestLoader class to handle loading manifests and computing
dependencies.

For now the main thing this class does is maintain the `manifest_by_name`
mapping.  In subsequent diffs we should be able to move some additional logic
into this class, which will help clean up the code and eliminate some redudant
work.  In particular, we can have this class cache project hashes, which will
avoid re-computing hashes over and over again for the same projects as we do
in many cases today.  We should also be able to save and re-use some of the
project dependency ordering computation in some cases as well.

Reviewed By: strager

Differential Revision: D16477400

fbshipit-source-id: f06f62f77d8443fccaa69fe4c1306e39c395b325
2019-07-31 20:56:52 -07:00
Adam Simpkins
e1f3645d41 use the correct project-specific context when computing hashes
Summary:
Update `BuildOpts.compute_dirs()` to use the correct project-specific manifest
context when computing project hashes.  Previously it was incorrectly using
the initial project's context when evaluating all dependencies.  This would
result in some projects potentially seeing the wrong values for variables that
may change from project to project (like `test`).

Reviewed By: pkaush

Differential Revision: D16477398

fbshipit-source-id: 6c23f5e5e19b2402000a138b3920b79044446041
2019-07-31 20:56:52 -07:00
Adam Simpkins
3c5295f83b add a ManifestContext and ContextGenerator class
Summary:
Add a ContextGenerator class so that we actually use the correct per-project
context when loading projects and computing dependencies.

Previously commands like `build` and `test` would change the contexts for each
project as they iterated through and performed the build.  However, they did
not do this when first loading the projects.  This could cause them to use
different context values when loading dependencies than when performing the
build.  For instance, this could cause issues if a project depends on
`googletest` only when testing is enabled, as the code previously did not set
the "test" parameter when evaluating dependencies.

Reviewed By: pkaush

Differential Revision: D16477396

fbshipit-source-id: c1e055f07de1cb960861d19594e3bda20a2ccd87
2019-07-31 20:56:52 -07:00
Adam Simpkins
2a25e221d1 fail if unknown variables are used in a manifest
Summary:
Check that all variable names are valid when loading manifest files.
This ensures that getdeps.py will error out if someone makes a typo in a
variable name, rather than treating it as never equal to anything.

Reviewed By: pkaush

Differential Revision: D16477397

fbshipit-source-id: 030e0642ff4a08db8eb74a0a0223e03d53e4880f
2019-07-31 20:56:51 -07:00
svcscm
00b66c6731 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 7ce7d9ff0f2fe34e1f41f2a13148e42100291557
2019-07-31 20:09:46 -07:00
svcscm
348608da2e Updating submodules
Reviewed By: zpao

fbshipit-source-id: 933432072b524aa78df5b97f9b6b04c80cb465fe
2019-07-31 14:06:08 -07:00
John Strizich
c791040e1a move CmakeLists to tld
Summary: bring this in line with other facebook opensource projects

Reviewed By: saifhhasan

Differential Revision: D16577367

fbshipit-source-id: d762658505f824cc180c55ea4485cecf525b8fdc
2019-07-31 12:40:08 -07:00
svcscm
283736f111 Updating submodules
Reviewed By: zpao

fbshipit-source-id: e91b916a95b8325fc9ed232af449107626b70b51
2019-07-31 12:40:08 -07:00
svcscm
5393da67d8 Updating submodules
Reviewed By: zpao

fbshipit-source-id: d5c23427307435cb266a7779c67ba5bebf2de368
2019-07-30 23:27:53 -07:00
Alexey Spiridonov
11b71545ef Fix gmock handling in rsocket opensource build
Summary:
Simply linking `GMOCK_LIBS` into a binary was not telling CMake that the binary depends on `gmock` being built. So, let's add that dependency explicitly.

This wasn't breaking in production because we typically build with `-j 4`, and `gmock` was getting built before the first dependent binary would attempt to link.

Also, since `rsocket` bundles its own `gmock`, it is just a waste of time to compile a system-level gmock. It's not a real dependency.

NB: The change in `fbcode_builder.py` is needed because now that `rsocket` no longer depends on anything on Github, driver programs that were unconditionally setting `projects_dir` started to fail to build `rsocket`.

Reviewed By: simpkins

Differential Revision: D16461572

fbshipit-source-id: 1e95654e96256e7ed37d42e702b5433bf2fe5328
2019-07-30 23:00:11 -07:00
svcscm
1968383c93 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 0a281b8a94f82ef2fb14855049957eaa908d44b1
2019-07-30 22:20:33 -07:00
svcscm
0ea2fefa5e Updating submodules
Reviewed By: zpao

fbshipit-source-id: c554e2408eacd3fc8f725f89f9240161da8b7aaa
2019-07-30 20:29:40 -07:00
svcscm
7dd74ccb46 Updating submodules
Reviewed By: zpao

fbshipit-source-id: b421f9e8d64a555b90fea8a43c9ffd3121fa4150
2019-07-29 17:56:44 -07:00
svcscm
4504b0ccaa Updating submodules
Reviewed By: zpao

fbshipit-source-id: 331e9ff22b3cd77187cbfd27cec22f575e4d318d
2019-07-29 17:21:30 -07:00
svcscm
a13e843497 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 05d607f653a0c8ab69488261f71a49ee1c90f3d0
2019-07-29 16:39:48 -07:00
svcscm
f7ee33a528 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 736515bb7c9b5445cddb4eee72944c64e6fd10cb
2019-07-29 14:01:07 -07:00
svcscm
fe6ff9c01e Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e388ac74dd9df352e8d3ab593016c23c386ec2ce
2019-07-28 19:24:33 -07:00
svcscm
1f5d28a522 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 9421c986d4a293f34d96d41a32e0429b8f429492
2019-07-27 18:58:15 -07:00
svcscm
b998c78386 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 0b01b71b90ba8328130c9cb9fe9f639725158a17
2019-07-27 16:48:01 -07:00
svcscm
e49e159930 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: a3a5f93f3ad67151dfcf750f08e6c5a4e4d4ebc5
2019-07-27 16:05:00 -07:00
svcscm
c2646647a2 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 4221ce17aa65e59d5c710af9cba65addfc934f42
2019-07-26 15:58:12 -07:00
svcscm
56f556c80e Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 4fe98bbd2d56eb11e8617be864a23c34ddaaed62
2019-07-26 14:33:02 -07:00
Matt Glazar
dadd71a36d Fix flake8 with Python 2.7
Summary:
flake8 (in Python 2.7 mode) complains that `typing` is mentioned in type annotations but is not defined:

```
fbcode_builder/getdeps/buildopts.py:251:21: F821 undefined name 'typing'
    subst_mapping,  # type: typing.Mapping[str, str]
                    ^
fbcode_builder/getdeps/buildopts.py:253:5: F821 undefined name 'typing'
    # type: (...) -> typing.Optional[str]
    ^
2     F821 undefined name 'typing'
2
```

Import `typing` explicitly to silence this warning.

Because `typing` may be unavailable, import it conditionally. (Because it's only referenced in comments, failing to import `typing` should have no effect at run time.)

Reviewed By: snarkmaster

Differential Revision: D16435696

fbshipit-source-id: 78a4a7b07acc46aa998f02b54b1a6e52c1daafde
2019-07-26 14:20:30 -07:00
svcscm
c942b4ae52 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c182c430f7bf0a66ae5a034e05efbd5bfc7baee1
2019-07-26 11:38:53 -07:00
svcscm
e0bebaa572 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: a15749eae4203c7591f9561cd8c0d722683678f2
2019-07-26 05:50:09 -07:00
svcscm
564f7a2a30 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 4b80623993c7a01ceee7c74b166752fb97884c4d
2019-07-25 18:20:10 -07:00
svcscm
748d21b4ce Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 9e69786863ee63cd2d43c6c93f546a1665626a09
2019-07-25 18:20:10 -07:00
svcscm
a23273fdac Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 50739ef295969c67f5c49bac91d803736ec47cab
2019-07-25 12:26:01 -07:00
Chad Austin
b1f76c3137 break dependency on fboss common/ stubs
Summary: Eden no longer depends on fboss/common/ 🌈

Reviewed By: simpkins

Differential Revision: D16062879

fbshipit-source-id: e6cf6eed408ca6e688ff2b9b532b15aa96902ac1
2019-07-24 21:44:04 -07:00
Chad Austin
fe64ec3874 use fb303 repo in open source build
Summary: Add a dependency from the eden open source build to the fb303 open source build and switch EdenServiceHandler to BaseService.

Reviewed By: simpkins

Differential Revision: D15528156

fbshipit-source-id: 2ca5c31dd9fcc9bac43fd399b27f33b6f2c5ebfc
2019-07-24 21:07:04 -07:00
Matt Glazar
cd61479fc5 Fix tests with Python 2.7
Summary:
Some people want to use getdeps with Python 2.7. This looks easy to do, so take a step toward Python 2.7 support by fixing getdeps' tests when run with Python 2.7.

For Python 3, this diff should not change behavior.

This diff should address https://github.com/facebook/bistro/issues/35.

Reviewed By: snarkmaster

Differential Revision: D16435667

fbshipit-source-id: f5c262b12995b609263341c4de26dac7f9b12b70
2019-07-24 11:44:11 -07:00
svcscm
eba47136d5 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c6dcd75b23efbe35dd0e080fb7ea77baafe9de05
2019-07-24 08:55:02 -07:00
svcscm
6820fa446b Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 816000048efe881be0dc58b3742e8e81d8c98806
2019-07-23 23:39:01 -07:00
svcscm
8eef0d53df Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 00b60e64b93d57f869a408487752efcbc1e4439a
2019-07-23 18:38:29 -07:00
svcscm
856da3a6ee Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 57792763cbfe7de23706a379396e3eb6e3f95a3a
2019-07-23 17:24:54 -07:00
Adam Simpkins
9456d701bb fix handling of common arguments
Summary:
getdeps allowed common arguments to be specified either before or after
the subcommand name.  However, the arguments were only actually honored
if they were specified on the command line after the subcommand name.
Specifying any of these arguments before the subcommand would simply be
ignored, and the default value would be used.  This happened since the
subcommand argument's default value overwrote the value specified by the
user from the main command parser.

This fixes the behavior by using `argparse.SUPPRESS` so that argparse
won't set the value at all if it was not specified.  This allows the
value from the main parser to be used correctly if the argument was not
seen by the subcommand parser.

Reviewed By: chadaustin

Differential Revision: D16435358

fbshipit-source-id: f3893ef7a27fb018247f249f313d6438472e0140
2019-07-23 16:54:54 -07:00
svcscm
c3c7cc6374 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: ee7ab319d8ed8a5e941165cc68e80f8ccd9455ba
2019-07-23 12:15:37 -07:00
svcscm
8e9265c79f Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 27bcd94dd03eea887ada85211b3a999b08c5501b
2019-07-22 19:12:33 -07:00
svcscm
e76c7677b6 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: d169039045a0da5ef19a2c8b5a4da1ae57db346e
2019-07-22 18:46:37 -07:00
svcscm
6516b5259a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: dfbefe2c9b6672a6c2f3874388675e62653fc4d4
2019-07-22 14:34:30 -07:00
svcscm
d75b5175cb Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: ef9c5003aaedd625cdf92e67f386eea86c9a611a
2019-07-22 13:37:38 -07:00
svcscm
382be9f974 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 4466d50a2bec52062f45a8c4c72a2267c7bcae28
2019-07-22 03:24:25 -07:00
svcscm
0e97fcd7f7 Updating submodules
Reviewed By: zpao

fbshipit-source-id: c5bf64b8b93b36905ddca2a8eea3cc152edcb769
2019-07-21 02:40:38 -07:00
svcscm
0581ebe50c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 92d7ec4f6d748cb935e5c92678ed36aa69cf7457
2019-07-20 16:25:46 -07:00
svcscm
9491a77ccc Updating submodules
Reviewed By: yns88

fbshipit-source-id: 9983679d64eb8706329a211df791e6d79597fc40
2019-07-19 15:52:26 -07:00
Adam Simpkins
bccd9b63d7 update CMakeBuilder to raise an exception if we cannot find CMake
Summary:
If `path_search()` returns that CMake is not available, raise an Exception and
fail the build.  This makes the failure somewhat easier to to identify.
Without this the code would continue and would try to invoke `subprocess` with
a value of `None` in the command argument list.  This error is slightly harder
to debug, since it isn't clear which command argument or environment variable
is not a string.

Reviewed By: chadaustin

Differential Revision: D16354623

fbshipit-source-id: be972b02cb13bc70db0f867da70e5bf4c6cec46d
2019-07-19 15:30:35 -07:00
Adam Simpkins
007172af96 normalize the scratch path
Summary:
The scratch path is used as part of the hash computation for each project.  We
need to make sure this path is always normalized to ensure that we compute the
hashes consistently.

Reviewed By: chadaustin

Differential Revision: D16354624

fbshipit-source-id: 39b5362620bdc247cd7e7f1333dac319b354dc6f
2019-07-19 15:30:35 -07:00
Adam Simpkins
fc26a35247 cache results of path_search()
Summary:
getdeps currently ends up calling `path_search()` repeatedly searching for
various C/C++ compilers in $PATH.  It ends up doing this multiple times for
each dependency as it computes the project hashes.  This updates the
`path_search()` function to cache its results so that we don't keep performing
the same searches on the file system over and over again.

Reviewed By: chadaustin

Differential Revision: D16354625

fbshipit-source-id: 116293bd2f636632517d26436b2332e6c10624f1
2019-07-19 15:30:35 -07:00
svcscm
630775fd70 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 43d94c721e020167895eb832fbe9a3e98ce37fbc
2019-07-19 12:47:20 -07:00