about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/cadquery/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/cadquery/default.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/cadquery/default.nix b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
new file mode 100644
index 000000000000..6f3632f743be
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
@@ -0,0 +1,93 @@
+{ lib
+  , buildPythonPackage
+  , isPy3k
+  , pythonOlder
+  , fetchFromGitHub
+  , pyparsing
+  , opencascade
+  , stdenv
+  , python
+  , cmake
+  , swig
+  , ninja
+  , smesh
+  , freetype
+  , libGL
+  , libGLU
+  , libX11
+  , six
+}:
+
+let 
+  pythonocc-core-cadquery = stdenv.mkDerivation {
+    pname = "pythonocc-core-cadquery";
+    version = "0.18.2";
+
+    src = fetchFromGitHub {
+      owner = "CadQuery";
+      repo = "pythonocc-core";
+      # no proper release to to use, this commit copied from the Anaconda receipe
+      rev = "701e924ae40701cbe6f9992bcbdc2ef22aa9b5ab";
+      sha256 = "07zmiiw74dyj4v0ar5vqkvk30wzcpjjzbi04nsdk5mnlzslmyi6c";
+    };
+
+    nativeBuildInputs = [ 
+      cmake
+      swig
+      ninja
+    ];
+
+    buildInputs = [
+      python
+      opencascade
+      smesh
+      freetype
+      libGL
+      libGLU
+      libX11
+    ];
+
+    propagatedBuildInputs = [
+      six
+    ];
+
+    cmakeFlags = [
+      "-Wno-dev"
+      "-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
+      "-DSMESH_INCLUDE_PATH=${smesh}/include/smesh"
+      "-DSMESH_LIB_PATH=${smesh}/lib"
+      "-DPYTHONOCC_WRAP_SMESH=TRUE"
+    ];
+  };
+
+in
+  buildPythonPackage rec {
+    pname = "cadquery";
+    version = "2.0RC0";
+  
+    src = fetchFromGitHub {
+      owner = "CadQuery";
+      repo = pname;
+      rev = version;
+      sha256 = "1xgd00rih0gjcnlrf9s6r5a7ypjkzgf2xij2b6436i76h89wmir3";
+    };
+  
+    buildInputs = [
+      opencascade
+    ];
+  
+    propagatedBuildInputs = [
+      pyparsing
+      pythonocc-core-cadquery
+    ];
+  
+    # Build errors on 2.7 and >=3.8 (officially only supports 3.6 and 3.7).
+    disabled = !(isPy3k && (pythonOlder "3.8"));
+  
+    meta = with lib; {
+      description = "Parametric scripting language for creating and traversing CAD models";
+      homepage = "https://github.com/CadQuery/cadquery";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ costrouc marcus7070 ];
+    };
+  }