1{ lib, stdenv, python, fetchFromGitHub
2, cmake
3, Cocoa
4, fontconfig
5, freetype
6, libGL
7, libGLU
8, libX11
9, libXext
10, libXi
11, libXmu
12, opencascade-occt
13, rapidjson
14, smesh
15, swig4
16}:
17
18stdenv.mkDerivation rec {
19 pname = "pythonocc-core";
20 version = "7.6.2";
21
22 src = fetchFromGitHub {
23 owner = "tpaviot";
24 repo = "pythonocc-core";
25 rev = version;
26 sha256 = "sha256-45pqPQ07KYlpFwJSAYVHbzuqDQTbAvPpxReal52DCzU=";
27 };
28
29 postPatch = ''
30 substituteInPlace CMakeLists.txt \
31 --replace "/usr/X11R6/lib/libGL.dylib" "${libGL}/lib/libGL.dylib" \
32 --replace "/usr/X11R6/lib/libGLU.dylib" "${libGLU}/lib/libGLU.dylib"
33 '';
34
35 nativeBuildInputs = [ cmake swig4 ];
36 buildInputs = [
37 python opencascade-occt smesh
38 freetype libGL libGLU libX11 libXext libXmu libXi
39 fontconfig rapidjson
40 ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
41
42 cmakeFlags = [
43 "-Wno-dev"
44 "-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
45
46 "-DSMESH_INCLUDE_PATH=${smesh}/include/smesh"
47 "-DSMESH_LIB_PATH=${smesh}/lib"
48 "-DPYTHONOCC_WRAP_SMESH=TRUE"
49 ];
50
51 meta = with lib; {
52 description = "Python wrapper for the OpenCASCADE 3D modeling kernel";
53 homepage = "https://github.com/tpaviot/pythonocc-core";
54 license = licenses.lgpl3;
55 platforms = platforms.unix;
56 maintainers = with maintainers; [ gebner ];
57 };
58}