diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix index 32356fd9ccab..50709cae8c0b 100644 --- a/pkgs/development/libraries/dlib/default.nix +++ b/pkgs/development/libraries/dlib/default.nix @@ -3,28 +3,27 @@ , fetchFromGitHub , cmake , pkg-config -, fftw , libpng , libjpeg , libwebp -, openblas +, blas +, lapack +, config , guiSupport ? false , libX11 - - # see http://dlib.net/compile.html , sse4Support ? stdenv.hostPlatform.sse4_1Support , avxSupport ? stdenv.hostPlatform.avxSupport -, cudaSupport ? true -}: - -stdenv.mkDerivation rec { +, cudaSupport ? config.cudaSupport +, cudaPackages +}@inputs: +(if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec { pname = "dlib"; version = "19.24.2"; src = fetchFromGitHub { owner = "davisking"; repo = "dlib"; - rev ="v${version}"; + rev = "v${version}"; sha256 = "sha256-Z1fScuaIHjj2L1uqLIvsZ7ARKNjM+iaA8SAtWUTPFZk="; }; @@ -33,20 +32,53 @@ stdenv.mkDerivation rec { ''; cmakeFlags = [ - (lib.cmakeBool "USE_DLIB_USE_CUDA" cudaSupport) (lib.cmakeBool "USE_SSE4_INSTRUCTIONS" sse4Support) (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport) + (lib.cmakeBool "DLIB_USE_CUDA" cudaSupport) + ] ++ lib.optionals cudaSupport [ + (lib.cmakeFeature "DLIB_USE_CUDA_COMPUTE_CAPABILITIES" (builtins.concatStringsSep "," (with cudaPackages.flags; map dropDot cudaCapabilities))) ]; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + ] ++ lib.optionals cudaSupport (with cudaPackages; [ + cuda_nvcc + ]); buildInputs = [ - fftw libpng libjpeg libwebp - openblas - ] ++ lib.optional guiSupport libX11; + blas + lapack + ] + ++ lib.optionals guiSupport [ libX11 ] + ++ lib.optionals config.cudaSupport (with cudaPackages; [ + cuda_cudart.dev + cuda_cudart.lib + cuda_cudart.static + cuda_nvcc.dev + libcublas.dev + libcublas.lib + libcublas.static + libcurand.dev + libcurand.lib + libcurand.static + libcusolver.dev + libcusolver.lib + libcusolver.static + cudnn.dev + cudnn.lib + cudnn.static + cuda_cccl.dev + ]); + + passthru = { + inherit + cudaSupport cudaPackages + sse4Support avxSupport; + }; meta = with lib; { description = "A general purpose cross-platform C++ machine learning library"; diff --git a/pkgs/development/python-modules/face-recognition/default.nix b/pkgs/development/python-modules/face-recognition/default.nix index 8b06c83cf5aa..ef1d57e3eb67 100644 --- a/pkgs/development/python-modules/face-recognition/default.nix +++ b/pkgs/development/python-modules/face-recognition/default.nix @@ -2,15 +2,17 @@ , fetchPypi , lib -# propagates + # propagates , click , dlib , face-recognition-models , numpy , pillow -# tests + # tests , pytestCheckHook +, config +, cudaSupport ? config.cudaSupport }: buildPythonPackage rec { @@ -18,7 +20,7 @@ buildPythonPackage rec { version = "1.3.0"; format = "setuptools"; - src = fetchPypi { + src = fetchPypi { pname = "face_recognition"; inherit version; hash = "sha256-Xl790WhqpWavDTzBMTsTHksZdleo/9A2aebT+tknBew="; @@ -36,6 +38,9 @@ buildPythonPackage rec { pytestCheckHook ]; + # Disables tests when running with cuda due to https://github.com/NixOS/nixpkgs/issues/225912 + doCheck = !config.cudaSupport; + meta = with lib; { license = licenses.mit; homepage = "https://github.com/ageitgey/face_recognition";