about summary refs log tree commit diff
path: root/pkgs/development/tools/poac
diff options
context:
space:
mode:
authorKen Matsui <26405363+ken-matsui@users.noreply.github.com>2022-07-25 07:53:54 +0900
committerKen Matsui <26405363+ken-matsui@users.noreply.github.com>2022-12-14 20:13:41 -0800
commit8e89f701d36f8868f89bdc65eab12e199abd435c (patch)
treef52555f932ef56b7cf333f126f3d62e20c49df5b /pkgs/development/tools/poac
parent6a9ace7c99c8740e30feba350f69d5731018da6a (diff)
poac: init at 0.4.1
Diffstat (limited to 'pkgs/development/tools/poac')
-rw-r--r--pkgs/development/tools/poac/default.nix123
1 files changed, 123 insertions, 0 deletions
diff --git a/pkgs/development/tools/poac/default.nix b/pkgs/development/tools/poac/default.nix
new file mode 100644
index 0000000000000..6db3acb56063f
--- /dev/null
+++ b/pkgs/development/tools/poac/default.nix
@@ -0,0 +1,123 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, cpm-cmake
+, git
+, cacert
+, boost179
+, fmt_8
+, icu
+, libarchive
+, libgit2
+, lz4
+, ninja
+, openssl_3
+, spdlog
+}:
+
+let
+  git2Cpp = fetchFromGitHub {
+    owner = "ken-matsui";
+    repo = "git2-cpp";
+    rev = "v0.1.0-alpha.1";
+    sha256 = "sha256-Ub0wrBK5oMfWGv+kpq/W1PN3yzpcfg+XWRFF/lV9VCY=";
+  };
+
+  glob = fetchFromGitHub {
+    owner = "p-ranav";
+    repo = "glob";
+    rev = "v0.0.1";
+    sha256 = "sha256-2y+a7YFBiYX8wbwCCWw1Cm+SFoXGB3ZxLPi/QdZhcdw=";
+  };
+
+  packageProjectCMake = fetchFromGitHub {
+    owner = "TheLartians";
+    repo = "PackageProject.cmake";
+    rev = "v1.3";
+    sha256 = "sha256-ZktftDrPo+JhBt0XKJekv0cyxIagvcgMcXZOBd4RtKs=";
+  };
+
+  mitamaCppResult = fetchFromGitHub {
+    owner = "LoliGothick";
+    repo = "mitama-cpp-result";
+    rev = "v9.3.0";
+    sha256 = "sha256-CWYVPpmPIZZTsqXKh+Ft3SlQ4C9yjUof1mJ8Acn5kmM=";
+  };
+
+  structopt = fetchFromGitHub {
+    owner = "p-ranav";
+    repo = "structopt";
+    rev = "e9722d3c2b52cf751ebc1911b93d9649c4e365cc";
+    sha256 = "sha256-jIfKUyY2QQ2/donywwlz65PY8u7xODGoG6SlNtUhwkg=";
+  };
+
+  toml11 = fetchFromGitHub {
+    owner = "ToruNiina";
+    repo = "toml11";
+    rev = "9086b1114f39a8fb10d08ca704771c2f9f247d02";
+    sha256 = "sha256-fHUElHO4ckNQq7Q88GdbHGxfaAvWoWtGB0eD9y2MnLo=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "poac";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "poacpm";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-jXYPeI/rVuTr7OYV5sMgNr+U1OfN0XZtun6mihtlErY=";
+  };
+
+  preConfigure = ''
+    mkdir -p ${placeholder "out"}/share/cpm
+    cp ${cpm-cmake}/share/cpm/CPM.cmake ${placeholder "out"}/share/cpm/CPM_0.35.1.cmake
+  '';
+
+  cmakeFlags = [
+    "-DCPM_USE_LOCAL_PACKAGES=ON"
+    "-DCPM_SOURCE_CACHE=${placeholder "out"}/share"
+    "-DFETCHCONTENT_SOURCE_DIR_FMT=${fmt_8}"
+    "-DFETCHCONTENT_SOURCE_DIR_GIT2-CPP=${git2Cpp}"
+    "-DFETCHCONTENT_SOURCE_DIR_GLOB=${glob}"
+    "-DFETCHCONTENT_SOURCE_DIR_PACKAGEPROJECT.CMAKE=${packageProjectCMake}"
+    "-DFETCHCONTENT_SOURCE_DIR_MITAMA-CPP-RESULT=${mitamaCppResult}"
+    "-DFETCHCONTENT_SOURCE_DIR_NINJA=${ninja.src}"
+    "-DFETCHCONTENT_SOURCE_DIR_STRUCTOPT=${structopt}"
+    "-DFETCHCONTENT_SOURCE_DIR_TOML11=${toml11}"
+  ];
+
+  nativeBuildInputs = [ cmake git cacert ];
+  buildInputs = [
+    (if stdenv.isDarwin
+      then boost179
+      else (boost179.override { enableShared = false; enableStatic = true; }))
+    fmt_8
+    git2Cpp
+    glob
+    packageProjectCMake
+    mitamaCppResult
+    ninja
+    structopt
+    toml11
+    icu
+    libarchive
+    libgit2
+    lz4
+    openssl_3
+    spdlog
+  ];
+
+  meta = with lib; {
+    homepage = "https://poac.pm";
+    description = "Package Manager for C++";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ken-matsui ];
+    platforms = platforms.unix;
+    # https://github.com/NixOS/nixpkgs/pull/189712#issuecomment-1237791234
+    broken = (stdenv.isLinux && stdenv.isAarch64)
+    # error: excess elements in scalar initializer on std::aligned_alloc
+          || (stdenv.isDarwin && stdenv.isx86_64);
+  };
+}