Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions pkgs/by-name/cq/cq-editor/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
lib,
fetchFromGitHub,
libsForQt5,
makeDesktopItem,
nix-update-script,
python3Packages,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "cq-editor";
version = "0.6.2";
pyproject = true;

src = fetchFromGitHub {
owner = "CadQuery";
repo = "cq-editor";
rev = finalAttrs.version;
hash = "sha256-8Kj8WmzlchDbd7H9MJatUHsevJf1NSQjshor+vrdhwg=";
};

build-system = [ python3Packages.setuptools ];

nativeBuildInputs = [ libsForQt5.wrapQtAppsHook ];

dependencies = [
python3Packages.cadquery
python3Packages.logbook
python3Packages.path
python3Packages.pyqt5
python3Packages.pyqtgraph
python3Packages.qtawesome
python3Packages.qtconsole
python3Packages.requests
];

pythonRelaxDeps = [
"qtawesome"
"qtconsole"
];

# cq-editor crashes when trying to use Wayland, so force xcb:
# https://github.com/CadQuery/CQ-editor/issues/266
qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];

postFixup = ''
wrapQtApp "$out/bin/cq-editor"
'';

desktopItems = [
(makeDesktopItem {
name = "com.cadquery.CadQuery";
desktopName = "CadQuery";
icon = "cadquery";
exec = "cq-editor %f";
categories = [
"Graphics"
"3DGraphics"
"Engineering"
];
type = "Application";
comment = "CadQuery GUI editor based on PyQT";
})
];

passthru.updateScript = nix-update-script { };

