summaryrefslogtreecommitdiff
path: root/app-office/ledger/ledger-3.1.2.ebuild
blob: d027cb0f7359a69ad3303684d8d758a9cde88e71 (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-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 )

inherit check-reqs cmake-utils elisp-common python-single-r1

DESCRIPTION="A double-entry accounting system with a command-line reporting interface"
HOMEPAGE="https://www.ledger-cli.org/"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
KEYWORDS="~amd64 ~x86"
SLOT="0"
IUSE="debug doc emacs python"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="test"

SITEFILE=50${PN}-gentoo-${PV}.el

CHECKREQS_MEMORY=8G

RDEPEND="
	dev-libs/boost:=[python?]
	dev-libs/gmp:0=
	dev-libs/mpfr:0=
	emacs? ( virtual/emacs )
	python? (
		dev-libs/boost:=[${PYTHON_USEDEP}]
		dev-python/cheetah
		${PYTHON_DEPS}
	)
"
DEPEND="
	${RDEPEND}
	dev-libs/utfcpp
	doc? (
		sys-apps/texinfo
		virtual/texi2dvi
		dev-texlive/texlive-fontsrecommended
	)
"

PATCHES=()

# Building with python integration seems to fail without 8G available
# RAM(!)  Since the memory check in check-reqs doesn't count swap, it
# may be unfair to fail the build entirely on the memory test alone.
# Therefore check-reqs_pkg_pretend is deliberately omitted so that we
# ewarn but not eerror.
pkg_pretend() {
	:
}

pkg_setup() {
	if use python; then
		check-reqs_pkg_setup
		python-single-r1_pkg_setup
	fi
}

src_prepare() {
	cmake-utils_src_prepare

	if ! has_version ">=dev-libs/boost-1.70"; then
		sed -r -i \
			-e '/set.BOOST_PYTHON/s/python27/python-2.7/g' \
			"${S}/CMakeLists.txt" \
			|| die "Failed to update CMakeLists.txt for python2.7 boost"
	fi

	# Want to type "info ledger" not "info ledger3"
	sed -i -e 's/ledger3/ledger/g' \
		doc/ledger3.texi \
		doc/CMakeLists.txt \
		test/CheckTexinfo.py \
		tools/cleanup.sh \
		tools/gendocs.sh \
		tools/prepare-commit-msg \
		tools/spellcheck.sh \
		|| die "Failed to update info file name in file contents"

	mv doc/ledger{3,}.texi || die "Failed to rename info file name"

	eapply_user
}

src_configure() {
	local mycmakeargs=(
		-DBUILD_EMACSLISP="$(usex emacs)"
		-DBUILD_DOCS="$(usex doc)"
		-DBUILD_WEB_DOCS="$(usex doc)"
		-DUSE_PYTHON="$(usex python)"
		-DCMAKE_INSTALL_DOCDIR="/usr/share/doc/${PF}"
		-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
		-DBUILD_DEBUG="$(usex debug)"
		-DUSE_PYTHON27_COMPONENT=yes
	)

	cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile

	use doc && cmake-utils_src_make doc
}

src_install() {
	cmake-utils_src_install

	use emacs && elisp-site-file-install "${FILESDIR}/${SITEFILE}"
}

pkg_postinst() {
	use emacs && elisp-site-regen

	einfo
	einfo "Since version 3, vim support is released separately."
	einfo "See https://github.com/ledger/vim-ledger"
	einfo
}

pkg_postrm() {
	use emacs && elisp-site-regen
}

# rainy day TODO:
# - IUSE test