blob: 32d46d278ee80f45e19410a31bfbb74d82057884 (
plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
JAVA_PKG_IUSE="doc source"
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='threads(+)'
inherit eutils java-pkg-2 python-any-r1 waf-utils
DESCRIPTION="a constraint solver for relational logic"
HOMEPAGE="http://alloy.mit.edu/kodkod/index.html"
SRC_URI="http://alloy.mit.edu/kodkod/${PV}/${P}.zip
https://waf.googlecode.com/files/waf-1.7.16"
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
IUSE=""
COMMON_DEP=""
RDEPEND="${COMMON_DEP}
>=virtual/jre-1.6"
DEPEND="${COMMON_DEP}
>=virtual/jdk-1.6
app-arch/unzip"
S="${WORKDIR}/kodkod-1.5"
JAVA_SRC_DIR="src"
LIBDIR="/usr/"$(get_libdir)"/${PN}"
pkg_setup() {
python-any-r1_pkg_setup
java-pkg-2_pkg_setup
}
src_unpack() {
unpack "${A% *}"
cp "${DISTDIR}/${A#* }" "${S}/waf" || die "Could not copy waf"
}
src_prepare() {
java-pkg-2_src_prepare
chmod u+x waf \
|| die "Could not set execute permisions on waf file"
sed -e 's@private N parent, left, right@protected N parent, left, right@' \
-e 's@private boolean color@protected boolean color@' \
-i "${S}/src/kodkod/util/ints/IntTree.java" \
|| die "Could not change private to protected in IntTree.java"
sed -e 's@conf.env.LINKFLAGS =@conf.env.LINKFLAGS +=@' \
-i "${S}/lib/cryptominisat-2.9.1/wscript" \
-i "${S}/lib/lingeling-276/wscript" \
|| die "Could not fix wscripts to respect LDFLAGS"
# Fix bug 453162 - sci-mathematics/kodkod-1.5.2: fails to build
epatch "${FILESDIR}/${PN}-1.5.2-changes-in-most-specific-varargs-method-selection.patch"
# Fix Bug 458462 sci-mathematics/kodkod-1.5.2: fails to build with JAVA_PKG_STRICT
local x=""
for i in $JAVACFLAGS
do
if [ "${x}" == "" ]; then
x="'${i}'"
else
x="${x}, '${i}'"
fi
done
for j in $(find . -name wscript -print)
do
sed -e "s@def configure(conf):@def configure(conf):\n conf.env.JAVACFLAGS = [${x}]@" \
-i "${j}" \
|| die "Could not set JAVACFLAGS in ${j}"
done
}
# note: kodkod waf fails when passed --libdir:
# waf: error: no such option: --libdir
src_configure() {
${WAF_BINARY:="${S}/waf"}
tc-export AR CC CPP CXX RANLIB
echo "CCFLAGS=\"${CFLAGS}\" LINKFLAGS=\"${LDFLAGS}\" \"${WAF_BINARY}\" --prefix=${EPREFIX}/usr $@ configure"
CCFLAGS="${CFLAGS}" LINKFLAGS="${LDFLAGS}" "${WAF_BINARY}" \
"--prefix=${EPREFIX}/usr" \
"$@" \
configure || die "configure failed"
}
src_compile() {
waf-utils_src_compile
if has doc ${JAVA_PKG_IUSE} && use doc; then
pushd src/kodkod || die "Could not cd to src/kodkod"
local doclint="-Xdoclint:none"
local jv="$(javac -version 2>&1 | cut -d' ' -f 2)"
if [[ "${jv}" == 1.6* ]] || [[ "${jv}" == 1.7* ]]; then
doclint=""
fi
javadoc ${doclint} -sourcepath "${S}"/src/kodkod:"${S}"/build/src/kodkod \
-classpath $(find "${PWD}" -name \*.jar -print | xargs | sed -e 's@ @:@g') \
$(find . -name \*.java -print) \
|| die "javadoc failed"
popd
fi
}
src_install() {
insinto "/usr/"$(get_libdir)
dodir ${LIBDIR}
exeinto ${LIBDIR}
for i in $(find . \( -name \*.so -o -name plingeling \) -print | xargs); do
doexe $i
done
for i in $(find . \( -name kodkod.jar -o -name org.sat4j.core.jar \) -print | xargs); do
einfo "java-pkg_dojar $i"
java-pkg_dojar $i
done
# javadoc
if has doc ${JAVA_PKG_IUSE} && use doc; then
java-pkg_dojavadoc src/kodkod
fi
# dosrc
if has source ${JAVA_PKG_IUSE} && use source; then
local srcdirs=""
if [[ ${JAVA_SRC_DIR} ]]; then
local parent child
for parent in ${JAVA_SRC_DIR}; do
for child in ${parent}/*; do
srcdirs="${srcdirs} ${child}"
done
done
else
# take all directories actually containing any sources
srcdirs="$(cut -d/ -f1 ${sources} | sort -u)"
fi
java-pkg_dosrc ${srcdirs}
fi
}
|