add bpy module wheel
This commit is contained in:
parent
13276f1cfb
commit
0429b29a64
3 changed files with 112 additions and 182 deletions
111
flake.lock
generated
111
flake.lock
generated
|
@ -5,11 +5,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -19,15 +19,12 @@
|
|||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"lastModified": 1601282935,
|
||||
"narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"rev": "588973065fce51f4763287f0fda87a174d78bf48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -36,13 +33,66 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1685518550,
|
||||
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mach-nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pypi-deps-db": "pypi-deps-db"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1623312259,
|
||||
"narHash": "sha256-RkqyGWezwVOII2LTJFKVH6UXjSXybMucbuyOjFWiSdE=",
|
||||
"owner": "DavHau",
|
||||
"repo": "mach-nix",
|
||||
"rev": "ca166a5062e26f6852ff0a6e854fd7563a48afe4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "mach-nix",
|
||||
"ref": "conda-beta",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1685043182,
|
||||
"narHash": "sha256-eL1j47UUPVRI8itz/4EUah9cVtZtuII6m/jSE+mBn7A=",
|
||||
"lastModified": 1622797669,
|
||||
"narHash": "sha256-xIyWeoYExzF0KNaKcqfxEX58fN4JTIQxTJWbsAujllc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba5d0dc56bddf881ca7bb62266351a9692a8d157",
|
||||
"rev": "1ca6b0a0cc38dbba0441202535c92841dd39d1ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1690924695,
|
||||
"narHash": "sha256-1yshNzds/qJztMoJk0Sa2xhKwSLaOAuepR6ABWbrgRU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7282565b1ca9ba7b293b899411e70167f4a7c1ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -52,13 +102,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681059042,
|
||||
"narHash": "sha256-f6HH1U/+YbM7vjnOOydPJt/Ia7Rn+ApCOryFNb3eGbk=",
|
||||
"lastModified": 1687112859,
|
||||
"narHash": "sha256-oJhMiKnJeb47gTxyyIgAJf+aWC4IbVmG3wgL3ZVJ0Eg=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "28aa66a5d7d196573aed06968b2e37ab98875511",
|
||||
"rev": "f68a0d0fd7539d93c7454989f71fd1c824f3b46f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -68,24 +118,41 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pypi-deps-db": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622970040,
|
||||
"narHash": "sha256-u//RFnae/XMIhoy83G2uH2Qu/1LiUhVCdwwY1xj4Ufs=",
|
||||
"owner": "DavHau",
|
||||
"repo": "pypi-deps-db",
|
||||
"rev": "be6591698c67a86a69c81fef72167e38d038a9fc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "DavHau",
|
||||
"repo": "pypi-deps-db",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"mach-nix": "mach-nix",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"ros-flake": "ros-flake"
|
||||
}
|
||||
},
|
||||
"ros-flake": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1684512309,
|
||||
"narHash": "sha256-tIfBfgVqYWJycuTMo03NH4TS29f9FGCfz1ubYKJyD2s=",
|
||||
"lastModified": 1690347395,
|
||||
"narHash": "sha256-FUAvjcpVyDMZ2zCqUrpGlLtRZlF3PqW2alpyi82bMa8=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nix-ros-overlay",
|
||||
"rev": "24dbaec76c6e9caf2a22ffd63ffd8b15667bd7e5",
|
||||
"rev": "3205dadcff4e1fbc779ce3962bafcf3e9f3e931b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -99,6 +99,7 @@
|
|||
devShells.all = pkgs.mkShell {
|
||||
packages = [ mayo blender bpy pysdf fstl darknet slic3r ];
|
||||
};
|
||||
|
||||
devShells.rbs-framework =
|
||||
let
|
||||
my-python-packages = p: with p; [
|
||||
|
@ -111,7 +112,13 @@
|
|||
];
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad blender mayo ];
|
||||
packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad mayo ];
|
||||
buildInputs = [ ];
|
||||
|
||||
# Run when the shell is started up
|
||||
shellHook = ''
|
||||
${pkgs.python3}/bin/python --version
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,165 +1,21 @@
|
|||
{ config, stdenv, lib, fetchurl, fetchzip, boost, cmake, ffmpeg, gettext, glew
|
||||
, ilmbase, libXi, libX11, libXext, libXrender
|
||||
, libjpeg, libpng, libsamplerate, libsndfile, openexr
|
||||
, libtiff, libGLU, libGL, freeglut, openal, opencolorio, openimagedenoise, openimageio2, python310Packages
|
||||
, openvdb, libXxf86vm, tbb, alembic
|
||||
, zlib, zstd, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
|
||||
, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
|
||||
, hipSupport ? false, hip # comes with a significantly larger closure size
|
||||
, colladaSupport ? true, opencollada
|
||||
, makeWrapper
|
||||
, pugixml, llvmPackages, SDL
|
||||
, potrace
|
||||
, openxr-loader
|
||||
, embree, gmp, libharu
|
||||
, libepoxy, brotli
|
||||
, buildPythonPackage, fetchPypi, pkgs, libwebp, lzma, clang, c-blosc
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
python = python310Packages.python;
|
||||
optix = fetchzip {
|
||||
# url taken from the archlinux blender PKGBUILD
|
||||
url = "https://developer.download.nvidia.com/redist/optix/v7.3/OptiX-7.3.0-Include.zip";
|
||||
sha256 = "0max1j4822mchj0xpz9lqzh91zkmvsn4py0r174cvqfz8z8ykjk8";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
{ buildPythonPackage, fetchPypi, python3Packages, lib, autoPatchelfHook, blender, config, cudaSupport ? config.cudaSupport }:
|
||||
buildPythonPackage rec {
|
||||
format = "wheel";
|
||||
pname = "bpy";
|
||||
version = "3.4.1";
|
||||
version = "3.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.blender.org/source/blender-${version}.tar.xz";
|
||||
hash = "sha256-JHxMEignDJAQ9HIcmFy1tiirUKvPnyZ4Ywc3FC7rkcM=";
|
||||
src = fetchPypi rec {
|
||||
inherit pname version format;
|
||||
sha256 = "sha256-7eLJWs54SPT1oHWn2Mw6nmQ8M19FlsPBUIfZPHrl9Wo=";
|
||||
dist = python;
|
||||
python = "cp310";
|
||||
abi = "cp310";
|
||||
platform = "manylinux_2_28_x86_64";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake makeWrapper python310Packages.wrapPython llvmPackages.llvm.dev ]
|
||||
++ optionals cudaSupport [ addOpenGLRunpath ];
|
||||
buildInputs =
|
||||
[ boost ffmpeg gettext glew ilmbase
|
||||
freetype libjpeg libpng libsamplerate libsndfile libtiff
|
||||
opencolorio openexr openimagedenoise openimageio2 python zlib pkgs.zstd.dev fftw jemalloc
|
||||
pkgs.alembic
|
||||
(opensubdiv.override { inherit cudaSupport; })
|
||||
tbb
|
||||
embree
|
||||
gmp
|
||||
pugixml
|
||||
potrace
|
||||
libharu
|
||||
libepoxy
|
||||
brotli
|
||||
llvmPackages.openmp SDL
|
||||
clang
|
||||
libwebp
|
||||
lzma
|
||||
openvdb c-blosc
|
||||
]
|
||||
++ optional cudaSupport cudaPackages.cudatoolkit
|
||||
++ optional colladaSupport opencollada;
|
||||
pythonPath = with python310Packages; [ numpy requests ];
|
||||
|
||||
postPatch = ''
|
||||
# allow usage of dynamically linked embree
|
||||
rm build_files/cmake/Modules/FindEmbree.cmake
|
||||
'' +
|
||||
(if hipSupport then ''
|
||||
substituteInPlace extern/hipew/src/hipew.c --replace '"/opt/rocm/hip/lib/libamdhip64.so"' '"${hip}/lib/libamdhip64.so"'
|
||||
substituteInPlace extern/hipew/src/hipew.c --replace '"opt/rocm/hip/bin"' '"${hip}/bin"'
|
||||
'' else "");
|
||||
|
||||
output = [ "out" ];
|
||||
|
||||
# TODO WITH_MEM_JEMALLOC=ON > cannot allocate memory in static TLS block
|
||||
# TODO WITH_CYCLES_DEVICE_OPTIX
|
||||
# TODO NANOVDB_INCLUDE_DIR
|
||||
# TODO _CLANG_LIBRARIES CLANG_INCLUDE_DIR
|
||||
# TODO GIT_EXECUTABLE
|
||||
cmakeFlags =
|
||||
[
|
||||
"-DWITH_ALEMBIC=ON"
|
||||
"-DWITH_USD=OFF"
|
||||
"-DWITH_MOD_OCEANSIM=ON"
|
||||
"-DWITH_CODEC_FFMPEG=ON"
|
||||
"-DWITH_CODEC_SNDFILE=ON"
|
||||
"-DWITH_FFTW3=ON"
|
||||
"-DWITH_OPENCOLORIO=ON"
|
||||
"-DWITH_OPENSUBDIV=ON"
|
||||
"-DPYTHON_LIBRARY=${python.libPrefix}"
|
||||
"-DPYTHON_LIBPATH=${python}/lib"
|
||||
"-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
|
||||
"-DPYTHON_VERSION=${python.pythonVersion}"
|
||||
"-DWITH_INSTALL_PORTABLE=ON"
|
||||
"-DWITH_PYTHON_INSTALL=OFF"
|
||||
"-DWITH_AUDASPACE=OFF"
|
||||
"-DWITH_PYTHON_MODULE=ON"
|
||||
"-DWITH_MEM_JEMALLOC=OFF"
|
||||
"-DWITH_PYTHON_INSTALL_NUMPY=OFF"
|
||||
"-DPYTHON_NUMPY_PATH=${python310Packages.numpy}/${python.sitePackages}"
|
||||
"-DPYTHON_NUMPY_INCLUDE_DIRS=${python310Packages.numpy}/${python.sitePackages}/numpy/core/include"
|
||||
"-DWITH_PYTHON_INSTALL_REQUESTS=OFF"
|
||||
"-DWITH_OPENVDB=ON"
|
||||
"-DWITH_OPENVDB_BLOSC=ON"
|
||||
"-DWITH_TBB=ON"
|
||||
"-DWITH_IMAGE_HDR=ON"
|
||||
"-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
|
||||
"-DWITH_CYCLES_EMBREE=ON"
|
||||
"WITH_CYCLES_PATH_GUIDING=OFF"
|
||||
"-DWITH_DOC_MANPAGE=OFF"
|
||||
"-DWITH_FREESTYLE=OFF"
|
||||
"-DWITH_GHOST_X11=OFF"
|
||||
"-DWITH_GHOST_WAYLAND=OFF"
|
||||
"-DWITH_HARU=OFF"
|
||||
"-DWITH_IMAGE_DDS=OFF"
|
||||
"-DWITH_IMAGE_WEBP=ON"
|
||||
"-DWITH_IMAGE_HDR=ON"
|
||||
"-DWITH_IMAGE_OPENEXR=ON"
|
||||
"-DWITH_IMAGE_OPENJPEG=OFF"
|
||||
"-DWITH_IMAGE_TIFF=ON"
|
||||
"-DWITH_INPUT_NDOF=OFF"
|
||||
"-DWITH_INTERNATIONAL=OFF"
|
||||
"-DWITH_JACK=OFF"
|
||||
"-DWITH_PULSEAUDIO=OFF"
|
||||
"-DWITH_LZMA=ON"
|
||||
"-DWITH_LZO=OFF"
|
||||
"-DWITH_LLVM=ON"
|
||||
"-DWITH_CLANG=ON"
|
||||
|
||||
"-DWITH_OPENMP=ON"
|
||||
"-DWITH_QUADRIFLOW=OFF"
|
||||
"-DWITH_SDL=OFF"
|
||||
"-DWITH_CXX11_ABI=ON"
|
||||
"-DWITH_XR_OPENXR=OFF"
|
||||
"-DWITH_LINKER_LLD=ON"
|
||||
]
|
||||
# Clang doesn't support "-export-dynamic"
|
||||
++ optionals cudaSupport [
|
||||
"-DWITH_CYCLES_CUDA=ON"
|
||||
"-DWITH_CYCLES_CUDA_BINARIES=ON"
|
||||
"-DCUDA_NVCC_FLAGS=-std=c++14"
|
||||
"-DWITH_CYCLES_DEVICE_OPTIX=ON"
|
||||
"-DOPTIX_ROOT_DIR=${optix}"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
|
||||
|
||||
# Since some dependencies are built with gcc 6, we need gcc 6's
|
||||
# libstdc++ in our RPATH. Sigh.
|
||||
NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
|
||||
#"${stdenv.lib.makeLibraryPath [ gnome3.libpeas gnome3.gtksourceview ]}"
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib/python3.10/site-packages
|
||||
mkdir -p $out/nix-support
|
||||
mv $out/bpy $out/lib/python3.10/site-packages/
|
||||
echo ${python} >> $out/nix-support/propagated-build-inputs
|
||||
'';
|
||||
postFixup = ''
|
||||
buildPythonPath $out/lib/python3.10/site-packages
|
||||
'';
|
||||
propagatedBuildInputs = with python3Packages; [ requests numpy cython zstandard ];
|
||||
buildInputs = blender.buildInputs;
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
autoPatchelfIgnoreMissingDeps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "3D Creation/Animation/Publishing System";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue