summaryrefslogtreecommitdiff
path: root/sci-mathematics/nusmv/nusmv-2.6.0.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/nusmv/nusmv-2.6.0.ebuild')
-rw-r--r--sci-mathematics/nusmv/nusmv-2.6.0.ebuild82
1 files changed, 82 insertions, 0 deletions
diff --git a/sci-mathematics/nusmv/nusmv-2.6.0.ebuild b/sci-mathematics/nusmv/nusmv-2.6.0.ebuild
new file mode 100644
index 000000000000..235562292b07
--- /dev/null
+++ b/sci-mathematics/nusmv/nusmv-2.6.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-any-r1 toolchain-funcs
+
+MY_P="NuSMV-${PV}"
+NUSMV_A="${MY_P}.tar.gz"
+ZCHAFF_A="zchaff.64bit.2007.3.12.zip"
+
+DESCRIPTION="NuSMV: new symbolic model checker"
+HOMEPAGE="http://nusmv.fbk.eu/"
+SRC_URI="http://nusmv.fbk.eu/distrib/${NUSMV_A}
+ zchaff? ( http://www.princeton.edu/~chaff/zchaff/${ZCHAFF_A} )"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="minisat doc zchaff"
+REQUIRED_USE="|| ( minisat zchaff )"
+
+SHARED_DEPEND="minisat? ( >=sci-mathematics/minisat-2.2.0_p20130925 )"
+RDEPEND="${SHARED_DEPEND}
+ dev-libs/expat"
+DEPEND="${SHARED_DEPEND}
+ doc? (
+ virtual/latex-base
+ dev-texlive/texlive-latexextra
+ app-doc/doxygen
+ )
+ dev-libs/libxml2
+ ${PYTHON_DEPS}"
+
+S="${WORKDIR}/${MY_P}/NuSMV"
+
+src_unpack() {
+ unpack "${NUSMV_A}"
+ if use zchaff; then
+ cp "${DISTDIR}/${ZCHAFF_A}" "${WORKDIR}/${MY_P}/zChaff" || die
+ fi
+}
+
+src_prepare() {
+ sed -i -e 's/-mcpu=[^\s]*//' "${WORKDIR}/${MY_P}/cudd-2.4.1.1"/Makefile || die
+ # Prevent automatic build of minisat - we are using the ebuild from portage
+ sed -i -e 's/ add_subdirectory(${MINISAT_SOURCE_DIR} ${MINISAT_BUILD_DIR})//' \
+ -e 's/MINISAT_LIB/MiniSat/' CMakeLists.txt || die
+ sed -i -e 's/DEPENDS MINISAT_BUILD//' code/nusmv/core/sat/solvers/CMakeLists.txt || die
+ # Change the "prog-man/html" rule to optional
+ sed -i -e '/\s*install( .*html /s:${PROJECT_BINARY_DIR}:share/nusmv/doc OPTIONAL:' doc/prog-man/CMakeLists.txt || die
+ # Change the doc destination
+ sed -i -e "s:share/nusmv/doc:share/doc/${PF}:" doc/{tutorial,user-man,prog-man}/CMakeLists.txt || die
+
+ # Correction for proper parallel compilation
+# sed -i -e 's/COMMAND ${MAKE}/COMMAND $(MAKE)/' "${WORKDIR}/${MY_P}/"{zchaff,MiniSat}/CMakeLists.txt || die
+ default
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_MINISAT=$(usex minisat)
+ -DENABLE_ZCHAFF=$(usex zchaff)
+ -DMINISAT_INCLUDE_DIR="${EPREFIX}"/usr/include/minisat/simp
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ local targets=( all )
+ use doc && targets+=( prog-man user-man html tutorial docs )
+ cmake-utils_src_compile "${targets[@]}"
+}
+
+src_install() {
+ cmake-utils_src_install
+ # Remove docs where they do not belong to
+ rm -f "${ED%/}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} || die
+}