1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 gcc10,
7 cmake,
8 boost179,
9 icu,
10 swig,
11 pcre,
12 opencascade-occt_7_6,
13 opencollada,
14 libxml2,
15}:
16let
17 opencascade-occt = opencascade-occt_7_6;
18in
19buildPythonPackage rec {
20 pname = "ifcopenshell";
21 version = "240306";
22 format = "other";
23
24 src = fetchFromGitHub {
25 owner = "IfcOpenShell";
26 repo = "IfcOpenShell";
27 rev = "refs/tags/blenderbim-${version}";
28 fetchSubmodules = true;
29 sha256 = "sha256-DtA8KeWipPfOnztKG/lrgLZeOCUG3nWR9oW7OST7koc=";
30 };
31
32 nativeBuildInputs = [
33 gcc10
34 cmake
35 ];
36
37 buildInputs = [
38 boost179
39 icu
40 pcre
41 libxml2
42 ];
43
44 preConfigure = ''
45 cd cmake
46 '';
47
48 PYTHONUSERBASE = ".";
49 cmakeFlags = [
50 "-DUSERSPACE_PYTHON_PREFIX=ON"
51 "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
52 "-DOCC_LIBRARY_DIR=${opencascade-occt}/lib"
53 "-DOPENCOLLADA_INCLUDE_DIR=${opencollada}/include/opencollada"
54 "-DOPENCOLLADA_LIBRARY_DIR=${opencollada}/lib/opencollada"
55 "-DSWIG_EXECUTABLE=${swig}/bin/swig"
56 "-DLIBXML2_INCLUDE_DIR=${libxml2.dev}/include/libxml2"
57 "-DLIBXML2_LIBRARIES=${libxml2.out}/lib/libxml2${stdenv.hostPlatform.extensions.sharedLibrary}"
58 ];
59
60 meta = with lib; {
61 broken = stdenv.isDarwin;
62 description = "Open source IFC library and geometry engine";
63 homepage = "http://ifcopenshell.org/";
64 license = licenses.lgpl3;
65 maintainers = with maintainers; [ fehnomenal ];
66 };
67}