about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix')
-rw-r--r--nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix74
1 files changed, 74 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix b/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
new file mode 100644
index 000000000000..c4ccfc7566b9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, config
+, pkgs
+, lib
+, fetchFromGitHub
+, cmake
+, eigen
+, onnxruntime
+, opencv
+, cudaSupport ? config.cudaSupport
+, cudaPackages ? { }
+}@inputs:
+
+let
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
+  cudaCapabilities = cudaPackages.cudaFlags.cudaCapabilities;
+  # E.g. [ "80" "86" "90" ]
+  cudaArchitectures = (builtins.map cudaPackages.cudaFlags.dropDot cudaCapabilities);
+  cudaArchitecturesString = lib.strings.concatStringsSep ";" cudaArchitectures;
+in
+effectiveStdenv.mkDerivation (finalAttrs: {
+  pname = "fastdeploy-ppocr";
+  version = "0-unstable-2023-10-09";
+
+  src = fetchFromGitHub {
+    owner = "Cryolitia";
+    repo = "FastDeploy";
+    # follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
+    rev = "2e68908141f6950bc5d22ba84f514e893cc238ea";
+    hash = "sha256-BWO4lKZhwNG6mbkC70hPgMNjabTnEV5XMo0bLV/gvQs=";
+  };
+
+  outputs = [ "out" "cmake" ];
+
+  nativeBuildInputs = [
+    cmake
+    eigen
+  ] ++ lib.optionals cudaSupport [
+    cudaPackages.cuda_nvcc
+  ];
+
+  buildInputs = [
+    onnxruntime
+    opencv
+  ] ++ lib.optionals cudaSupport (with cudaPackages; [
+    cuda_cccl # cub/cub.cuh
+    libcublas # cublas_v2.h
+    libcurand # curand.h
+    libcusparse # cusparse.h
+    libcufft # cufft.h
+    cudnn # cudnn.h
+    cuda_cudart
+  ]);
+
+  cmakeFlags = [
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
+    (lib.cmakeBool "BUILD_SHARED_LIBS" true)
+  ] ++ lib.optionals cudaSupport [
+    (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString)
+  ];
+
+  postInstall = ''
+    mkdir $cmake
+    install -Dm644 ${finalAttrs.src}/cmake/Findonnxruntime.cmake $cmake/
+  '';
+
+  meta = with lib; {
+    description = "MaaAssistantArknights stripped-down version of FastDeploy";
+    homepage = "https://github.com/MaaAssistantArknights/FastDeploy";
+    platforms = platforms.linux;
+    license = licenses.apsl20;
+    broken = cudaSupport && stdenv.hostPlatform.system != "x86_64-linux";
+  };
+})