8 |
8 |
# dev-cpp/folly
|
9 |
9 |
# dev-util/watchman
|
10 |
10 |
|
11 |
|
inherit cmake toolchain-funcs
|
|
11 |
inherit cmake
|
12 |
12 |
|
13 |
13 |
DESCRIPTION="An open-source C++ library developed and used at Facebook"
|
14 |
14 |
HOMEPAGE="https://github.com/facebook/folly"
|
15 |
15 |
SRC_URI="https://github.com/facebook/folly/releases/download/v${PV}/${PN}-v${PV}.tar.gz"
|
16 |
|
S="${WORKDIR}"
|
17 |
16 |
|
18 |
17 |
LICENSE="Apache-2.0"
|
19 |
18 |
SLOT="0/${PV}"
|
... | ... | |
21 |
20 |
IUSE="llvm-libunwind test"
|
22 |
21 |
RESTRICT="!test? ( test )"
|
23 |
22 |
|
24 |
|
RDEPEND="app-arch/bzip2
|
|
23 |
RDEPEND="
|
|
24 |
app-arch/bzip2
|
25 |
25 |
app-arch/lz4:=
|
26 |
26 |
app-arch/snappy:=
|
27 |
27 |
app-arch/xz-utils
|
... | ... | |
38 |
38 |
>=sys-libs/liburing-2.3:=
|
39 |
39 |
sys-libs/zlib
|
40 |
40 |
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
|
41 |
|
!llvm-libunwind? ( sys-libs/libunwind:= )"
|
|
41 |
!llvm-libunwind? ( sys-libs/libunwind:= )
|
|
42 |
"
|
42 |
43 |
# libiberty is linked statically
|
43 |
|
DEPEND="${RDEPEND}
|
|
44 |
DEPEND="
|
|
45 |
${RDEPEND}
|
44 |
46 |
sys-libs/binutils-libs
|
45 |
|
test? ( dev-cpp/gtest )"
|
46 |
|
BDEPEND="test? ( sys-devel/clang )"
|
|
47 |
test? ( dev-cpp/gtest )
|
|
48 |
"
|
47 |
49 |
|
48 |
50 |
PATCHES=(
|
49 |
|
"${FILESDIR}"/${PN}-2022.07.04.00-musl-fix.patch
|
|
51 |
"${FILESDIR}"/${PN}-2023.05.22.00-musl-fix.patch
|
50 |
52 |
)
|
51 |
53 |
|
52 |
|
pkg_setup() {
|
53 |
|
[[ ${BUILD_TYPE} == binary ]] && return
|
54 |
|
|
55 |
|
if use test && ! tc-is-clang ; then
|
56 |
|
# Always build w/ Clang for now to avoid gcc ICE
|
57 |
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106230
|
58 |
|
#if [[ $(gcc-major-version) -eq 12 ]] ; then
|
59 |
|
# return
|
60 |
|
#fi
|
61 |
|
|
62 |
|
## Only older GCC 11 is broken
|
63 |
|
#if [[ $(gcc-major-version) -eq 11 && $(gcc-minor-version) -ge 3 && $(gcc-micro-version) -ge 1 ]] ; then
|
64 |
|
# return
|
65 |
|
#fi
|
66 |
|
|
67 |
|
ewarn "Forcing build with Clang due to GCC bug (because tests are enabled)"
|
68 |
|
#ewarn "(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104008)"
|
69 |
|
|
70 |
|
export CC=${CHOST}-clang
|
71 |
|
export CXX=${CHOST}-clang++
|
72 |
|
fi
|
|
54 |
src_unpack() {
|
|
55 |
# Workaround for bug #889420
|
|
56 |
mkdir -p "${S}" || die
|
|
57 |
cd "${S}" || die
|
|
58 |
default
|
73 |
59 |
}
|
74 |
60 |
|
75 |
61 |
src_configure() {
|
76 |
|
# Fragile when changing compilers
|
77 |
|
export CCACHE_DISABLE=1
|
78 |
|
|
79 |
62 |
# TODO: liburing could in theory be optional but fails to link
|
80 |
63 |
local mycmakeargs=(
|
81 |
64 |
-DLIB_INSTALL_DIR="$(get_libdir)"
|
... | ... | |
98 |
81 |
# Timeouts are fragile
|
99 |
82 |
# - concurrent_hash_map_test.*
|
100 |
83 |
# TODO: All SIGSEGV, report upstream!
|
101 |
|
-E "(timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest.HHWheelTimerTest.CancelTimeout|concurrent_hash_map_test.*)"
|
|
84 |
# - ssl_errors_test.SSLErrorsTest.TestMessage
|
|
85 |
# Network...?
|
|
86 |
-E "(timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest.HHWheelTimerTest.CancelTimeout|concurrent_hash_map_test.*|ssl_errors_test.SSLErrorsTest.TestMessage)"
|
102 |
87 |
)
|
103 |
88 |
|
104 |
89 |
cmake_src_test
|