diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-02-22 10:43:06 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-03-11 16:17:56 +0000 |
commit | ca1aada113c0ebda1ab8667199f6453f8e01c4fc (patch) | |
tree | 55e402280096f62eb0bc8bcad5ce6050c5a0aec7 /nixpkgs/pkgs/development/libraries/ncnn | |
parent | e4df5a52a6a6531f32626f57205356a773ac2975 (diff) | |
parent | 93883402a445ad467320925a0a5dbe43a949f25b (diff) | |
download | nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.gz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.bz2 nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.lz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.xz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.zst nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.zip |
Merge commit '93883402a445ad467320925a0a5dbe43a949f25b'
Conflicts: nixpkgs/nixos/modules/programs/ssh.nix nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix nixpkgs/pkgs/data/fonts/noto-fonts/default.nix nixpkgs/pkgs/development/go-modules/generic/default.nix nixpkgs/pkgs/development/interpreters/ruby/default.nix nixpkgs/pkgs/development/libraries/mesa/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/ncnn')
3 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/ncnn/cmakelists.patch b/nixpkgs/pkgs/development/libraries/ncnn/cmakelists.patch new file mode 100644 index 000000000000..23499a1b9922 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/ncnn/cmakelists.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 98611276..989350bb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -260,6 +260,8 @@ if(NCNN_VULKAN) + include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake") + endif() + include("${GLSLANG_TARGET_DIR}/glslangTargets.cmake") ++ include("${GLSLANG_TARGET_DIR}/SPIRV-Tools/SPIRV-ToolsTarget.cmake") ++ include("${GLSLANG_TARGET_DIR}/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake") + include("${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake") + + if (NOT TARGET glslang OR NOT TARGET SPIRV) diff --git a/nixpkgs/pkgs/development/libraries/ncnn/default.nix b/nixpkgs/pkgs/development/libraries/ncnn/default.nix new file mode 100644 index 000000000000..d53e0d9b42ea --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/ncnn/default.nix @@ -0,0 +1,50 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, vulkan-headers +, vulkan-loader +, glslang +, opencv +, protobuf +}: + +stdenv.mkDerivation rec { + pname = "ncnn"; + version = "20211208"; + + src = fetchFromGitHub { + owner = "Tencent"; + repo = pname; + rev = version; + sha256 = "1c9axrnafksnks7v5fmi6nzs0qim9n6j5kh5d0vfl3b4r22irhqr"; + }; + + patches = [ + ./cmakelists.patch + ./gpu-include.patch + ]; + + cmakeFlags = [ + "-DNCNN_CMAKE_VERBOSE=1" # Only for debugging the build + "-DNCNN_SHARED_LIB=1" + "-DNCNN_ENABLE_LTO=1" + "-DNCNN_VULKAN=1" + "-DNCNN_BUILD_EXAMPLES=0" + "-DNCNN_BUILD_TOOLS=0" + "-DNCNN_SYSTEM_GLSLANG=1" + "-DNCNN_PYTHON=0" # Should be an attribute + + "-DGLSLANG_TARGET_DIR=${glslang}/lib/cmake" + ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ vulkan-headers vulkan-loader glslang opencv protobuf ]; + + meta = with lib; { + description = "ncnn is a high-performance neural network inference framework optimized for the mobile platform"; + homepage = "https://github.com/Tencent/ncnn"; + license = licenses.bsd3; + maintainers = with maintainers; [ tilcreator ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/ncnn/gpu-include.patch b/nixpkgs/pkgs/development/libraries/ncnn/gpu-include.patch new file mode 100644 index 000000000000..8f751c769947 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/ncnn/gpu-include.patch @@ -0,0 +1,13 @@ +diff --git a/src/gpu.cpp b/src/gpu.cpp +index 51cd7f95..bf7ed828 100644 +--- a/src/gpu.cpp ++++ b/src/gpu.cpp +@@ -21,7 +21,7 @@ + #include <vulkan/vulkan.h> + + #include "glslang/SPIRV/GlslangToSpv.h" +-#include "glslang/glslang/Public/ShaderLang.h" ++#include "glslang/Public/ShaderLang.h" + + #include "command.h" + #include "layer.h" |