python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / folly / default.nix
blob1c132b8742c5bf4c123d8402b2bc338e62698205
1 { lib, stdenv
2 , fetchFromGitHub
3 , boost
4 , cmake
5 , double-conversion
6 , fetchpatch
7 , fmt_8
8 , gflags
9 , glog
10 , libevent
11 , libiberty
12 , libunwind
13 , lz4
14 , openssl
15 , pkg-config
16 , xz
17 , zlib
18 , zstd
19 , jemalloc
20 , follyMobile ? false
23 stdenv.mkDerivation rec {
24   pname = "folly";
25   version = "2022.11.07.00";
27   src = fetchFromGitHub {
28     owner = "facebook";
29     repo = "folly";
30     rev = "v${version}";
31     sha256 = "sha256-RzVJuhyLZe5KGnNYUxkiAeYdQf4Amm8cAlV/12kmTj4=";
32   };
34   nativeBuildInputs = [
35     cmake
36     pkg-config
37   ];
39   # See CMake/folly-deps.cmake in the Folly source tree.
40   buildInputs = [
41     boost
42     double-conversion
43     glog
44     gflags
45     libevent
46     libiberty
47     openssl
48     lz4
49     xz
50     zlib
51     libunwind
52     fmt_8
53     zstd
54   ] ++ lib.optional stdenv.isLinux jemalloc;
56   # jemalloc headers are required in include/folly/portability/Malloc.h
57   propagatedBuildInputs = lib.optional stdenv.isLinux jemalloc;
59   NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" "-fpermissive" ];
60   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
62   postFixup = ''
63     substituteInPlace "$out"/lib/pkgconfig/libfolly.pc \
64       --replace '=''${prefix}//' '=/' \
65       --replace '=''${exec_prefix}//' '=/'
66   '';
68   # folly-config.cmake, will `find_package` these, thus there should be
69   # a way to ensure abi compatibility.
70   passthru = {
71     inherit boost;
72     fmt = fmt_8;
73   };
75   meta = with lib; {
76     description = "An open-source C++ library developed and used at Facebook";
77     homepage = "https://github.com/facebook/folly";
78     license = licenses.asl20;
79     # 32bit is not supported: https://github.com/facebook/folly/issues/103
80     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
81     maintainers = with maintainers; [ abbradar pierreis ];
82   };