getdeps: build all available boost libraries

Summary:
This should make it easier to eg: enable fbzmq on macos at a later
time, and also makes things more explicit about what is being built, and
importantly, by listing these in the manifest ensures that we have a
hash change if we change this list; we wouldn't trigger such a change
if the list were encoded solely in builder.py

Reviewed By: chadaustin

Differential Revision: D17133149

fbshipit-source-id: caf0dd45e262188eeefafe0868ef95ad257a4950
This commit is contained in:
Wez Furlong 2019-09-06 14:31:59 -07:00 committed by Facebook Github Bot
parent 310da85dd8
commit 6fb1bb0764
3 changed files with 40 additions and 2 deletions

View File

@ -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",

View File

@ -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)

View File

@ -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