diff --git a/devel/py-cadquery-pywrap/Makefile b/devel/py-cadquery-pywrap/Makefile new file mode 100644 index 000000000000..df43a464e7c5 --- /dev/null +++ b/devel/py-cadquery-pywrap/Makefile @@ -0,0 +1,63 @@ +PORTNAME= cadquery-pywrap +DISTVERSIONPREFIX= occt +DISTVERSION= 7.5 +CATEGORIES= devel +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= ports@nicandneal.net +COMMENT= C++ binding generator for python + +LICENSE= APACHE20 + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pybind11>=2.6:devel/py-pybind11@${PY_FLAVOR} \ + pybind11>=2.6:devel/pybind11 \ + ${PYTHON_PKGNAMEPREFIX}logzero>0:devel/py-logzero@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}joblib>0:devel/py-joblib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tqdm>0:misc/py-tqdm@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.11.2:devel/py-Jinja2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}toposort>0:devel/py-toposort@${PY_FLAVOR} \ + llvm${LLVMVER}>0:devel/llvm${LLVMVER} \ + ${PYTHON_PKGNAMEPREFIX}cymbal>0:devel/py-cymbal@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}schema>0:devel/py-schema@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}click>0:devel/py-click@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}path>0:devel/py-path@${PY_FLAVOR} + +USES= python:3.6+,run + +USE_GITHUB= yes +GH_ACCOUNT= CadQuery +GH_PROJECT= pywrap +GH_TAGNAME= f8869e5 + +LLVMVER= 10 + +SOURCE_DIR= ${WRKSRC}/bindgen +TARGET_DIR= ${STAGEDIR}${PYTHON_SITELIBDIR}/bindgen + +post-patch: + @${REINPLACE_CMD} -e 's|LLVMVER|${LLVMVER}|g' ${WRKSRC}/bindgen/__init__.py + @${REINPLACE_CMD} -e 's|PYTHONVER|${PYTHON_VER}|g' ${WRKSRC}/bindgen/__init__.py + +do-build: + # Nothing to build and fails without this null stage. + +do-install: + @${MKDIR} ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/__init__.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/__main__.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/CMakeLists.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/header.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/macros.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/module.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/schemas.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/template_main.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/template_sub_pre.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/template_sub.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/template_templates.j2 ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/translation_unit.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/type_parser.py ${TARGET_DIR} + ${INSTALL_SCRIPT} ${SOURCE_DIR}/utils.py ${TARGET_DIR} + +.include diff --git a/devel/py-cadquery-pywrap/distinfo b/devel/py-cadquery-pywrap/distinfo new file mode 100644 index 000000000000..e8c680fe111e --- /dev/null +++ b/devel/py-cadquery-pywrap/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1623770878 +SHA256 (CadQuery-pywrap-occt7.5-f8869e5_GH0.tar.gz) = 5c2140fc3d6e1137b78c1473cbbe00af0982e4a492e52ae0b3dfc449507efd3d +SIZE (CadQuery-pywrap-occt7.5-f8869e5_GH0.tar.gz) = 5581254 diff --git a/devel/py-cadquery-pywrap/files/patch-bindgen_____init____.py b/devel/py-cadquery-pywrap/files/patch-bindgen_____init____.py new file mode 100644 index 000000000000..85cb32ed2543 --- /dev/null +++ b/devel/py-cadquery-pywrap/files/patch-bindgen_____init____.py @@ -0,0 +1,9 @@ +--- bindgen/__init__.py.orig 2021-06-15 15:36:14 UTC ++++ bindgen/__init__.py +@@ -1,3 +1,6 @@ ++import sys ++sys.path.append("/usr/local/llvmLLVMVER/lib/pythonPYTHONVER/site-packages") ++ + from functools import reduce + from operator import add + from re import match diff --git a/devel/py-cadquery-pywrap/files/patch-bindgen_utils.py b/devel/py-cadquery-pywrap/files/patch-bindgen_utils.py new file mode 100644 index 000000000000..1f6101752bb1 --- /dev/null +++ b/devel/py-cadquery-pywrap/files/patch-bindgen_utils.py @@ -0,0 +1,16 @@ +--- bindgen/utils.py.orig 2021-01-03 16:03:09 UTC ++++ bindgen/utils.py +@@ -59,10 +59,12 @@ def init_clang(path=None): + pass + elif platform.startswith('win'): + path = conda_prefix / 'Library' / 'bin' / 'libclang.dll' +- elif platform.startswith('linux') or platform.startswith('freebsd'): ++ elif platform.startswith('linux'): + path = conda_prefix / 'lib' / 'libclang.so' + elif platform.startswith('darwin'): + path = conda_prefix / 'lib' / 'libclang.dylib' ++ elif platform.startswith('freebsd'): ++ Config.set_library_file(Path("/usr") / "local" / "llvm90" / 'lib' / 'libclang.so') + + Config.set_library_file(path) + diff --git a/devel/py-cadquery-pywrap/pkg-descr b/devel/py-cadquery-pywrap/pkg-descr new file mode 100644 index 000000000000..3c585b166176 --- /dev/null +++ b/devel/py-cadquery-pywrap/pkg-descr @@ -0,0 +1,6 @@ +PyWrap is a C++ binding generator using pybind11, libclang and jinja. +The main goal of this project is to automatically generate bindings for OCCT7.3 +and beyond without single manual edit of the generated code. +Once finished the project will be usable as a general C++ binding generator. + +WWW: https://github.com/CadQuery/pywrap diff --git a/devel/py-cadquery-pywrap/pkg-plist b/devel/py-cadquery-pywrap/pkg-plist new file mode 100644 index 000000000000..f8c515b39f44 --- /dev/null +++ b/devel/py-cadquery-pywrap/pkg-plist @@ -0,0 +1,14 @@ +%%PYTHON_SITELIBDIR%%/bindgen/CMakeLists.j2 +%%PYTHON_SITELIBDIR%%/bindgen/__init__.py +%%PYTHON_SITELIBDIR%%/bindgen/__main__.py +%%PYTHON_SITELIBDIR%%/bindgen/header.py +%%PYTHON_SITELIBDIR%%/bindgen/macros.j2 +%%PYTHON_SITELIBDIR%%/bindgen/module.py +%%PYTHON_SITELIBDIR%%/bindgen/schemas.py +%%PYTHON_SITELIBDIR%%/bindgen/template_main.j2 +%%PYTHON_SITELIBDIR%%/bindgen/template_sub.j2 +%%PYTHON_SITELIBDIR%%/bindgen/template_sub_pre.j2 +%%PYTHON_SITELIBDIR%%/bindgen/template_templates.j2 +%%PYTHON_SITELIBDIR%%/bindgen/translation_unit.py +%%PYTHON_SITELIBDIR%%/bindgen/type_parser.py +%%PYTHON_SITELIBDIR%%/bindgen/utils.py