67 lines
2.7 KiB
Makefile
67 lines
2.7 KiB
Makefile
PORTNAME= xgboost
|
|
DISTVERSIONPREFIX= v
|
|
DISTVERSION= 3.4.1
|
|
CATEGORIES= misc # machine-learning
|
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
|
|
|
MAINTAINER= yuri@FreeBSD.org
|
|
COMMENT= Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT, GBM)
|
|
WWW= https://xgboost.ai/
|
|
|
|
LICENSE= APACHE20
|
|
LICENSE_FILE= ${WRKSRC}/../LICENSE
|
|
|
|
BROKEN_armv7= compilation fails due to type conversion issues, like on i386, but the upstream says that they don't support 32-bit architectures
|
|
BROKEN_i386= compilation fails, see https://github.com/dmlc/xgboost/issues/10002
|
|
|
|
BUILD_DEPENDS= cmake:devel/cmake-core \
|
|
${PYTHON_PKGNAMEPREFIX}scikit-build-core>=0.11.0:devel/py-scikit-build-core@${PY_FLAVOR}
|
|
LIB_DEPENDS= libdmlc.so:devel/dmlc-core
|
|
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}scikit-learn>=0:science/py-scikit-learn@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}scipy>=0:science/py-scipy@${PY_FLAVOR}
|
|
RUN_DEPENDS_dask= \
|
|
${PYTHON_PKGNAMEPREFIX}dask>0:devel/py-dask@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}distributed>0:devel/py-distributed@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR}
|
|
RUN_DEPENDS_plotting= \
|
|
${PYTHON_PKGNAMEPREFIX}graphviz>0:graphics/py-graphviz@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}matplotlib>=2.1.0:math/py-matplotlib@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pandas>=1.2:math/py-pandas@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}scikit-learn>0:science/py-scikit-learn@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${RUN_DEPENDS_dask}
|
|
RUN_DEPENDS+= ${RUN_DEPENDS_plotting}
|
|
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}loky>0:devel/py-loky@${PY_FLAVOR}
|
|
|
|
USES= compiler:c++17-lang python:3.12+ localbase:ldflags
|
|
USE_PYTHON= pep517 autoplist pytest
|
|
USE_LDCONFIG= yes
|
|
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= dmlc
|
|
|
|
WRKSRC_SUBDIR= python-package
|
|
LDFLAGS+= -lexecinfo \
|
|
-ldmlc
|
|
|
|
PYDISTUTILS_INSTALLARGS= --use-system-libxgboost # this is ignored so that setup.py has to be patched, see https://github.com/dmlc/xgboost/issues/6879
|
|
|
|
TEST_ENV= ${MAKE_ENV} \
|
|
LD_LIBRARY_PATH=/lib \
|
|
PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
|
|
TEST_ARGS= --disable-plugin-autoload \
|
|
--deselect=python/test_tracker.py::test_rank_assignment \
|
|
--deselect=python/test_updaters.py::TestTreeMethod::test_approx
|
|
TEST_WRKSRC= ${WRKSRC}/../tests/python
|
|
|
|
do-test:
|
|
@${MKDIR} ${WRKDIR}/.bin
|
|
@${LN} -sf ${PYTHON_CMD} ${WRKDIR}/.bin/python
|
|
cd ${WRKSRC}/.. && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -c 'import ctypes, pytest, sys; raise SystemExit(pytest.main(sys.argv[1:] + ["--ignore=tests/python/test_with_arrow.py", "tests/python"]))' ${TEST_ARGS}
|
|
|
|
post-install:
|
|
@${PYTHON_CMD} -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}
|
|
@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/xgboost/lib/libxgboost.so
|
|
|
|
.include <bsd.port.mk>
|