Initial commit

This commit is contained in:
2022-11-29 14:54:11 -05:00
commit 2e2bc89d55
12 changed files with 824 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
diff --git a/setup.py b/setup.py
index 341ab5f2..e649e43e 100644
--- a/setup.py
+++ b/setup.py
@@ -169,11 +169,7 @@ class CMakeBuild(build_ext):
env['_PYTHON_HOST_PLATFORM'] = re.sub(r'macosx-[0-9]+\.[0-9]+-(.+)', r'macosx-10.9-\1', util.get_platform())
# Specify how many threads to use when building, depending on available memory
- max_threads = multiprocessing.cpu_count()
- num_threads = (freeMemory // 2000)
- num_threads = min(num_threads, max_threads)
- if num_threads <= 0:
- num_threads = 1
+ num_threads = int(os.environ['NIX_BUILD_CORES'])
build_args += ['--', '-j' + str(num_threads)]
cmake_args += ['-DHUNTER_JOBS_NUMBER=' + str(num_threads)]
@@ -187,8 +183,8 @@ class CMakeBuild(build_ext):
os.makedirs(self.build_temp)
# Configure and build
- subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
- subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp, env=env)
+ subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, env=env)
+ subprocess.check_call(['cmake', '--build', '.'] + build_args, env=env)
setup(
name=MODULE_NAME,

View File

@@ -0,0 +1,31 @@
diff --git a/depthai-core/src/utility/Resources.cpp b/depthai-core/src/utility/Resources.cpp
index bca4dbde..e55436ea 100644
--- a/depthai-core/src/utility/Resources.cpp
+++ b/depthai-core/src/utility/Resources.cpp
@@ -255,9 +255,14 @@ std::function<void()> getLazyTarXzFunction(MTX& mtx, CV& cv, BOOL& ready, PATH c
return [&mtx, &cv, &ready, cmrcPath, &resourceList, &resourceMap] {
using namespace std::chrono;
- // Get binaries from internal sources
- auto fs = cmrc::depthai::get_filesystem();
- auto tarXz = fs.open(cmrcPath);
+ std::ifstream file(cmrcPath, std::ios::binary | std::ios::ate);
+ auto size = file.tellg();
+ file.seekg(0, std::ios::beg);
+ std::vector<char> buffer(size);
+ if (!file.read(buffer.data(), size))
+ {
+ throw std::runtime_error(std::string("Could not open file for reading: \"") + cmrcPath + '"');
+ }
auto t1 = steady_clock::now();
@@ -265,7 +270,7 @@ std::function<void()> getLazyTarXzFunction(MTX& mtx, CV& cv, BOOL& ready, PATH c
struct archive* a = archive_read_new();
archive_read_support_filter_xz(a);
archive_read_support_format_tar(a);
- int r = archive_read_open_memory(a, tarXz.begin(), tarXz.size());
+ int r = archive_read_open_memory(a, buffer.data(), size);
assert(r == ARCHIVE_OK);
auto t2 = steady_clock::now();

71
patches/no-download.patch Normal file
View File

@@ -0,0 +1,71 @@
--- a/depthai-core/CMakeLists.txt
+++ b/depthai-core/CMakeLists.txt
@@ -276,16 +276,12 @@ 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)
@@ -293,47 +289,9 @@ if($ENV{CI})
endif()
if(DEPTHAI_BINARIES_RESOURCE_COMPILE)
-
- # Then get the Depthai device side binaries (local or download)
- if(DEPTHAI_CMD_PATH OR DEPTHAI_USB2_CMD_PATH OR DEPTHAI_USB2_PATCH_PATH)
- # Atleast 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})
-
+ 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")
message(STATUS "LIST OF RESOURCE COMPILED FILES: ${RESOURCE_COMPILED_FILES}")
# Add RC and resource compile the binares

178
patches/no-hunter.patch Normal file
View File

@@ -0,0 +1,178 @@
--- a/depthai-core/CMakeLists.txt
+++ b/depthai-core/CMakeLists.txt
@@ -113,7 +113,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 --is-inside-work-tree
@@ -292,50 +292,50 @@ if($ENV{CI})
set(DEPTHAI_BOOTLOADER_SHARED_COMMIT_HASH_ENFORCE ON)
endif()
+if(DEPTHAI_BINARIES_RESOURCE_COMPILE)
-# Then get the Depthai device side binaries (local or download)
-if(DEPTHAI_CMD_PATH OR DEPTHAI_USB2_CMD_PATH OR DEPTHAI_USB2_PATCH_PATH)
- # Atleast one of the paths is set. include binaries locally
- message(STATUS "Using local Depthai device side binaries...")
+ # Then get the Depthai device side binaries (local or download)
+ if(DEPTHAI_CMD_PATH OR DEPTHAI_USB2_CMD_PATH OR DEPTHAI_USB2_PATCH_PATH)
+ # Atleast 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
- )
+ 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
+ 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
)
-endif()
-list(APPEND RESOURCE_COMPILED_FILES ${DEPTHAI_RESOURCE_LIST})
+ list(APPEND RESOURCE_COMPILED_FILES ${DEPTHAI_BOOTLOADER_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}")
+ message(STATUS "LIST OF RESOURCE COMPILED FILES: ${RESOURCE_COMPILED_FILES}")
-if(DEPTHAI_BINARIES_RESOURCE_COMPILE)
# Add RC and resource compile the binares
include(CMakeRC)
@@ -400,11 +400,11 @@ target_link_libraries(${TARGET_CORE_NAME}
libnop
PRIVATE
Threads::Threads
- BZip2::bz2
+ BZip2::BZip2
FP16::fp16
- archive_static
+ LibArchive::LibArchive
spdlog::spdlog
- ZLIB::zlib
+ ZLIB::ZLIB
)
# Add compile definitions
@@ -559,8 +559,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")
@@ -591,7 +593,10 @@ if(DEPTHAI_INSTALL)
# Install depthai-bootloader-shared public headers
install(DIRECTORY "${DEPTHAI_BOOTLOADER_SHARED_PUBLIC_INCLUDE}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
# Install Hunter 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/depthai-core/cmake/GitCommitHash.cmake b/depthai-core/cmake/GitCommitHash.cmake
index 0b1a406..87a4c39 100644
--- a/depthai-core/cmake/GitCommitHash.cmake
+++ b/depthai-core/cmake/GitCommitHash.cmake
@@ -1,5 +1,5 @@
# for commit hash
-find_package(Git)
+# find_package(Git)
set(commit_version "unknown")
diff --git a/depthai-core/cmake/depthaiDependencies.cmake b/depthai-core/cmake/depthaiDependencies.cmake
index bbbd606..8c8387b 100644
--- a/depthai-core/cmake/depthaiDependencies.cmake
+++ b/depthai-core/cmake/depthaiDependencies.cmake
@@ -23,19 +23,19 @@ 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)

View File

@@ -0,0 +1,17 @@
diff --git a/requirements.txt b/requirements.txt
index 844614f..66c01d4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,10 +1,9 @@
numpy>=1.19; python_version < "3.7"
numpy>=1.21; python_version >= "3.7"
-opencv-contrib-python>4
blobconverter>=1.2.8
pytube>=12.1.0
depthai>=2.18.0
-PyTurboJPEG==1.6.4
+PyTurboJPEG>=1.6.4
marshmallow==3.17.0
distinctipy
xmltodict
\ No newline at end of file