75 lines
1.9 KiB
Nix
75 lines
1.9 KiB
Nix
{
|
|
lib,
|
|
python311Packages,
|
|
fetchPypi,
|
|
stdenv,
|
|
makeWrapper,
|
|
cmake,
|
|
pkg-config,
|
|
cudaPackages,
|
|
enableCuda ? false,
|
|
}:
|
|
python311Packages.buildPythonPackage rec {
|
|
pname = "opencv-python-headless";
|
|
version = "4.11.0.86";
|
|
format = "other";
|
|
src = fetchPypi {
|
|
pname = "opencv-python-headless";
|
|
inherit version;
|
|
sha256 = "mW6ygspLQ+xqOXJBTeDiMx9dnNorQQkaSXOcGfuEN5g=";
|
|
};
|
|
nativeBuildInputs = with python311Packages;
|
|
[
|
|
cmake
|
|
pkg-config
|
|
makeWrapper
|
|
scikit-build
|
|
]
|
|
++ lib.optionals enableCuda (with cudaPackages; [
|
|
cudatoolkit
|
|
]);
|
|
buildInputs = with python311Packages;
|
|
[
|
|
scikit-build
|
|
]
|
|
++ lib.optionals enableCuda (with cudaPackages; [
|
|
cudatoolkit
|
|
cudnn
|
|
]);
|
|
propagatedBuildInputs = with python311Packages; [
|
|
setuptools
|
|
numpy
|
|
];
|
|
dontUseCmakeConfigure = true;
|
|
SKBUILD_CMAKE_ARGS =
|
|
[
|
|
"-DCMAKE_BUILD_TYPE=Release"
|
|
"-DBUILD_opencv_apps=OFF"
|
|
"-DBUILD_EXAMPLES=OFF"
|
|
"-DBUILD_TESTS=OFF"
|
|
"-DBUILD_PERF_TESTS=OFF"
|
|
"-DBUILD_DOCS=OFF"
|
|
"-DOPENCV_GENERATE_PKGCONFIG=ON"
|
|
"-DCMAKE_BUILD_PARALLEL_LEVEL=$(nproc)"
|
|
]
|
|
++ lib.optionals enableCuda [
|
|
"-DWITH_CUDA=ON"
|
|
"-DCUDA_TOOLKIT_ROOT_DIR=${cudaPackages.cudatoolkit}"
|
|
"-DWITH_CUDNN=ON"
|
|
];
|
|
postPatch = lib.optionalString enableCuda ''
|
|
export LD_LIBRARY_PATH=${cudaPackages.cudatoolkit.lib}/lib:$LD_LIBRARY_PATH
|
|
'';
|
|
doCheck = false;
|
|
pythonImportsCheck = ["cv2"];
|
|
postFixup = ''
|
|
wrapPythonProgramsIn "$out/lib/python3.11/site-packages" "${stdenv.cc.cc.lib}${lib.optionalString enableCuda ":${cudaPackages.cudatoolkit.lib}/lib"}"
|
|
'';
|
|
meta = with lib; {
|
|
description = "Wrapper package for OpenCV python bindings (headless)${lib.optionalString enableCuda " with CUDA support"}";
|
|
homepage = "https://github.com/opencv/opencv-python";
|
|
license = licenses.mit;
|
|
platforms = platforms.linux;
|
|
maintainers = ["Cobray"];
|
|
};
|
|
}
|