summaryrefslogtreecommitdiff
blob: 3c9b8766b8edb3a8124bf086082a6897de7adfe7 (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
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5
inherit elisp-common eutils
RESTRICT="mirror"

SUBVERSION_REVISION="r${PV##*_p}"
DESCRIPTION="The google styleguide for C++ together with a verifyer and an emacs file"
HOMEPAGE="http://code.google.com/p/google-styleguide/"
SRC_URI="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?${SUBVERSION_REVISION} -> cpplint-${PV}.xml
	http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py?${SUBVERSION_REVISION} -> cpplint-${PV}.py
	http://google-styleguide.googlecode.com/svn/trunk/cpplint/README?${SUBVERSION_REVISION} -> cpplint-${PV}.txt
	emacs? ( http://google-styleguide.googlecode.com/svn/trunk/google-c-style.el?${SUBVERSION_REVISION} -> cpplint-${PV}.el )"
LICENSE="CC-BY-3.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="emacs"

EMACSNAME="google-c-style"
COMMON="emacs? ( virtual/emacs )"
DEPEND="${COMMON}"
RDEPEND="dev-lang/python
	${COMMON}"

S="${WORKDIR}"

src_unpack() {
	cp -- "${DISTDIR}/cpplint-${PV}.xml" cppguide.xml || die
	cp -- "${DISTDIR}/cpplint-${PV}.py" cpplint.py || die
	cp -- "${DISTDIR}/cpplint-${PV}.txt" README || die
	if use emacs
	then	cp -- "${DISTDIR}/cpplint-${PV}.el" "${EMACSNAME}.el" || die
		mkdir sitefile
		cat >"sitefile/50${EMACSNAME}-gentoo.el" <<EOF
(add-to-list 'load-path "@SITELISP@")
(autoload 'google-set-c-style "${EMACSNAME}"
  "Set the current buffer's c-style to Google C/C++ Programming
  Style. Meant to be added to \`c-mode-common-hook'." t)
(add-hook 'c-mode-common-hook 'google-set-c-style)

; If you want the RETURN key to go to the next line and space over
; to the right place, uncomment the following line
;(add-hook 'c-mode-common-hook 'google-make-newline-indent)
EOF
	fi
}

src_prepare() {
	epatch_user
}

src_compile() {
	if use emacs
	then	elisp-compile *.el || die
	fi
}

src_install() {
	dobin cpplint.py
	dodoc README cppguide.xml
	if use emacs
	then	elisp-install "${EMACSNAME}" "${EMACSNAME}".{el,elc} || die
		elisp-site-file-install "sitefile/50${EMACSNAME}-gentoo.el" "${EMACSNAME}" || die
	fi
}

pkg_postinst() {
	elisp-site-regen
}

pkg_postrm() {
	elisp-site-regen
}