Resolve "Упаковать FreeCAD / freecadcmd" #29
5 changed files with 102 additions and 17 deletions
31
flake.nix
31
flake.nix
|
@ -22,6 +22,13 @@
|
||||||
# pkgs = nixpkgs.legacyPackages.${system}.extend overlay;
|
# pkgs = nixpkgs.legacyPackages.${system}.extend overlay;
|
||||||
ros = ros-flake.legacyPackages.${system};
|
ros = ros-flake.legacyPackages.${system};
|
||||||
|
|
||||||
|
# single source for Robossembler Framework packages
|
||||||
|
rbsFrameworkSrc = pkgs.fetchgit {
|
||||||
|
url = "https://gitlab.com/robossembler/framework";
|
||||||
|
hash = "sha256-K6vnCQn129TWiMEKe81eBx/1H6PaIriCnkHGRwL8fg0=";
|
||||||
|
rev = "e8bb59124d56c5aee0180b4c7d5c7bfeec9cb1ea";
|
||||||
|
};
|
||||||
|
|
||||||
pkgs = import nixpkgs { inherit system; overlays = [ overlay gazebo.overlays.default ]; };
|
pkgs = import nixpkgs { inherit system; overlays = [ overlay gazebo.overlays.default ]; };
|
||||||
|
|
||||||
overlay = final: prev: {
|
overlay = final: prev: {
|
||||||
|
@ -32,7 +39,7 @@
|
||||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||||
(
|
(
|
||||||
python-final: python-prev: {
|
python-final: python-prev: {
|
||||||
iopath = python-prev.iopath.overridePythonAttrs (oldAttrs: {
|
iopath = python-prev.iopath.overridePythonAttrs (oldAttrs: {
|
||||||
version = "unstable";
|
version = "unstable";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "facebookresearch";
|
owner = "facebookresearch";
|
||||||
|
@ -110,14 +117,11 @@
|
||||||
"-DWITH_INSTALL_PORTABLE=ON"
|
"-DWITH_INSTALL_PORTABLE=ON"
|
||||||
];
|
];
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/lib/python${pkgs.python3.pythonVersion}/site-packages
|
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
mv $out/bpy $out/lib/python${pkgs.python3.pythonVersion}/site-packages/
|
mkdir -p $out/lib/python${pkgs.python3.pythonVersion}/site-packages
|
||||||
|
ln -s $out/bpy $out/lib/python${pkgs.python3.pythonVersion}/site-packages/bpy
|
||||||
echo ${pkgs.python3} >> $out/nix-support/propagated-build-inputs
|
echo ${pkgs.python3} >> $out/nix-support/propagated-build-inputs
|
||||||
'';
|
'';
|
||||||
postFixup = ''
|
|
||||||
buildPythonPath $out/lib/python${pkgs.python3.pythonVersion}/site-packages
|
|
||||||
'';
|
|
||||||
});
|
});
|
||||||
bpy-wheel = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy-wheel { };
|
bpy-wheel = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy-wheel { };
|
||||||
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
||||||
|
@ -132,7 +136,10 @@
|
||||||
ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { };
|
ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { };
|
||||||
megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; };
|
megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; };
|
||||||
spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; };
|
spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; };
|
||||||
rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { inherit bpy-wheel; };
|
rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { bpy = bpy-lib; inherit rbsFrameworkSrc; };
|
||||||
|
rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { inherit freecad-py; inherit rbsFrameworkSrc; };
|
||||||
|
freecad-py = pkgs.python3Packages.toPythonModule (pkgs.callPackage ./pkgs/misc/freecad-lib { });
|
||||||
|
bpy-lib = pkgs.python3Packages.toPythonModule bpy;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
@ -145,7 +152,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
inherit mayo pysdf fstl unified-planning test-script blender bpy bpy-wheel rcg-pipeline;
|
inherit mayo pysdf fstl unified-planning test-script blender bpy bpy-wheel rcg-pipeline freecad-py bpy-lib;
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.ci = pkgs.mkShell { buildInputs = [ pkgs.jq ]; };
|
devShells.ci = pkgs.mkShell { buildInputs = [ pkgs.jq ]; };
|
||||||
|
@ -215,10 +222,16 @@
|
||||||
scipy
|
scipy
|
||||||
spatialmath
|
spatialmath
|
||||||
rcg-pipeline
|
rcg-pipeline
|
||||||
|
rbs-workbench
|
||||||
|
ledger
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
pkgs.mkShell {
|
pkgs.mkShell {
|
||||||
packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad mayo pkgs.bashInteractive ];
|
packages = with pkgs; [
|
||||||
|
freecad
|
||||||
|
mayo
|
||||||
|
bashInteractive
|
||||||
|
] ++ [ (pkgs.python3.withPackages my-python-packages) ];
|
||||||
buildInputs = [ ];
|
buildInputs = [ ];
|
||||||
|
|
||||||
# Run when the shell is started up
|
# Run when the shell is started up
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ buildPythonPackage
|
||||||
|
, fetchgit
|
||||||
|
, python3Packages
|
||||||
|
, lib
|
||||||
|
, autoPatchelfHook
|
||||||
|
, pythonImportsCheckHook
|
||||||
|
, config
|
||||||
|
, setuptools
|
||||||
|
, freecad-py
|
||||||
|
, pytestCheckHook
|
||||||
|
, toPythonModule
|
||||||
|
, python
|
||||||
|
, rbsFrameworkSrc
|
||||||
|
, ... }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
name = "freecad.robossembler";
|
||||||
|
version = "1.0.0";
|
||||||
|
format = "setuptools";
|
||||||
|
|
||||||
|
src = rbsFrameworkSrc;
|
||||||
|
|
||||||
|
sourceRoot = "${src.name}/freecad_workbench";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [ freecad-py ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
freecad-py
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "freecad.robossembler" ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Robossembler CG Pipeline Python Module";
|
||||||
|
homepage = "https://gitlab.com/robossembler/framework/rcg_pipeline";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,7 +8,8 @@
|
||||||
, cudaSupport ? config.cudaSupport
|
, cudaSupport ? config.cudaSupport
|
||||||
, numpy
|
, numpy
|
||||||
, setuptools
|
, setuptools
|
||||||
, bpy-wheel
|
, bpy
|
||||||
|
, rbsFrameworkSrc
|
||||||
, ... }:
|
, ... }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
|
@ -16,13 +17,8 @@ buildPythonPackage rec {
|
||||||
version = "1.0.0";
|
version = "1.0.0";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
# src = /home/movefasta/Documents/robossembler/framework;
|
src = rbsFrameworkSrc;
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://gitlab.com/robossembler/framework";
|
|
||||||
hash = "sha256-iLPphGbIGf7IRdedBSC2yJ2M3ttsHATvtOLot/04AZU=";
|
|
||||||
rev = "8268db0dec793bfa42d4fcba24c7d442938b7a25";
|
|
||||||
};
|
|
||||||
sourceRoot = "${src.name}/rcg_pipeline";
|
sourceRoot = "${src.name}/rcg_pipeline";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -31,9 +27,12 @@ buildPythonPackage rec {
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
numpy
|
numpy
|
||||||
bpy-wheel
|
bpy
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# TODO - see later, pyproject.toml duntime deps check doesnt work
|
||||||
|
dontCheckRuntimeDeps = true;
|
||||||
|
|
||||||
pythonImportsCheck = [ "rcg_pipeline" ];
|
pythonImportsCheck = [ "rcg_pipeline" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
14
pkgs/misc/bpy-lib/default.nix
Normal file
14
pkgs/misc/bpy-lib/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ stdenv
|
||||||
|
, bpy
|
||||||
|
, python3
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
inherit (bpy) version;
|
||||||
|
pname = "bpy-lib";
|
||||||
|
src = bpy;
|
||||||
|
buildInputs = [ python3 ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib/python${python3.pythonVersion}
|
||||||
|
ln -s ${bpy}/bpy $out/lib/python${python3.pythonVersion}/site-packages
|
||||||
|
'';
|
||||||
|
}
|
14
pkgs/misc/freecad-lib/default.nix
Normal file
14
pkgs/misc/freecad-lib/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ stdenv
|
||||||
|
, freecad
|
||||||
|
, python3
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
inherit (freecad) version;
|
||||||
|
pname = "freecad-lib";
|
||||||
|
src = freecad;
|
||||||
|
buildInputs = [ python3 ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib/python${python3.pythonVersion}
|
||||||
|
ln -s ${freecad}/lib $out/lib/python${python3.pythonVersion}/site-packages
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue