diff --git a/build/fbcode_builder/getdeps/builder.py b/build/fbcode_builder/getdeps/builder.py index e1afda101..e0752116b 100644 --- a/build/fbcode_builder/getdeps/builder.py +++ b/build/fbcode_builder/getdeps/builder.py @@ -603,7 +603,9 @@ class OpenSSLBuilder(BuilderBase): class Boost(BuilderBase): - def __init__(self, build_opts, ctx, manifest, src_dir, build_dir, inst_dir): + def __init__( + self, build_opts, ctx, manifest, src_dir, build_dir, inst_dir, b2_args + ): children = os.listdir(src_dir) assert len(children) == 1, "expected a single directory entry: %r" % (children,) boost_src = children[0] @@ -612,6 +614,7 @@ class Boost(BuilderBase): super(Boost, self).__init__( build_opts, ctx, manifest, src_dir, build_dir, inst_dir ) + self.b2_args = b2_args def _build(self, install_dirs, reconfigure): linkage = ["static"] @@ -638,6 +641,7 @@ class Boost(BuilderBase): "--builddir=%s" % self.build_dir, ] + args + + self.b2_args + [ "link=%s" % link, "runtime-link=shared", diff --git a/build/fbcode_builder/getdeps/manifest.py b/build/fbcode_builder/getdeps/manifest.py index e47fbc806..443c75885 100644 --- a/build/fbcode_builder/getdeps/manifest.py +++ b/build/fbcode_builder/getdeps/manifest.py @@ -68,6 +68,7 @@ SCHEMA = { "msbuild": {"optional_section": True, "fields": {"project": REQUIRED}}, "cmake.defines": {"optional_section": True}, "autoconf.args": {"optional_section": True}, + "b2.args": {"optional_section": True}, "make.args": {"optional_section": True}, "header-only": {"optional_section": True, "fields": {"includedir": REQUIRED}}, "shipit.pathmap": {"optional_section": True}, @@ -83,6 +84,7 @@ ALLOWED_EXPR_SECTIONS = [ "cmake.defines", "dependencies", "make.args", + "b2.args", "download", "git", "install.files", @@ -372,7 +374,8 @@ class ManifestParser(object): ) if builder == "boost": - return Boost(build_options, ctx, self, src_dir, build_dir, inst_dir) + args = self.get_section_as_args("b2.args", ctx) + return Boost(build_options, ctx, self, src_dir, build_dir, inst_dir, args) if builder == "cmake": defines = self.get_section_as_dict("cmake.defines", ctx) diff --git a/build/fbcode_builder/manifests/boost b/build/fbcode_builder/manifests/boost index cbe21eb76..a802a5aea 100644 --- a/build/fbcode_builder/manifests/boost +++ b/build/fbcode_builder/manifests/boost @@ -11,3 +11,34 @@ sha256 = d074bcbcc0501c4917b965fc890e303ee70d8b01ff5712bae4a6c54f2b6b4e52 [build] builder = boost + +[b2.args] +--with-atomic +--with-chrono +--with-container +--with-context +--with-contract +--with-coroutine +--with-date_time +--with-exception +--with-fiber +--with-filesystem +--with-graph +--with-graph_parallel +--with-iostreams +--with-locale +--with-log +--with-math +--with-mpi +--with-program_options +--with-python +--with-random +--with-regex +--with-serialization +--with-stacktrace +--with-system +--with-test +--with-thread +--with-timer +--with-type_erasure +--with-wave