blob: 7932cf26c5e83fb81177324190fc6e442fc765b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
PORTNAME= nanobind
DISTVERSIONPREFIX= v
DISTVERSION= 2.4.0
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
COMMENT= Tiny and efficient C++/Python bindings (C++ version)
WWW= https://nanobind.readthedocs.io/en/latest/ \
https://github.com/wjakob/nanobind
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= robin-map>0:devel/robin-map
RUN_DEPENDS= robin-map>0:devel/robin-map
TEST_DEPENDS= gmake:devel/gmake
USES= cmake localbase python:test
USE_GITHUB= yes
GH_ACCOUNT= wjakob
CMAKE_ARGS= -DNB_INSTALL_DATADIR=${PREFIX}
CMAKE_ON= NB_CREATE_INSTALL_RULES
CMAKE_OFF= NB_USE_SUBMODULE_DEPS \
NB_TEST_FREE_THREADED \
NB_TEST \
CMAKE_SKIP_INSTALL_RULES
CXXFLAGS+= -I${WRKSRC}/include \
-I${PYTHON_INCLUDEDIR}
NO_ARCH= yes
do-install:
# install manually because the default framework-provided install op fails for some reason
cd ${BUILD_WRKSRC} && \
${SETENV} DESTDIR=${STAGEDIR} ${MAKE_CMD} install
# remove unnecessary files
@${RM} \
${STAGEDIR}${PREFIX}/cmake/darwin-ld-cpython.sym \
${STAGEDIR}${PREFIX}/cmake/darwin-ld-pypy.sym \
${STAGEDIR}${DATADIR}/__init__.py \
${STAGEDIR}${DATADIR}/__main__.py
do-test:
@cd ${WRKSRC} && \
${RM} -r test && \
${MKDIR} test && \
cd test && \
${CP} ${FILESDIR}/CMakeLists.txt ${FILESDIR}/my_ext.cpp . && \
cmake -DCMAKE_PREFIX_PATH="${STAGEDIR}${PREFIX}" . && \
${SETENV} CXXFLAGS="${CXXFLAGS} -I${STAGEDIR}${PREFIX}/include" ${GMAKE} -j ${MAKE_JOBS_NUMBER} && \
if [ `${PYTHON_CMD} -c "import my_ext; print(my_ext.add(1, 2))"` = 3 ]; then \
${ECHO} "Test succeeded"; \
else \
${ECHO} "Test failed"; \
return 1; \
fi
# cmake installs files into non-standard locations, see https://github.com/wjakob/nanobind/issues/810
# hostile upstream, do not create bug reports
.include <bsd.port.mk>
|