Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
123 changes: 123 additions & 0 deletions pkgs/by-name/de/depthai-core/0001-maincmake.patch
Original file line number Diff line number Diff line change
@@ -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}")
13 changes: 13 additions & 0 deletions pkgs/by-name/de/depthai-core/bootloader.nix
Original file line number Diff line number Diff line change
@@ -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=";
}
85 changes: 85 additions & 0 deletions pkgs/by-name/de/depthai-core/deps.patch
Original file line number Diff line number Diff line change
@@ -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})
13 changes: 13 additions & 0 deletions pkgs/by-name/de/depthai-core/firmware.nix
Original file line number Diff line number Diff line change
@@ -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=";
}
76 changes: 76 additions & 0 deletions pkgs/by-name/de/depthai-core/package.nix
Original file line number Diff line number Diff line change
@@ -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 ];
};
})
36 changes: 36 additions & 0 deletions pkgs/by-name/fp/fp16-luxonis/package.nix
Original file line number Diff line number Diff line change
@@ -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 ];
};
}
Loading