From 9ddb1f7603417ec29654687e7228561f163a9eeb Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Wed, 8 May 2019 08:15:28 -0700 Subject: [PATCH] getdeps: introduce `build --enable-tests` option Summary: This controls whether tests are built or not. They are not built by default. When `--enable-tests` is turned on, tests are enabled for the named project only, not all of the deps. This results in a faster build, because eg: the number of tests in folly is very large and consumers of folly don't want to spend so much time waiting to build tests when really all they want to do is build their own project. Reviewed By: strager Differential Revision: D15246336 fbshipit-source-id: 2e22fd60c983b059f71639602712087f2a188ec6 --- build/fbcode_builder/getdeps.py | 15 +++++++++++++++ build/fbcode_builder/manifests/fbthrift | 6 ++++++ build/fbcode_builder/manifests/folly | 5 +++++ build/fbcode_builder/manifests/wangle | 7 +++++-- 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/build/fbcode_builder/getdeps.py b/build/fbcode_builder/getdeps.py index fc7229fa6..cf76609ad 100755 --- a/build/fbcode_builder/getdeps.py +++ b/build/fbcode_builder/getdeps.py @@ -222,6 +222,11 @@ class BuildCmd(SubCmd): install_dirs = [] for m in projects: + ctx = dict(ctx) + if args.enable_tests and m.name == manifest.name: + ctx["test"] = "on" + else: + ctx["test"] = "off" fetcher = m.create_fetcher(opts, ctx) if args.clean: @@ -287,6 +292,15 @@ class BuildCmd(SubCmd): "slow up-to-date-ness checks" ), ) + parser.add_argument( + "--enable-tests", + action="store_true", + default=False, + help=( + "For the named project, build tests so that the test command " + "is able to execute tests" + ), + ) @cmd("test", "test a given project") @@ -296,6 +310,7 @@ class TestCmd(SubCmd): manifest = load_project(opts, args.project) ctx = context_from_host_tuple() + ctx["test"] = "on" projects = manifests_in_dependency_order(opts, manifest, ctx) manifests_by_name = {m.name: m for m in projects} diff --git a/build/fbcode_builder/manifests/fbthrift b/build/fbcode_builder/manifests/fbthrift index 8052d7d5c..dde36e37a 100644 --- a/build/fbcode_builder/manifests/fbthrift +++ b/build/fbcode_builder/manifests/fbthrift @@ -24,6 +24,12 @@ zstd [dependencies.any(os=windows, os=darwin)] bison +[cmake.defines.test=on] +BUILD_TESTS=ON + +[cmake.defines.test=off] +BUILD_TESTS=OFF + [shipit.pathmap] fbcode/thrift/public_tld = . fbcode/thrift = thrift diff --git a/build/fbcode_builder/manifests/folly b/build/fbcode_builder/manifests/folly index 1ac3e77c6..1de6e1d37 100644 --- a/build/fbcode_builder/manifests/folly +++ b/build/fbcode_builder/manifests/folly @@ -49,4 +49,9 @@ fbcode/folly = folly [cmake.defines] BUILD_SHARED_LIBS=OFF + +[cmake.defines.test=on] BUILD_TESTS=ON + +[cmake.defines.test=off] +BUILD_TESTS=OFF diff --git a/build/fbcode_builder/manifests/wangle b/build/fbcode_builder/manifests/wangle index 876c2dbf3..6b330d620 100644 --- a/build/fbcode_builder/manifests/wangle +++ b/build/fbcode_builder/manifests/wangle @@ -11,8 +11,11 @@ repo_url = https://github.com/facebook/wangle.git builder = cmake subdir = wangle -[cmake.defines] -BUILD_TESTS = ON +[cmake.defines.test=on] +BUILD_TESTS=ON + +[cmake.defines.test=off] +BUILD_TESTS=OFF [dependencies] folly