68 lines
1.6 KiB
Nix
68 lines
1.6 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitHub
|
|
, libusb1
|
|
, abseil-cpp
|
|
, flatbuffers
|
|
, xxd
|
|
}:
|
|
|
|
let
|
|
flatbuffers_1_12 = flatbuffers.overrideAttrs (oldAttrs: rec {
|
|
version = "1.12.0";
|
|
NIX_CFLAGS_COMPILE = "-Wno-error=class-memaccess -Wno-error=maybe-uninitialized";
|
|
cmakeFlags = (oldAttrs.cmakeFlags or []) ++ ["-DFLATBUFFERS_BUILD_SHAREDLIB=ON"];
|
|
NIX_CXXSTDLIB_COMPILE = "-std=c++17";
|
|
configureFlags = (oldAttrs.configureFlags or []) ++ ["--enable-shared"];
|
|
src = fetchFromGitHub {
|
|
owner = "google";
|
|
repo = "flatbuffers";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-L1B5Y/c897Jg9fGwT2J3+vaXsZ+lfXnskp8Gto1p/Tg=";
|
|
};
|
|
});
|
|
|
|
in stdenv.mkDerivation rec {
|
|
pname = "libedgetpu";
|
|
version = "grouper";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "google-coral";
|
|
repo = pname;
|
|
rev = "release-${version}";
|
|
sha256 = "sha256-73hwItimf88Iqnb40lk4ul/PzmCNIfdt6Afi+xjNiBE=";
|
|
};
|
|
|
|
patches = [ ./libedgetpu-stddef.diff ];
|
|
|
|
makeFlags = ["-f" "makefile_build/Makefile" "libedgetpu" ];
|
|
|
|
buildInputs = [
|
|
libusb1
|
|
abseil-cpp
|
|
flatbuffers_1_12
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
xxd
|
|
];
|
|
|
|
NIX_CXXSTDLIB_COMPILE = "-std=c++17";
|
|
|
|
TFROOT = "${fetchFromGitHub {
|
|
owner = "tensorflow";
|
|
repo = "tensorflow";
|
|
rev = "v2.7.4";
|
|
sha256 = "sha256-liDbUAdaVllB0b74aBeqNxkYNu/zPy7k3CevzRF5dk0=";
|
|
}}";
|
|
|
|
enableParallelBuilding = false;
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/lib
|
|
cp out/direct/k8/libedgetpu.so.1.0 $out/lib
|
|
ln -s $out/lib/libedgetpu.so.1.0 $out/lib/libedgetpu.so.1
|
|
mkdir -p $out/lib/udev/rules.d
|
|
cp debian/edgetpu-accelerator.rules $out/lib/udev/rules.d/99-edgetpu-accelerator.rules
|
|
'';
|
|
} |