diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 32517fb31054e..4cdb48a096aa9 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -21271,6 +21271,12 @@ githubId = 3159881; name = "Tobias Markus"; }; + tmayoff = { + email = "tyler@tylermayoff.com"; + github = "tmayoff"; + githubId = 10094264; + name = "Tyler Mayoff"; + }; tm-drtina = { email = "tm.drtina@gmail.com"; github = "tm-drtina"; diff --git a/pkgs/by-name/de/depthai-core/0001-maincmake.patch b/pkgs/by-name/de/depthai-core/0001-maincmake.patch new file mode 100644 index 0000000000000..1a157f69f1c27 --- /dev/null +++ b/pkgs/by-name/de/depthai-core/0001-maincmake.patch @@ -0,0 +1,123 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7ac7877fc..01947fc55 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -150,7 +150,7 @@ endif() + set(PROJECT_EXPORT_GROUP "${PROJECT_NAME}Targets") + + ## Check if cloned or sources +-find_package(Git) ++# find_package(Git) + if(GIT_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --show-toplevel +@@ -345,66 +345,25 @@ endif() + + # Set constant + set(DEPTHAI_RESOURCES_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/resources") ++message(STATUS "resource folder: ${DEPTHAI_RESOURCES_OUTPUT_DIR}") + + # Include configuration + include(Depthai/DepthaiDeviceSideConfig) # Depthai device binary commit/version configuration + include(Depthai/DepthaiBootloaderConfig) # Depthai bootloader binary commit/version configuration + +-# Include downloaders +-include(DepthaiDownloader) # Depthai device binary downloader +-include(DepthaiBootloaderDownloader) # Depthai bootloader binary downloader +- +- + # depthai-shared enforce commit hash match if CI + if($ENV{CI}) + set(DEPTHAI_SHARED_COMMIT_HASH_ENFORCE ON) + set(DEPTHAI_BOOTLOADER_SHARED_COMMIT_HASH_ENFORCE ON) + endif() + ++if(DEPTHAI_BINARIES_RESOURCE_COMPILE) ++ message(STATUS "LIST OF RESOURCE COMPILED FILES: ${RESOURCE_COMPILED_FILES}") + +-# Then get the Depthai device side binaries (local or download) +-if(DEPTHAI_CMD_PATH OR DEPTHAI_USB2_CMD_PATH OR DEPTHAI_USB2_PATCH_PATH) +- # At least one of the paths is set. include binaries locally +- message(STATUS "Using local Depthai device side binaries...") +- +- DepthaiLocal( +- PATCH_ONLY ${DEPTHAI_USB2_PATCH_ONLY_MODE} +- "${DEPTHAI_RESOURCES_OUTPUT_DIR}" # Output folder +- DEPTHAI_RESOURCE_LIST # List of output resources +- "${DEPTHAI_CMD_PATH}" # depthai.cmd +- "${DEPTHAI_USB2_CMD_PATH}" # depthai-usb2.cmd +- "${DEPTHAI_USB2_PATCH_PATH}" # depthai-usb2-patch.patch +- ) +- +-else() +- # No user specified paths, download from server +- message(STATUS "Downloading Depthai device side binaries from server...") +- +- DepthaiDownload( +- "${DEPTHAI_SHARED_COMMIT_HASH}" "${DEPTHAI_SHARED_COMMIT_HASH_ENFORCE}" +- PATCH_ONLY ${DEPTHAI_USB2_PATCH_ONLY_MODE} +- "${DEPTHAI_RESOURCES_OUTPUT_DIR}" # Output folder +- DEPTHAI_RESOURCE_LIST # List of output resources +- "${DEPTHAI_DEVICE_SIDE_MATURITY}" # Maturity +- "${DEPTHAI_DEVICE_SIDE_COMMIT}" # commit hash +- "${DEPTHAI_DEVICE_SIDE_VERSION}" # Optional version +- ) +-endif() +-list(APPEND RESOURCE_COMPILED_FILES ${DEPTHAI_RESOURCE_LIST}) +- +-# Add bootloader +-DepthaiBootloaderDownload( +- "${DEPTHAI_BOOTLOADER_SHARED_COMMIT_HASH}" "${DEPTHAI_BOOTLOADER_SHARED_COMMIT_HASH_ENFORCE}" +- "${DEPTHAI_RESOURCES_OUTPUT_DIR}" # Output folder +- DEPTHAI_BOOTLOADER_RESOURCE_LIST # List of output resources +- "${DEPTHAI_BOOTLOADER_MATURITY}" # Maturity +- "${DEPTHAI_BOOTLOADER_VERSION}" # if maturity == snapshot -> hash else version +-) +-list(APPEND RESOURCE_COMPILED_FILES ${DEPTHAI_BOOTLOADER_RESOURCE_LIST}) +- +-message(STATUS "LIST OF RESOURCE COMPILED FILES: ${RESOURCE_COMPILED_FILES}") ++ file(COPY "${DEPTHAI_BOOTLOADER_FWP}" DESTINATION "${DEPTHAI_RESOURCES_OUTPUT_DIR}") ++ file(COPY "${DEPTHAI_DEVICE_FWP}" DESTINATION "${DEPTHAI_RESOURCES_OUTPUT_DIR}") ++ file(GLOB RESOURCE_COMPILED_FILES "${DEPTHAI_RESOURCES_OUTPUT_DIR}/*.tar.xz") + +-if(DEPTHAI_BINARIES_RESOURCE_COMPILE) + # Add RC and resource compile the binares + include(CMakeRC) + +@@ -471,11 +430,11 @@ target_link_libraries(${TARGET_CORE_NAME} + PRIVATE + XLink + Threads::Threads +- BZip2::bz2 ++ BZip2::BZip2 + FP16::fp16 +- archive_static ++ LibArchive::LibArchive + spdlog::spdlog +- ZLIB::zlib ++ ZLIB::ZLIB + ghcFilesystem::ghc_filesystem + ) + +@@ -743,8 +702,10 @@ configure_file("cmake/${PROJECT_NAME}Dependencies.cmake" ${PROJECT_NAME}Dependen + write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion) + + # Configure config file (one for exporting build directory, one for installation) ++if (HUNTER_ENABLED) + file(RELATIVE_PATH DEPTHAI_DEPENDENCIES_INSTALLATION_PATH_REL "${CMAKE_CURRENT_BINARY_DIR}" "${HUNTER_INSTALL_PREFIX}") + configure_file(cmake/${PROJECT_NAME}Config.cmake.in ${PROJECT_NAME}Config.cmake @ONLY) ++endif() + + # Config for installation + set(DEPTHAI_DEPENDENCIES_INSTALLATION_PATH_REL "./dependencies") +@@ -783,7 +744,9 @@ if(DEPTHAI_INSTALL) + # Install depthai-bootloader-shared public headers + install(DIRECTORY "${DEPTHAI_BOOTLOADER_SHARED_PUBLIC_INCLUDE}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + # Install Hunter dependencies +- install(DIRECTORY "${HUNTER_INSTALL_PREFIX}/" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/dependencies") ++ if(HUNTER_ENABLED) ++ install(DIRECTORY "${HUNTER_INSTALL_PREFIX}/" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/dependencies") ++ endif() + # Install resources if not RC'd + if(NOT DEPTHAI_BINARIES_RESOURCE_COMPILE) + install(DIRECTORY "${DEPTHAI_RESOURCES_OUTPUT_DIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}") diff --git a/pkgs/by-name/de/depthai-core/bootloader.nix b/pkgs/by-name/de/depthai-core/bootloader.nix new file mode 100644 index 0000000000000..31a300232dd08 --- /dev/null +++ b/pkgs/by-name/de/depthai-core/bootloader.nix @@ -0,0 +1,13 @@ +{ fetchurl }: + +let + bootloader_version = "0.0.24"; + bootloader_filename = "depthai-bootloader-fwp-${bootloader_version}.tar.xz"; +in + +fetchurl { + name = bootloader_filename; + version = bootloader_version; + url = "https://artifacts.luxonis.com/artifactory/luxonis-myriad-release-local/depthai-bootloader/${bootloader_version}/${bootloader_filename};unpack=0;name=bootloader-fwp"; + hash = "sha256-yRPGNshmUuqW7aITWlF2IPfVKNY1fdxpft+iB2KnyzA="; +} diff --git a/pkgs/by-name/de/depthai-core/deps.patch b/pkgs/by-name/de/depthai-core/deps.patch new file mode 100644 index 0000000000000..4813707bc00b1 --- /dev/null +++ b/pkgs/by-name/de/depthai-core/deps.patch @@ -0,0 +1,85 @@ +diff --git a/cmake/depthaiDependencies.cmake b/cmake/depthaiDependencies.cmake +index 6b0b44f98..ab630144f 100644 +--- a/cmake/depthaiDependencies.cmake ++++ b/cmake/depthaiDependencies.cmake +@@ -37,45 +37,45 @@ endif() + if(NOT CONFIG_MODE OR (CONFIG_MODE AND NOT DEPTHAI_SHARED_LIBS)) + + # BZip2 (for bspatch) +- find_package(BZip2 ${_QUIET} CONFIG REQUIRED) ++ find_package(BZip2 REQUIRED) + + # FP16 for conversions +- find_package(FP16 ${_QUIET} CONFIG REQUIRED) ++ find_package(FP16 REQUIRED) + + # libarchive for firmware packages +- find_package(archive_static ${_QUIET} CONFIG REQUIRED) +- find_package(lzma ${_QUIET} CONFIG REQUIRED) ++ find_package(LibArchive REQUIRED) ++ find_package(LibLZMA REQUIRED) + # ZLIB for compressing Apps +- find_package(ZLIB CONFIG REQUIRED) ++ find_package(ZLIB REQUIRED) + + # spdlog for library and device logging +- find_package(spdlog ${_QUIET} CONFIG REQUIRED) ++ find_package(spdlog REQUIRED) + + # Backward + if(DEPTHAI_ENABLE_BACKWARD) + # Disable automatic check for additional stack unwinding libraries + # Just use the default compiler one + set(STACK_DETAILS_AUTO_DETECT FALSE CACHE BOOL "Auto detect backward's stack details dependencies") +- find_package(Backward ${_QUIET} CONFIG REQUIRED) ++ find_package(Backward REQUIRED) + unset(STACK_DETAILS_AUTO_DETECT) + endif() + + # Log collection dependencies + if(DEPTHAI_ENABLE_CURL) +- find_package(CURL ${_QUIET} CONFIG REQUIRED) +- find_package(cpr ${_QUIET} CONFIG REQUIRED) ++ find_package(CURL REQUIRED) ++ find_package(cpr REQUIRED) + endif() +- find_package(ghc_filesystem ${_QUIET} CONFIG REQUIRED) ++ find_package(ghc_filesystem REQUIRED) + endif() + + # Add threads (c++) + find_package(Threads ${_QUIET} REQUIRED) + + # Nlohmann JSON +-find_package(nlohmann_json 3.6.0 ${_QUIET} CONFIG REQUIRED) ++find_package(nlohmann_json 3.6.0 REQUIRED) + + # libnop for serialization +-find_package(libnop ${_QUIET} CONFIG REQUIRED) ++find_package(libnop REQUIRED) + + # XLink + if(DEPTHAI_XLINK_LOCAL AND (NOT CONFIG_MODE)) +@@ -86,11 +86,11 @@ if(DEPTHAI_XLINK_LOCAL AND (NOT CONFIG_MODE)) + unset(_BUILD_SHARED_LIBS_SAVED) + list(APPEND targets_to_export XLink) + else() +- find_package(XLink ${_QUIET} CONFIG REQUIRED HINTS "${CMAKE_CURRENT_LIST_DIR}/XLink" "${CMAKE_CURRENT_LIST_DIR}/../XLink") ++ find_package(XLink REQUIRED HINTS "${CMAKE_CURRENT_LIST_DIR}/XLink" "${CMAKE_CURRENT_LIST_DIR}/../XLink") + endif() + + # OpenCV 4 - (optional, quiet always) +-find_package(OpenCV 4 QUIET CONFIG) ++find_package(OpenCV 4) + if(DEPTHAI_PCL_SUPPORT AND NOT TARGET JsonCpp::JsonCpp) + find_package(jsoncpp) + endif() +@@ -99,7 +99,7 @@ set(PREFIX_TEMP ${CMAKE_PREFIX_PATH}) + set(CMAKE_MODULE_PATH ${_DEPTHAI_MODULE_PATH_ORIGINAL}) + set(CMAKE_PREFIX_PATH ${_DEPTHAI_PREFIX_PATH_ORIGINAL}) + if(DEPTHAI_PCL_SUPPORT) +- find_package(PCL CONFIG COMPONENTS common visualization) ++ find_package(PCL COMPONENTS common visualization) + endif() + set(CMAKE_MODULE_PATH ${MODULE_TEMP}) + set(CMAKE_PREFIX_PATH ${PREFIX_TEMP}) diff --git a/pkgs/by-name/de/depthai-core/firmware.nix b/pkgs/by-name/de/depthai-core/firmware.nix new file mode 100644 index 0000000000000..4453a2fce5e09 --- /dev/null +++ b/pkgs/by-name/de/depthai-core/firmware.nix @@ -0,0 +1,13 @@ +{ fetchurl }: + +let + device_side_commit = "8c3d6ac1c77b0bf7f9ea6fd4d962af37663d2fbd"; + device_side_filename = "depthai-device-fwp-${device_side_commit}.tar.xz"; +in + +fetchurl { + name = device_side_filename; + version = "0-commit-${device_side_commit}"; + url = "https://artifacts.luxonis.com/artifactory/luxonis-myriad-snapshot-local/depthai-device-side/${device_side_commit}/${device_side_filename};unpack=0;name=device-fwp"; + hash = "sha256-ewNrmrG1wg033/1Jd8y+HEO1Tb93Ciq7zc/T1P/fBLE="; +} diff --git a/pkgs/by-name/de/depthai-core/package.nix b/pkgs/by-name/de/depthai-core/package.nix new file mode 100644 index 0000000000000..1d71e716cd1e0 --- /dev/null +++ b/pkgs/by-name/de/depthai-core/package.nix @@ -0,0 +1,76 @@ +{ + lib, + stdenv, + fetchFromGitHub, + callPackage, + cmake, + pkg-config, + bzip2, + curl, + ghc_filesystem, + libcpr, + lzma, + spdlog, + zlib, + libarchive, + fp16-luxonis, + libnop, + nlohmann_json, + xlink-luxonis, + opencv, + pcl, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "depthai-core"; + version = "2.28.0"; + + src = fetchFromGitHub { + owner = "luxonis"; + repo = "depthai-core"; + rev = "refs/tags/v${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-aJ68oOlwU+7LwXdANOdZ/rczVZVggGAUNj5vzhtro1Q="; + }; + + # Adapted from https://github.com/tmayoff/nix-depthai-core/tree/03a1f7fc92375b0653c8ad7707d97081c8ca7792/patches/ and https://github.com/luxonis/depthai-core/issues/447#issuecomment-1164015416 + patches = [ + ./deps.patch + ./0001-maincmake.patch + ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + bzip2 + ghc_filesystem + curl + libcpr + lzma + libnop + nlohmann_json + spdlog + zlib + libarchive + fp16-luxonis + xlink-luxonis + opencv + pcl + ]; + + cmakeFlags = [ + (lib.cmakeBool "HUNTER_ENABLED" false) + (lib.cmakeBool "DEPTHAI_ENABLE_BACKWARD" false) + (lib.cmakeFeature "DEPTHAI_BOOTLOADER_FWP" (builtins.toString (callPackage ./bootloader.nix {}))) + (lib.cmakeFeature "DEPTHAI_DEVICE_FWP" (builtins.toString (callPackage ./firmware.nix {}))) + ]; + + meta = { + description = "DepthAI Core library"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ pandapip1 tmayoff ]; + }; +}) diff --git a/pkgs/by-name/fp/fp16-luxonis/package.nix b/pkgs/by-name/fp/fp16-luxonis/package.nix new file mode 100644 index 0000000000000..2def8f9ad93f2 --- /dev/null +++ b/pkgs/by-name/fp/fp16-luxonis/package.nix @@ -0,0 +1,36 @@ +{ + lib, + stdenv, + fetchFromGitHub, + srcOnly, + cmake, + psimd, +}: + +stdenv.mkDerivation { + pname = "fp16-luxonis"; + version = "0-unstable-2021-07-27"; + + src = fetchFromGitHub { + owner = "luxonis"; + repo = "fp16"; + rev = "c911175d2717e562976e606c6e5f799bf40cf94e"; + hash = "sha256-4U5WmqqljHYoKdKqtFRBX++vGCv/3weuqPFr4WG7GNM="; + }; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ + (lib.cmakeFeature "PSIMD_SOURCE_DIR" (builtins.toString (srcOnly psimd))) + (lib.cmakeBool "FP16_BUILD_TESTS" false) + (lib.cmakeBool "FP16_BUILD_BENCHMARKS" false) + ]; + + meta = { + description = "Header-only library for conversion to/from half-precision floating point formats"; + homepage = "https://github.com/luxonis/fp16"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ pandapip1 tmayoff ]; + }; +} diff --git a/pkgs/by-name/li/libnop/package.nix b/pkgs/by-name/li/libnop/package.nix new file mode 100644 index 0000000000000..e5eab6e535787 --- /dev/null +++ b/pkgs/by-name/li/libnop/package.nix @@ -0,0 +1,62 @@ +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + pkg-config, + gtest, + unstableGitUpdater, +}: + +stdenv.mkDerivation { + pname = "libnop"; + version = "0-unstable-2021-11-02"; + + src = fetchFromGitHub { + owner = "google"; + repo = "libnop"; + rev = "35e800d81f28c632956c5a592e3cbe8085ecd430"; + hash = "sha256-wt88E3XLKQVUetKI4nMxQDP34iHSJj8bwBGTgiVVC2M="; + }; + + patches = [ + # Adds cmake support + (fetchpatch { + url = "https://github.com/google/libnop/commit/5a66ba96d0b3d93afc4164a8a9c71949f4cee64f.patch"; + hash = "sha256-6RZ7j+dLy9o/6YuLkQFKBHspFGTP5KkxaLRHlap5dN0="; + }) + (fetchpatch { + url = "https://github.com/google/libnop/commit/83967ad391a30d8f871d57777a91ebd7f9370ad4.patch"; + hash = "sha256-rRwTZSaz2hHyAjaisQ7ljg1LE6T+4yC9zpo9krAAWz4="; + }) + (fetchpatch { + url = "https://github.com/google/libnop/commit/149883367057c02b07abc76608f483adb2147403.patch"; + hash = "sha256-/QGYVpJ89dztJLWrgK0wcLZwPtRfMGNe2d8uE9cAZ/4="; + }) + (fetchpatch { + url = "https://github.com/google/libnop/commit/2f19ad3ff3b40a323fa6777cb0b7594202769a72.patch"; + hash = "sha256-4GyRdvJbMOz8/OoGR8AS9UblK1Z4EUS9dWZT2UGiRWc="; + }) + ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ gtest ]; + + cmakeFlags = [ + (lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib") + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + description = "A header-only library for serializing and deserializing C++ data types"; + homepage = "https://github.com/google/libnop"; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ pandapip1 tmayoff ]; + }; +} diff --git a/pkgs/by-name/mo/monado/package.nix b/pkgs/by-name/mo/monado/package.nix index 6f420f497e333..dad3e7f7cb238 100644 --- a/pkgs/by-name/mo/monado/package.nix +++ b/pkgs/by-name/mo/monado/package.nix @@ -6,6 +6,7 @@ , cjson , cmake , dbus +, depthai-core , doxygen , eigen , elfutils @@ -90,6 +91,7 @@ stdenv.mkDerivation (finalAttrs: { bluez cjson dbus + depthai-core eigen elfutils gst-plugins-base @@ -132,7 +134,6 @@ stdenv.mkDerivation (finalAttrs: { ]; # known disabled drivers/features: - # - DRIVER_DEPTHAI - Needs depthai-core https://github.com/luxonis/depthai-core (See https://github.com/NixOS/nixpkgs/issues/292618) # - DRIVER_ILLIXR - needs ILLIXR headers https://github.com/ILLIXR/ILLIXR (See https://github.com/NixOS/nixpkgs/issues/292661) # - DRIVER_ULV2 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624) # - DRIVER_ULV5 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624) @@ -151,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Open source XR runtime"; homepage = "https://monado.freedesktop.org/"; license = licenses.boost; - maintainers = with maintainers; [ Scrumplex expipiplus1 prusnak ]; + maintainers = with maintainers; [ Scrumplex expipiplus1 prusnak pandapip1 ]; platforms = platforms.linux; mainProgram = "monado-cli"; }; diff --git a/pkgs/by-name/ps/psimd/package.nix b/pkgs/by-name/ps/psimd/package.nix new file mode 100644 index 0000000000000..82a5be2867ccb --- /dev/null +++ b/pkgs/by-name/ps/psimd/package.nix @@ -0,0 +1,28 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation { + pname = "psimd"; + version = "0-stable-2020-06-17"; + + src = fetchFromGitHub { + owner = "Maratyszcza"; + repo = "psimd"; + rev = "072586a71b55b7f8c584153d223e95687148a900"; + hash = "sha256-lV+VZi2b4SQlRYrhKx9Dxc6HlDEFz3newvcBjTekupo="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = { + description = "Portable 128-bit SIMD intrinsics"; + homepage = "https://github.com/Maratyszcza/psimd"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ pandapip1 tmayoff ]; + }; +} diff --git a/pkgs/by-name/xl/xlink-luxonis/0001-allow-setting-libusb-paths.patch b/pkgs/by-name/xl/xlink-luxonis/0001-allow-setting-libusb-paths.patch new file mode 100644 index 0000000000000..3c1c7d7499fef --- /dev/null +++ b/pkgs/by-name/xl/xlink-luxonis/0001-allow-setting-libusb-paths.patch @@ -0,0 +1,15 @@ +diff --git a/XLink.cmake b/XLink.cmake +index 8d55186..3a65233 100644 +--- a/XLink.cmake ++++ b/XLink.cmake +@@ -19,8 +19,8 @@ if(WIN32) + else() + find_package(Threads REQUIRED) + +- find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES "include" "libusb" "libusb-1.0") +- find_library(LIBUSB_LIBRARY NAMES usb-1.0 PATH_SUFFIXES "lib") ++ set(LIBUSB_INCLUDE_DIR "@LIBUSB_INCLUDE_DIR@") ++ set(LIBUSB_LIBRARY "@LIBUSB_LIBRARY@") + + if(NOT LIBUSB_INCLUDE_DIR OR NOT LIBUSB_LIBRARY) + message(FATAL_ERROR "libusb is required") diff --git a/pkgs/by-name/xl/xlink-luxonis/package.nix b/pkgs/by-name/xl/xlink-luxonis/package.nix new file mode 100644 index 0000000000000..12ba76d75bd3e --- /dev/null +++ b/pkgs/by-name/xl/xlink-luxonis/package.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + libusb1, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "xlink-luxonis"; + version = "2020.2"; + + src = fetchFromGitHub { + owner = "luxonis"; + repo = "xlink"; + rev = "refs/tags/luxonis-${finalAttrs.version}"; + hash = "sha256-3jP0Z23M78xyY3CVMYtg5D96klZp0stae850SPqqmdE="; + }; + + # Patches adapted from https://github.com/luxonis/depthai-core/issues/447#issuecomment-1164015416 + patches = [ ./0001-allow-setting-libusb-paths.patch ]; + + postPatch = '' + sed -i "s|@LIBUSB_INCLUDE_DIR@|${libusb1.dev}/include/libusb-1.0|" XLink.cmake + sed -i "s|@LIBUSB_LIBRARY@|${libusb1}/lib/libusb-1.0.so|" XLink.cmake + ''; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + libusb1 + ]; + + cmakeFlags = [ + (lib.cmakeBool "HUNTER_ENABLED" false) + (lib.cmakeBool "XLINK_LIBUSB_SYSTEM" true) + ]; + + meta = { + description = "A cross-platform library for communicating with devices over various physical links [Luxonis fork]"; + homepage = "https://github.com/luxonis/XLink"; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ pandapip1 tmayoff ]; + }; +})