diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/librealsense')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/librealsense/default.nix | 61 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch | 15 |
2 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/default.nix b/nixpkgs/pkgs/development/libraries/librealsense/default.nix new file mode 100644 index 000000000000..6607a4d00fb6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/librealsense/default.nix @@ -0,0 +1,61 @@ +{ stdenv, config, lib, fetchFromGitHub, cmake, libusb1, ninja, pkg-config, gcc +, cudaSupport ? config.cudaSupport or false, cudatoolkit +, enablePython ? false, pythonPackages ? null }: + +assert cudaSupport -> cudatoolkit != null; +assert enablePython -> pythonPackages != null; + +stdenv.mkDerivation rec { + pname = "librealsense"; + version = "2.43.0"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "IntelRealSense"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-N7EvpcJjtK3INHK7PgoiEVIMq9zGcHKMeI+/dwZ3bNs="; + }; + + buildInputs = [ + libusb1 + gcc.cc.lib + ] ++ lib.optional cudaSupport cudatoolkit + ++ lib.optional enablePython pythonPackages.python; + + patches = lib.optionals enablePython [ + ./py_sitepackage_dir.patch + ]; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + ]; + + cmakeFlags = [ + "-DBUILD_EXAMPLES=ON" + "-DBUILD_GRAPHICAL_EXAMPLES=OFF" + "-DBUILD_GLSL_EXTENSIONS=OFF" + ] ++ lib.optionals enablePython [ + "-DBUILD_PYTHON_BINDINGS:bool=true" + "-DXXNIX_PYTHON_SITEPACKAGES=${placeholder "out"}/${pythonPackages.python.sitePackages}" + ] ++ lib.optional cudaSupport "-DBUILD_WITH_CUDA:bool=true"; + + # ensure python package contains its __init__.py. for some reason the install + # script does not do this, and it's questionable if intel knows it should be + # done + # ( https://github.com/IntelRealSense/meta-intel-realsense/issues/20 ) + postInstall = lib.optionalString enablePython '' + cp ../wrappers/python/pyrealsense2/__init__.py $out/${pythonPackages.python.sitePackages}/pyrealsense2 + ''; + + meta = with lib; { + description = "A cross-platform library for IntelĀ® RealSenseā¢ depth cameras (D400 series and the SR300)"; + homepage = "https://github.com/IntelRealSense/librealsense"; + license = licenses.asl20; + maintainers = with maintainers; [ brian-dawn ]; + platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch b/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch new file mode 100644 index 000000000000..99b567a429ed --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch @@ -0,0 +1,15 @@ +--- a/wrappers/python/CMakeLists.txt ++++ b/wrappers/python/CMakeLists.txt +@@ -10,11 +10,11 @@ + if (CMAKE_VERSION VERSION_LESS 3.12) + find_package(PythonInterp REQUIRED) + find_package(PythonLibs REQUIRED) +- set(PYTHON_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/pyrealsense2" CACHE PATH "Installation directory for Python bindings") ++ set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings") + set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2") + else() + find_package(Python REQUIRED COMPONENTS Interpreter Development) +- set(PYTHON_INSTALL_DIR "${Python_SITEARCH}/pyrealsense2" CACHE PATH "Installation directory for Python bindings") ++ set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings") + set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2") + endif() |