blob: d5467b585017d82382257a11cce11a2d430d3d4c (
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
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/protobuf/protobuf-2.4.0a.ebuild,v 1.1 2011/02/12 22:19:02 nelchael Exp $
EAPI="3"
JAVA_PKG_IUSE="source"
PYTHON_DEPEND="python? 2"
inherit autotools eutils distutils python java-pkg-opt-2 elisp-common
DESCRIPTION="Google's Protocol Buffers -- an efficient method of encoding structured data"
HOMEPAGE="http://code.google.com/p/protobuf/"
SRC_URI="http://protobuf.googlecode.com/files/${P}.tar.bz2"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x64-macos"
IUSE="emacs examples java python static-libs vim-syntax"
DEPEND="${DEPEND} java? ( >=virtual/jdk-1.5 )
python? ( dev-python/setuptools )
emacs? ( virtual/emacs )"
RDEPEND="${RDEPEND} java? ( >=virtual/jre-1.5 )
emacs? ( virtual/emacs )"
PYTHON_MODNAME="google/protobuf"
DISTUTILS_SRC_TEST="setup.py"
pkg_setup() {
if use python; then
python_set_active_version 2
python_pkg_setup
fi
}
src_prepare() {
epatch "${FILESDIR}"/${PN}-2.3.0-asneeded-2.patch
eautoreconf
if use python; then
python_convert_shebangs -r 2 .
distutils_src_prepare
fi
}
src_configure() {
econf \
$(use_enable static-libs static)
}
src_compile() {
emake || die "emake failed"
if use python; then
einfo "Compiling Python library ..."
pushd python
distutils_src_compile
popd
fi
if use java; then
einfo "Compiling Java library ..."
src/protoc --java_out=java/src/main/java --proto_path=src src/google/protobuf/descriptor.proto
mkdir java/build
pushd java/src/main/java
ejavac -d ../../../build $(find . -name '*.java') || die "java compilation failed"
popd
jar cf "${PN}.jar" -C java/build . || die "jar failed"
fi
if use emacs; then
elisp-compile "${S}/editors/protobuf-mode.el" || die "elisp-compile failed!"
fi
}
src_test() {
emake check || die "emake check failed"
if use python; then
pushd python
distutils_src_test
popd
fi
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
dodoc CHANGES.txt CONTRIBUTORS.txt README.txt
use static-libs || rm -rf "${D}"/usr/lib*/*.la
if use python; then
pushd python
distutils_src_install
popd
fi
if use java; then
java-pkg_dojar ${PN}.jar
use source && java-pkg_dosrc java/src/main/java/*
fi
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect/
doins "${FILESDIR}/proto.vim"
fi
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el* || die "elisp-install failed!"
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins -r examples/* || die "doins examples failed"
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
use python && distutils_pkg_postinst
}
pkg_postrm() {
use emacs && elisp-site-regen
use python && distutils_pkg_postrm
}
|