nerdfonts: fix wrong attribute name in error message (#364463)
[NixPkgs.git] / pkgs / by-name / be / bear / package.nix
blob98e64fe535f5e39ee35a49d15a70423dfe2cc7fb
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   cmake,
6   ninja,
7   pkg-config,
8   grpc,
9   protobuf,
10   openssl,
11   nlohmann_json,
12   gtest,
13   spdlog,
14   c-ares,
15   zlib,
16   sqlite,
17   re2,
18   lit,
19   python3,
20   coreutils,
23 stdenv.mkDerivation (finalAttrs: {
24   pname = "bear";
25   version = "3.1.5";
27   src = fetchFromGitHub {
28     owner = "rizsotto";
29     repo = "bear";
30     rev = finalAttrs.version;
31     hash = "sha256-pwdjytP+kmTwozRl1Gd0jUqRs3wfvcYPqiQvVwa6s9c=";
32   };
34   strictDeps = true;
36   nativeBuildInputs = [
37     cmake
38     ninja
39     pkg-config
40     grpc
41     protobuf
42   ];
44   buildInputs = [
45     grpc
46     protobuf
47     openssl
48     nlohmann_json
49     spdlog
50     c-ares
51     zlib
52     sqlite
53     re2
54   ];
56   patches = [
57     # This patch is necessary to run tests in a separate phase. By default
58     # test targets are run with ALL, which is not what we want. This patch creates
59     # separate 'test' step targets for each cmake ExternalProject:
60     # - BearTest-test (functional lit tests)
61     # - BearSource-test (unit tests via gtest)
62     ./0001-exclude-tests-from-all.patch
63   ];
65   nativeCheckInputs = [
66     lit
67     python3
68   ];
70   checkInputs = [
71     gtest
72   ];
74   cmakeFlags = [
75     # Build system and generated files concatenate install prefix and
76     # CMAKE_INSTALL_{BIN,LIB}DIR, which breaks if these are absolute paths.
77     (lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
78     (lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
79     (lib.cmakeBool "ENABLE_UNIT_TESTS" finalAttrs.finalPackage.doCheck)
80     (lib.cmakeBool "ENABLE_FUNC_TESTS" finalAttrs.finalPackage.doCheck)
81   ];
83   checkTarget = lib.concatStringsSep " " [
84     "BearTest-test"
85     "BearSource-test"
86   ];
88   doCheck = true;
90   env = {
91     # Disable failing tests. The cause is not immediately clear.
92     LIT_FILTER_OUT = lib.concatStringsSep "|" [
93       "cases/compilation/output/config/filter_compilers.sh"
94       "cases/intercept/preload/posix/execvpe/success_to_resolve.c"
95       "cases/intercept/preload/posix/popen/success.c"
96       "cases/intercept/preload/posix/posix_spawnp/success_to_resolve.c"
97       "cases/intercept/preload/posix/system/success.c"
98       "cases/intercept/preload/shell_commands_intercepted_without_shebang.sh"
99     ];
100   };
102   postPatch = ''
103     patchShebangs test/bin
105     # /usr/bin/env is used in test commands and embedded scripts.
106     find test -name '*.sh' \
107       -exec sed -ie 's|/usr/bin/env|${coreutils}/bin/env|g' {} +
108   '';
110   # Functional tests use loopback networking.
111   __darwinAllowLocalNetworking = true;
113   meta = {
114     description = "Tool that generates a compilation database for clang tooling";
115     mainProgram = "bear";
116     longDescription = ''
117       Note: the bear command is very useful to generate compilation commands
118       e.g. for YouCompleteMe.  You just enter your development nix-shell
119       and run `bear make`.  It's not perfect, but it gets a long way.
120     '';
121     homepage = "https://github.com/rizsotto/Bear";
122     license = lib.licenses.gpl3Plus;
123     platforms = lib.platforms.unix;
124     maintainers = with lib.maintainers; [ DieracDelta ];
125   };