python312Packages.yoda: 2.0.1 -> 2.0.2
[NixPkgs.git] / pkgs / by-name / lc / lc0 / package.nix
blob1c1099752580ca04647b6775fcd1e68e1012367e
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , meson
5 , ninja
6 , pkg-config
7 , python3
8 , zlib
9 , gtest
10 , eigen
13 stdenv.mkDerivation rec {
14   pname = "lc0";
15   version = "0.31.2";
17   src = fetchFromGitHub {
18     owner = "LeelaChessZero";
19     repo = "lc0";
20     rev = "refs/tags/v${version}";
21     hash = "sha256-8watDDxSyZ5khYqpXPyjQso2MkOzfI6o2nt0vkuiEUI=";
22     fetchSubmodules = true;
23   };
25   patchPhase = ''
26     runHook prePatch
28     patchShebangs --build scripts/*
30     runHook postPatch
31   '';
33   strictDeps = true;
35   nativeBuildInputs = [
36     meson
37     ninja
38     pkg-config
39     python3
40   ];
42   buildInputs = [
43     eigen
44     gtest
45     zlib
46   ];
48   mesonFlags = [
49     "-Dplain_cuda=false"
50     "-Daccelerate=false"
51     "-Dmetal=disabled"
52     "-Dembed=false"
53   ]
54   # in version 31 this option will be required
55   ++ lib.optionals (lib.versionAtLeast version "0.31") [ "-Dnative_cuda=false" ];
58   enableParallelBuilding = true;
60   meta = {
61     homepage = "https://lczero.org/";
62     description = "Open source neural network based chess engine";
63     longDescription = ''
64       Lc0 is a UCI-compliant chess engine designed to play chess via neural network, specifically those of the LeelaChessZero project.
65     '';
66     maintainers = with lib.maintainers; [ _9glenda ];
67     platforms = lib.platforms.unix;
68     license = lib.licenses.gpl3Plus;
69     broken = stdenv.hostPlatform.isDarwin;
70   };