Files
ports/devel/ikos/Makefile
T
2026-10-04 04:07:15 +00:00

64 lines
2.3 KiB
Makefile

PORTNAME= ikos
DISTVERSIONPREFIX= v
DISTVERSION= 3.5
PORTREVISION= 5
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
COMMENT= Static analyzer for C/C++ based on theory of abstract interpretation
WWW= https://github.com/NASA-SW-VnV/ikos
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.pdf
BROKEN_armv7= configure fails: error when running a program linked with GMP: Segmentation fault
BROKEN_FreeBSD_16= requires LLVM 14 which is incompatible with FreeBSD 16's libc++ headers, see https://github.com/NASA-SW-VnV/ikos/issues/337
BUILD_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION}
LIB_DEPENDS= libapron.so:math/apron \
libboost_thread.so:devel/boost-libs \
libmpfr.so:math/mpfr \
libgmp.so:math/gmp \
libppl.so:devel/ppl \
libtbb.so:devel/onetbb
RUN_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION}
USES= cmake ncurses python sqlite
USE_GITHUB= yes
GH_ACCOUNT= NASA-SW-VnV
USE_LDCONFIG= yes
LLVM_VERSION= 14 # only llvm-14 is currently supported
CXXFLAGS+= -DNDEBUG # https://github.com/NASA-SW-VnV/ikos/issues/36, it also breaks with assert without NDEBUG
CMAKE_ON= BUILD_SHARED_LIBS
CMAKE_OFF= INSTALL_PYTHON_VIRTUALENV
CMAKE_ARGS= -DLLVM_CONFIG_EXECUTABLE:PATH=${LOCALBASE}/bin/llvm-config${LLVM_VERSION} \
-DPYTHON_EXECUTABLE:STRING=${PYTHON_CMD} \
-DPYTHON_VENV_EXECUTABLE:STRING=${PYTHON_CMD}
CMAKE_ARGS+= -DCMAKE_POLICY_VERSION_MINIMUM=3.5 # CMake 4.5 compatibility, see https://github.com/NASA-SW-VnV/ikos/issues/338
PLIST_SUB= PORTVERSION=${PORTVERSION}
post-configure: # workaround for the problem that --color-diagnostics gets into the linker command lines
@${REINPLACE_CMD} 's|-Wl,--color-diagnostics| |' ${BUILD_WRKSRC}/build.ninja
post-install:
# install the local python module 'ikos'
@${MKDIR} ${STAGEDIR}${DATADIR}/python
cd ${BUILD_WRKSRC}/analyzer/python && \
${COPYTREE_SHARE} ikos ${STAGEDIR}${DATADIR}/python
${CP} ${WRKSRC}/analyzer/python/ikos/*.py ${STAGEDIR}${DATADIR}/python/ikos
cd ${WRKSRC}/analyzer/python/ikos && \
${COPYTREE_SHARE} view ${STAGEDIR}${DATADIR}/python/ikos
# expand the token
${REINPLACE_CMD} -i '' -e 's|%%PREFIX%%|${PREFIX}|' ${STAGEDIR}${PREFIX}/bin/ikos
# use clang corresponding to the used llvm version
CPP= clang-cpp${LLVM_VERSION}
CC= clang${LLVM_VERSION}
CXX= clang++${LLVM_VERSION}
.include <bsd.port.mk>