diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/package.nix | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/package.nix b/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/package.nix new file mode 100644 index 000000000000..c53c52562db8 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ma/maa-assistant-arknights/package.nix @@ -0,0 +1,99 @@ +{ lib +, config +, callPackage +, stdenv +, fetchFromGitHub +, asio +, cmake +, eigen +, libcpr +, onnxruntime +, opencv +, isBeta ? false +, cudaSupport ? config.cudaSupport +, cudaPackages ? { } +}: + +let + fastdeploy = callPackage ./fastdeploy-ppocr.nix { }; + sources = lib.importJSON ./pin.json; +in +stdenv.mkDerivation (finalAttr: { + pname = "maa-assistant-arknights" + lib.optionalString isBeta "-beta"; + version = if isBeta then sources.beta.version else sources.stable.version; + + src = fetchFromGitHub { + owner = "MaaAssistantArknights"; + repo = "MaaAssistantArknights"; + rev = "v${finalAttr.version}"; + hash = if isBeta then sources.beta.hash else sources.stable.hash; + }; + + # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail 'RUNTIME DESTINATION .' ' ' \ + --replace-fail 'LIBRARY DESTINATION .' ' ' \ + --replace-fail 'PUBLIC_HEADER DESTINATION .' ' ' + + substituteInPlace CMakeLists.txt \ + --replace-fail 'find_package(asio ' '# find_package(asio ' \ + --replace-fail 'asio::asio' ' ' + + shopt -s globstar nullglob + + substituteInPlace src/MaaCore/**/{*.h,*.cpp,*.hpp,*.cc} \ + --replace 'onnxruntime/core/session/' "" + substituteInPlace CMakeLists.txt \ + --replace-fail 'ONNXRuntime' 'onnxruntime' + + cp -v ${fastdeploy.cmake}/Findonnxruntime.cmake cmake/ + ''; + + nativeBuildInputs = [ + asio + cmake + fastdeploy.cmake + ] ++ lib.optionals cudaSupport [ + cudaPackages.cuda_nvcc + ]; + + buildInputs = [ + fastdeploy + libcpr + 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 "USE_MAADEPS" false) + (lib.cmakeBool "BUILD_SHARED_LIBS" true) + (lib.cmakeBool "INSTALL_RESOURCE" true) + (lib.cmakeBool "INSTALL_PYTHON" true) + (lib.cmakeFeature "MAA_VERSION" "v${finalAttr.version}") + ]; + + passthru.updateScript = ./update.sh; + + postInstall = '' + mkdir -p $out/share/${finalAttr.pname} + mv $out/{Python,resource} $out/share/${finalAttr.pname} + ''; + + meta = with lib; { + description = "An Arknights assistant"; + homepage = "https://github.com/MaaAssistantArknights/MaaAssistantArknights"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ Cryolitia ]; + platforms = platforms.linux; + }; +}) |