heroic: use qt6 version of kdialog (#372495)
[NixPkgs.git] / pkgs / by-name / ti / tinycdb / package.nix
blob69c6ade37992f10d51091230b0864d98561ab808
2   stdenv,
3   lib,
4   fetchurl,
5 }:
6 let
7   isCross = stdenv.buildPlatform != stdenv.hostPlatform;
8   cross = "${stdenv.hostPlatform.config}";
9   static = stdenv.hostPlatform.isStatic;
11   cc = if !isCross then "cc" else "${cross}-cc";
12   ar = if !isCross then "ar" else "${cross}-ar";
13   ranlib = if !isCross then "ranlib" else "${cross}-ranlib";
15 stdenv.mkDerivation rec {
16   postPatch = ''
17     sed -i 's,set --, set -x; set --,' Makefile
18   '';
19   pname = "tinycdb";
20   version = "0.80";
21   # In general, static library (.a) goes to "dev", shared (.so) to
22   # "lib". In case of static build, there is no .so library, so "lib"
23   # output is useless and empty.
24   outputs = [
25     "out"
26     "dev"
27     "man"
28   ] ++ lib.optional (!static) "lib";
29   separateDebugInfo = true;
30   makeFlags = [
31     "prefix=$(out)"
32     "CC=${cc}"
33     "AR=${ar}"
34     "RANLIB=${ranlib}"
35     "static"
36   ] ++ lib.optional (!static) "shared";
37   postInstall =
38     ''
39       mkdir -p $dev/lib $out/bin
40       mv $out/lib/libcdb.a $dev/lib
41       rmdir $out/lib
42     ''
43     + (
44       if static then
45         ''
46           cp cdb $out/bin/cdb
47         ''
48       else
49         ''
50           mkdir -p $lib/lib
51           cp libcdb.so* $lib/lib
52           cp cdb-shared $out/bin/cdb
53         ''
54     );
56   src = fetchurl {
57     url = "http://www.corpit.ru/mjt/tinycdb/${pname}-${version}.tar.gz";
58     sha256 = "sha256-wyG5BekCwsqZo/+Kjd39iCMkf+Ht7IpLuF+Dhpxjn7g=";
59   };
61   meta = with lib; {
63     description = "utility to manipulate constant databases (cdb)";
64     mainProgram = "cdb";
66     longDescription = ''
67       tinycdb is a small, fast and reliable utility and subroutine
68       library for creating and reading constant databases. The database
69       structure is tuned for fast reading.
70     '';
72     homepage = "https://www.corpit.ru/mjt/tinycdb.html";
73     license = licenses.publicDomain;
74     platforms = platforms.linux;
75   };