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