meta = {
description = "CadQuery GUI editor based on PyQT";
homepage = "https://github.com/CadQuery/CQ-editor";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
78 changes: 78 additions & 0 deletions pkgs/development/python-modules/cadquery-ocp/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
fetchzip,
isPy3k,
python,

# build
cmake,
mpi,
pybind11,

# dependencies
fontconfig,
freeglut,
libGLU,
opencascade-occt,
rapidjson,
vtk,
}:
buildPythonPackage (finalAttrs: {
pname = "cadquery-ocp";
version = "7.8.1.2";
pyproject = false;
disabled = !isPy3k;

# While I would prefer to codegen this from source, the toolchain is truly hideous and I have
# already spent several days trying to get it to work. For now, we use the pre-generated stubs.
src = fetchzip {
# 7.9.3.0 uses "Linux" instead of "ubuntu-20.04" in the release name, so the next update will
# require updating more than the version.
url = "https://github.com/CadQuery/OCP/releases/download/${finalAttrs.version}/OCP_src_stubs_ubuntu-20.04.zip";
hash = "sha256-sg6QEZWNvY9xz5RNA2/bImYI5PpvOyndBKrlNfZgsUI=";
stripRoot = true;
};

nativeBuildInputs = [
cmake
mpi
pybind11
];

buildInputs = [
fontconfig
freeglut
libGLU
((opencascade-occt.override { withVtk = true; }).overrideAttrs {
version = "7.8.1";
src = fetchFromGitHub {
owner = "Open-Cascade-SAS";
repo = "OCCT";
rev = "V7_8_1";
sha256 = "sha256-tg71cFx9HZ471T/3No9CeEHi8VSo0ZITIuNfTSNB2qU=";
};
})
rapidjson
vtk
];

installPhase = ''
runHook preInstall

install -D *.so -t $out/${python.sitePackages}

runHook postInstall
'';

pythonImportsCheck = [ "OCP" ];

meta = {
description = "Python wrapper for OpenCASCADE generated using pywrap (CadQuery OCP)";
homepage = "https://github.com/CadQuery/OCP";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
89 changes: 89 additions & 0 deletions pkgs/development/python-modules/cadquery/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
isPy3k,
nix-update-script,

# build-system
setuptools,

# dependencies
cadquery-ocp,
casadi,
ezdxf,
ipython,
multimethod,
nlopt,
nptyping,
path,
trame-vtk,
trame,
typing-extensions,
typish,
vtk,

# tests
docutils,
pytest-xdist,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "cadquery";
version = "2.6.1";
pyproject = true;
disabled = !isPy3k;

src = fetchFromGitHub {
owner = "CadQuery";
repo = "cadquery";
rev = "v${finalAttrs.version}";
hash = "sha256-ZIZ49RCGkPztlhU/AmDFnJXvw5kuhF+sSLKZuXMtuCU=";
};

build-system = [ setuptools ];

propagatedBuildInputs = [
cadquery-ocp
casadi
ezdxf
ipython
multimethod
nlopt
nptyping
path
trame
trame-vtk
typing-extensions
# typish will be removed in the next release: https://github.com/CadQuery/cadquery/pull/1967
typish
vtk
];

nativeCheckInputs = [
docutils
pytest-xdist
pytestCheckHook
];

pythonRelaxDeps = [ "multimethod" ];
pythonRemoveDeps = [
"cadquery-ocp"
"casadi"
];

# This fails upstream: https://github.com/CadQuery/OCP/issues/192
# OCP.Standard.Standard_Failure: BRepFill : The continuity is not G0 G1 or G2
disabledTests = [ "test_cap" ];

pythonImportsCheck = [ "cadquery" ];

passthru.updateScript = nix-update-script { };

meta = {
description = "Parametric scripting language for creating and traversing CAD models";
homepage = "https://github.com/CadQuery/cadquery";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
38 changes: 38 additions & 0 deletions pkgs/development/python-modules/trame-client/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
lib,
buildPythonPackage,
fetchPypi,
nix-update-script,

# build-system
setuptools,

# dependencies
trame-common,
}:
buildPythonPackage (finalAttrs: {
pname = "trame-client";
version = "3.11.2";
pyproject = true;

src = fetchPypi {
inherit (finalAttrs) version;
pname = "trame_client";
hash = "sha256-mLPwnQ+9sJzSnqxhyUWnbcrUoIz7SEOrzloUj9b8cxY=";
};

build-system = [ setuptools ];

dependencies = [ trame-common ];

pythonImportsCheck = [ "trame_client" ];

passthru.updateScript = nix-update-script { };

meta = {
description = "Internal client of trame";
homepage = "https://github.com/Kitware/trame-client";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
33 changes: 33 additions & 0 deletions pkgs/development/python-modules/trame-common/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
lib,
buildPythonPackage,
fetchPypi,
nix-update-script,

# build
hatchling,
}:
buildPythonPackage (finalAttrs: {
pname = "trame-common";
version = "1.1.1";
pyproject = true;

src = fetchPypi {
inherit (finalAttrs) version;
pname = "trame_common";
hash = "sha256-YlSXC3VwBRDFgmXpD9OLqFK5nA5xKT0k7tVIGZArsBw=";
};

build-system = [ hatchling ];

pythonImportsCheck = [ "trame_common" ];

passthru.updateScript = nix-update-script { };

meta = {
description = "Dependency less classes and functions for trame";
homepage = "https://github.com/Kitware/trame-common";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
42 changes: 42 additions & 0 deletions pkgs/development/python-modules/trame-server/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
lib,
buildPythonPackage,
fetchPypi,
nix-update-script,

# build-system
setuptools,

# dependencies
more-itertools,
wslink,
}:
buildPythonPackage (finalAttrs: {
pname = "trame-server";
version = "3.10.0";
pyproject = true;

src = fetchPypi {
inherit (finalAttrs) version;
pname = "trame_server";
hash = "sha256-DDQd6Xb3WP+OYHaZHn8wvhgDhNTzhs8prvo5FbgB0Rg=";
};

build-system = [ setuptools ];

dependencies = [
more-itertools
wslink
];

pythonImportsCheck = [ "trame_server" ];

passthru.updateScript = nix-update-script { };

meta = {
description = "Internal server side implementation of trame";
homepage = "https://github.com/Kitware/trame-server";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ cjshearer ];
};
})
Loading
Loading