Merge pull request #99246 from fehnomenal/ifcopenshell

This commit is contained in:
Sandro 2020-11-28 22:11:17 +01:00 committed by GitHub
commit 069f11dce2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 107 additions and 0 deletions

View File

@ -2901,6 +2901,12 @@
githubId = 541748;
name = "Felipe Espinoza";
};
fehnomenal = {
email = "fehnomenal@fehn.systems";
github = "fehnomenal";
githubId = 9959940;
name = "Andreas Fehn";
};
felschr = {
email = "dev@felschr.com";
github = "felschr";

View File

@ -0,0 +1,67 @@
{ stdenv
, buildPythonPackage
, fetchFromGitHub
, substituteAll
, python
, gcc10
, cmake
, boost172
, icu
, swig
, pcre
, opencascade-occt
, opencollada
, libxml2
}:
buildPythonPackage rec {
pname = "ifcopenshell";
version = "0.6.0b0";
format = "other";
src = fetchFromGitHub {
owner = "IfcOpenShell";
repo = "IfcOpenShell";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "1ad1s9az41z2f46rbi1jnr46mgc0q4h5kz1jm9xdlwifqv9y04g1";
};
patches = [
(substituteAll {
name = "site-packages.patch";
src = ./site-packages.patch;
site_packages = "lib/${python.libPrefix}/site-packages";
})
];
nativeBuildInputs = [ gcc10 cmake ];
buildInputs = [
boost172
icu
pcre
libxml2
];
preConfigure = ''
cd cmake
'';
cmakeFlags = [
"-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
"-DOCC_LIBRARY_DIR=${opencascade-occt}/lib"
"-DOPENCOLLADA_INCLUDE_DIR=${opencollada}/include/opencollada"
"-DOPENCOLLADA_LIBRARY_DIR=${opencollada}/lib/opencollada"
"-DSWIG_EXECUTABLE=${swig}/bin/swig"
"-DLIBXML2_INCLUDE_DIR=${libxml2.dev}/include/libxml2"
"-DLIBXML2_LIBRARIES=${libxml2.out}/lib/${if stdenv.isDarwin then "libxml2.dylib" else "libxml2.so"}"
];
meta = with stdenv.lib; {
description = "Open source IFC library and geometry engine";
homepage = http://ifcopenshell.org/;
license = licenses.lgpl3;
maintainers = with maintainers; [ fehnomenal ];
};
}

View File

@ -0,0 +1,32 @@
--- a/src/ifcwrap/CMakeLists.txt
+++ b/src/ifcwrap/CMakeLists.txt
@@ -68,26 +68,17 @@ endif()
# directory in which the wrapper can be installed.
FIND_PACKAGE(PythonInterp)
IF(PYTHONINTERP_FOUND AND NOT "${PYTHON_EXECUTABLE}" STREQUAL "")
- EXECUTE_PROCESS(
- COMMAND ${PYTHON_EXECUTABLE} -c "import sys; from distutils.sysconfig import get_python_lib; sys.stdout.write(get_python_lib(1))"
- OUTPUT_VARIABLE python_package_dir
- )
-
- IF("${python_package_dir}" STREQUAL "")
- MESSAGE(WARNING "Unable to locate Python site-package directory, unable to install the Python wrapper")
- ELSE()
FILE(GLOB_RECURSE sourcefiles "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/*.py")
FOREACH(file ${sourcefiles})
FILE(RELATIVE_PATH relative "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/" "${file}")
GET_FILENAME_COMPONENT(dir "${relative}" DIRECTORY)
INSTALL(FILES "${file}"
- DESTINATION "${python_package_dir}/ifcopenshell/${dir}")
+ DESTINATION "@site_packages@/ifcopenshell/${dir}")
ENDFOREACH()
INSTALL(FILES "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py"
- DESTINATION "${python_package_dir}/ifcopenshell")
+ DESTINATION "@site_packages@/ifcopenshell")
INSTALL(TARGETS _ifcopenshell_wrapper
- DESTINATION "${python_package_dir}/ifcopenshell")
- ENDIF()
+ DESTINATION "@site_packages@/ifcopenshell")
ELSE()
MESSAGE(WARNING "No Python interpreter found, unable to install the Python wrapper")
ENDIF()

View File

@ -2896,6 +2896,8 @@ in {
ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
ifcopenshell = callPackage ../development/python-modules/ifcopenshell { };
ignite = callPackage ../development/python-modules/ignite { };
ihatemoney = callPackage ../development/python-modules/ihatemoney { };