Добавлен darknet со стабильной веткой nixpkgs 22.11
This commit is contained in:
parent
0c98ffa68b
commit
e9acb90d5b
3 changed files with 137 additions and 17 deletions
26
flake.lock
generated
26
flake.lock
generated
|
@ -17,11 +17,11 @@
|
|||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"lastModified": 1676283394,
|
||||
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -32,27 +32,27 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1677021523,
|
||||
"narHash": "sha256-0EhZjJ3rq8ZTTJ6Trrf/9hYtnIry0OsyY2NKoQoOS5Q=",
|
||||
"lastModified": 1669833724,
|
||||
"narHash": "sha256-/HEZNyGbnQecrgJnfE8d0WC5c1xuPSD2LUpB6YXlg4c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5a5adc2ad7009851d7d0fc26311e42a93b171d2e",
|
||||
"rev": "4d2b37a84fad1091b9de401eb450aae66f1a741e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"ref": "22.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1674641431,
|
||||
"narHash": "sha256-qfo19qVZBP4qn5M5gXc/h1MDgAtPA5VxJm9s8RUAkVk=",
|
||||
"lastModified": 1678244258,
|
||||
"narHash": "sha256-iecrLqFb1QDgBKmC0h065ZBV6CZsigcz+1aHCv6rvfg=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b97ad7b4330aacda9b2343396eb3df8a853b4fc",
|
||||
"rev": "61852b7faa8b47aad422adca0fea90fe007e9ead",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -75,11 +75,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1677031957,
|
||||
"narHash": "sha256-Fz8f3Lfgg0rcCtPxeUn+Ng6jomuJQukph7e4EGEwob8=",
|
||||
"lastModified": 1678246785,
|
||||
"narHash": "sha256-ma+ToZZddLpGed7pPBfG0CFYjP66QU/m0Yn4JM1Ezl4=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nix-ros-overlay",
|
||||
"rev": "ca325a145772dfce52a23359996a47899f252c37",
|
||||
"rev": "155fc6ac233c64eb9fa07a1a81d6c6726441271c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
21
flake.nix
21
flake.nix
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
description = "Robossembler Development Environments on Nix";
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/22.11";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=staging";
|
||||
};
|
||||
|
@ -24,7 +24,7 @@
|
|||
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
|
||||
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
||||
mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { };
|
||||
# darknet = pkgs.callPackage ./darknet.nix { };
|
||||
darknet = pkgs.callPackage ./pkgs/misc/darknet { };
|
||||
fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { };
|
||||
in
|
||||
{
|
||||
|
@ -38,7 +38,7 @@
|
|||
};
|
||||
|
||||
packages = {
|
||||
inherit mayo blender bpy pysdf fstl;
|
||||
inherit mayo blender bpy pysdf fstl darknet;
|
||||
gazebo = ros.humble.gazebo;
|
||||
};
|
||||
|
||||
|
@ -78,9 +78,22 @@
|
|||
RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
|
||||
};
|
||||
|
||||
devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf ]; };
|
||||
devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf pkgs.freecad ]; };
|
||||
devShells.mayo = pkgs.mkShell { packages = [ mayo ]; };
|
||||
devShells.blender = pkgs.mkShell { packages = [ blender ]; };
|
||||
devShells.up =
|
||||
let
|
||||
my-python-packages = p: with p; [
|
||||
# python-gitlab
|
||||
# jinja2
|
||||
# unified-planning
|
||||
# tamer
|
||||
blenderproc
|
||||
];
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = [ (pkgs.python3.withPackages my-python-packages) ];
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
107
pkgs/misc/darknet/default.nix
Normal file
107
pkgs/misc/darknet/default.nix
Normal file
|
@ -0,0 +1,107 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, cudatoolkit
|
||||
, opencv4
|
||||
, cudaPackages
|
||||
, addOpenGLRunpath
|
||||
, enableCuda ? false
|
||||
, cudaSupport ? true
|
||||
, linkFarm
|
||||
, symlinkJoin
|
||||
, autoPatchelfHook
|
||||
}:
|
||||
let
|
||||
cudaStub = linkFarm "cuda-stub" [{
|
||||
name = "libcuda.so.1";
|
||||
path = "${cudatoolkit}/lib/stubs/libcuda.so";
|
||||
}];
|
||||
|
||||
cudaEnv = symlinkJoin {
|
||||
name = "darknet-cuda-env";
|
||||
paths = with cudaPackages; [];
|
||||
postBuild = ''
|
||||
ln -s ${addOpenGLRunpath.driverLink}/lib/libcuda.so $out/lib
|
||||
ln -s lib $out/lib64
|
||||
'';
|
||||
};
|
||||
|
||||
cuda-opencv = opencv4.override {
|
||||
enableCuda = true;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "darknet";
|
||||
version = "unstable";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AlexeyAB";
|
||||
repo = "darknet";
|
||||
rev = "0faed3e60e52f742bbef43b83f6be51dd30f373e";
|
||||
hash = "sha256-6qY1QG7Pq/d5W+BvnMD2pFdBVWdvmCP0spUAjyGWB8M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
opencv4
|
||||
autoPatchelfHook
|
||||
cudaPackages.autoAddOpenGLRunpathHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cudaPackages.cudnn
|
||||
cudatoolkit
|
||||
cudaEnv
|
||||
];
|
||||
|
||||
|
||||
# indefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30
|
||||
|
||||
# LD_LIBRARY_PATH = lib.makeLibraryPath (nativeBuildInputs ++ [ cudaStub ]);
|
||||
|
||||
# shellHook = ''
|
||||
# export ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61
|
||||
# export LDFLAGS+= `pkg-config --libs opencv4 2> /dev/null || pkg-config --libs opencv` -lstdc++
|
||||
# '';
|
||||
|
||||
cmakeFlags =
|
||||
(lib.optionals enableCuda [ "CUDA_PATH=${cudatoolkit}" ]) ++ [
|
||||
"GPU=1"
|
||||
"CUDNN=1"
|
||||
"OPENCV=1"
|
||||
"AVX=1"
|
||||
"OPENMP=1"
|
||||
"LIBSO=0"
|
||||
"ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61"
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build_release
|
||||
cd build_release
|
||||
cmake ..
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
export LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
|
||||
cmake --build . --target install --parallel 8
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp darknet $out/bin
|
||||
'';
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = true;
|
||||
|
||||
shellHook = ''
|
||||
export LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )";
|
||||
homepage = "https://github.com/AlexeyAB/darknet";
|
||||
license = with licenses; [ ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue