freebsd-ports/math/py-or-tools/Makefile
Po-Chuan Hsieh 05e7a8b8e1
devel/protobuf: Update to 3.21.7
- Bump PORTREVISION of dependent ports for shlib change

Changes:	https://github.com/protocolbuffers/protobuf/releases
2022-10-09 23:37:51 +08:00

87 lines
3.4 KiB
Makefile

PORTNAME= or-tools
DISTVERSIONPREFIX= v
DISTVERSION= 9.4
PORTREVISION= 1
CATEGORIES= math
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= yuri@FreeBSD.org
COMMENT= Google's Operations Research tools (Python binding)
WWW= https://github.com/google/or-tools
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_armv7= SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32
BROKEN_i386= SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32 # see https://github.com/google/or-tools/issues/2130
PY_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}absl-py>0:devel/py-absl-py@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR}
BUILD_DEPENDS= ${PY_DEPENDS} \
pybind11>0:devel/pybind11 \
protoc-gen-mypy:devel/py-mypy-protobuf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}virtualenv>0:devel/py-virtualenv@${PY_FLAVOR} \
swig:devel/swig
LIB_DEPENDS= libabsl_base.so:devel/abseil \
libCbc.so:math/cbc \
libCgl.so:math/cgl \
libcoinasl.so:math/asl \
libcoinmumps.so:math/coin-or-mumps \
libCoinUtils.so:math/coinutils \
libnauty.so:math/nauty \
libopenblas.so:math/openblas \
libOsi.so:math/osi \
libOsiClp.so:math/clp \
libgflags.so:devel/gflags \
libglog.so:devel/glog \
libprotobuf.so:devel/protobuf \
libre2.so:devel/re2
RUN_DEPENDS= ${PY_DEPENDS}
USES= blaslapack cmake:insource compiler:c++17-lang eigen:3 pkgconfig python:3.6+
USE_PYTHON= flavors pytest # tests fail, see https://github.com/google/or-tools/issues/3464
USE_GITHUB= yes
GH_ACCOUNT= google
CMAKE_OFF= BUILD_DEPS BUILD_pybind11 INSTALL_BUILD_DEPS BUILD_TESTING BUILD_EXAMPLES
CMAKE_ON= BUILD_PYTHON
CMAKE_ARGS= -DSWIG_EXECUTABLE=${LOCALBASE}/bin/swig -DFREEBSD_PYTHON_VER=${PYTHON_VER}
CONFIGURE_ENV= UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
BUILD_ENV= UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
OPTIONS_DEFINE= SCIP
SCIP_DESC= Use the SCIP solver # SCIP package isn't built because of licensing restrictions
SCIP_CMAKE_BOOL= USE_SCIP
SCIP_LIB_DEPENDS= libscip.so:math/SCIP
post-patch:
@${REINPLACE_CMD} -e '/absl::container/s,^,#,' \
${WRKSRC}/ortools/constraint_solver/CMakeLists.txt \
${WRKSRC}/ortools/glop/CMakeLists.txt \
${WRKSRC}/ortools/linear_solver/CMakeLists.txt \
${WRKSRC}/ortools/sat/CMakeLists.txt
do-install: # by default cmake installs the whole or-tools project without the python part, so extract the wheel and install python files manually here
${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
cd ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} && \
unzip ${BUILD_WRKSRC}/python/dist/ortools-${DISTVERSION}*.whl && \
${RM} -rf ortools-*.dist-info
${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -name "*.so" -o -name "*.so.*" | ${XARGS} ${STRIP_CMD}
run-examples: # one of the examples fail: https://github.com/google/or-tools/issues/3463
.for e in arc_flow_cutting_stock_sat.py bus_driver_scheduling_sat.py cover_rectangle_sat.py cvrptw_plot.py qubo_sat.py # list is from examples/python/CMakeLists.txt
@cd ${WRKSRC}/examples/python && \
${ECHO} "==> Running ${PORTNAME} test ${e} ..." && \
${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${e} && \
${ECHO} "... test ${e} succeeded"
.endfor
.include <bsd.port.mk>