Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, cpm-cmake
6, git
7, git2-cpp
8, cacert
9, boost179
10, icu
11, libarchive
12, libgit2
13, lz4
14, mitama-cpp-result
15, ninja
16, openssl_3
17, package-project-cmake
18, spdlog
19}:
20
21let
22 glob = fetchFromGitHub {
23 owner = "p-ranav";
24 repo = "glob";
25 rev = "v0.0.1";
26 sha256 = "sha256-2y+a7YFBiYX8wbwCCWw1Cm+SFoXGB3ZxLPi/QdZhcdw=";
27 };
28
29 structopt = fetchFromGitHub {
30 owner = "p-ranav";
31 repo = "structopt";
32 rev = "e9722d3c2b52cf751ebc1911b93d9649c4e365cc";
33 sha256 = "sha256-jIfKUyY2QQ2/donywwlz65PY8u7xODGoG6SlNtUhwkg=";
34 };
35
36 toml11 = fetchFromGitHub {
37 owner = "ToruNiina";
38 repo = "toml11";
39 rev = "9086b1114f39a8fb10d08ca704771c2f9f247d02";
40 sha256 = "sha256-fHUElHO4ckNQq7Q88GdbHGxfaAvWoWtGB0eD9y2MnLo=";
41 };
42in
43stdenv.mkDerivation rec {
44 pname = "poac";
45 version = "0.5.1";
46
47 src = fetchFromGitHub {
48 owner = "poacpm";
49 repo = pname;
50 rev = version;
51 sha256 = "sha256-JgGa7lomDvZG5HLxGJMALcezjnZprexJDTxyTUjLetg=";
52 };
53
54 preConfigure = ''
55 mkdir -p ${placeholder "out"}/share/cpm
56 cp ${cpm-cmake}/share/cpm/CPM.cmake ${placeholder "out"}/share/cpm/CPM_0.35.1.cmake
57 '';
58
59 cmakeFlags = [
60 "-DPOAC_BUILD_TESTING=OFF"
61 "-DCPM_SOURCE_CACHE=${placeholder "out"}/share"
62 "-DFETCHCONTENT_SOURCE_DIR_GIT2-CPP=${git2-cpp.src}"
63 "-DFETCHCONTENT_SOURCE_DIR_GLOB=${glob}"
64 "-DFETCHCONTENT_SOURCE_DIR_PACKAGEPROJECT.CMAKE=${package-project-cmake.src}"
65 "-DFETCHCONTENT_SOURCE_DIR_MITAMA-CPP-RESULT=${mitama-cpp-result.src}"
66 "-DFETCHCONTENT_SOURCE_DIR_NINJA=${ninja.src}"
67 "-DFETCHCONTENT_SOURCE_DIR_STRUCTOPT=${structopt}"
68 "-DFETCHCONTENT_SOURCE_DIR_TOML11=${toml11}"
69 ];
70
71 nativeBuildInputs = [ cmake git cacert ];
72 buildInputs = [
73 (boost179.override {
74 enableShared = stdenv.isDarwin;
75 enableStatic = !stdenv.isDarwin;
76 })
77 git2-cpp
78 glob
79 package-project-cmake
80 mitama-cpp-result
81 ninja
82 structopt
83 toml11
84 icu
85 libarchive
86 libgit2
87 lz4
88 openssl_3
89 spdlog
90 ];
91
92 meta = with lib; {
93 homepage = "https://poac.pm";
94 description = "Package Manager for C++";
95 license = licenses.asl20;
96 maintainers = [ ];
97 platforms = platforms.unix;
98 # error: call to 'format' is ambiguous
99 broken = true; # last successful build 2023-12-31
100 };
101}