mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
d0faf27e9f
Summary: There are two separate changes here. ### Use `find_package` The old setup of "let's manually enumerate and order the libraries that Bistro depends on" worked fine, except: - it was a bit brittle (requiring occasional patches as deps changed), and - it garnered a lot of feedback to the effect of "your build is weird, so it's probably broken because of that." Now I expect to have fewer breaks and more plausible deniability :) More importantly, this should make it much easier to migrate to `getdeps.py`. ## Statically link `fmt` After `fmt` was added as a `folly` dependency, and linked into Folly code used by Bistro, its tests would fail to run with this error: `test_sqlite_task_store: error while loading shared libraries: libfmt.so.6: cannot open shared object file: No such file or directory`. Something was getting messed up in the dynamic linking, and it wasn't clear to me what -- the way that Bistro is linking its dependencies certainly seems sensible. Most likely one of the dependencies is incompatible with dynamic linking in a subtle way. I suspect Proxygen. The `fmt.py` change in this diff addresses this problem by forcing static linking on the offending library. Reviewed By: yfeldblum Differential Revision: D24604309 fbshipit-source-id: 35ecbbb277b25907ecaee493e8b0081d9f20b865
27 lines
848 B
Python
27 lines
848 B
Python
#!/usr/bin/env python
|
|
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
def fbcode_builder_spec(builder):
|
|
builder.add_option('fmtlib/fmt:git_hash', '6.2.1')
|
|
builder.add_option(
|
|
'fmtlib/fmt:cmake_defines',
|
|
{
|
|
# Avoids a bizarred failure to run tests in Bistro:
|
|
# test_crontab_selector: error while loading shared libraries:
|
|
# libfmt.so.6: cannot open shared object file:
|
|
# No such file or directory
|
|
'BUILD_SHARED_LIBS': 'OFF',
|
|
}
|
|
)
|
|
return {
|
|
'steps': [
|
|
builder.github_project_workdir('fmtlib/fmt', 'build'),
|
|
builder.cmake_install('fmtlib/fmt'),
|
|
],
|
|
}
|