1 |
maksbotan |
1.13 |
# Copyright 1999-2014 Gentoo Foundation |
2 |
maksbotan |
1.1 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
pinkbyte |
1.15 |
# $Header: /var/cvsroot/gentoo-x86/eclass/leechcraft.eclass,v 1.14 2014/04/15 16:06:56 maksbotan Exp $ |
4 |
maksbotan |
1.1 |
# |
5 |
|
|
# @ECLASS: leechcraft.eclass |
6 |
|
|
# @MAINTAINER: |
7 |
maksbotan |
1.2 |
# leechcraft@gentoo.org |
8 |
maksbotan |
1.1 |
# @AUTHOR: |
9 |
|
|
# 0xd34df00d@gmail.com |
10 |
|
|
# NightNord@niifaq.ru |
11 |
vapier |
1.5 |
# @BLURB: Common functions and setup utilities for the LeechCraft app |
12 |
maksbotan |
1.1 |
# @DESCRIPTION: |
13 |
|
|
# The leechcraft eclass contains a common set of functions and steps |
14 |
|
|
# needed to build LeechCraft core or its plugins. |
15 |
|
|
# |
16 |
|
|
# Though this eclass seems to be small at the moment, it seems like a |
17 |
|
|
# good idea to make all plugins inherit from it, since all plugins |
18 |
|
|
# have mostly the same configuring/build process. |
19 |
|
|
# |
20 |
|
|
# Thanks for original eclass to Andrian Nord <NightNord@niifaq.ru>. |
21 |
|
|
# |
22 |
|
|
# Only EAPI >1 supported |
23 |
|
|
|
24 |
|
|
case ${EAPI:-0} in |
25 |
pinkbyte |
1.10 |
4|5) ;; |
26 |
|
|
0|1|2|3) die "EAPI not supported, bug ebuild mantainer" ;; |
27 |
maksbotan |
1.1 |
*) die "Unknown EAPI, bug eclass maintainers" ;; |
28 |
|
|
esac |
29 |
|
|
|
30 |
pinkbyte |
1.7 |
inherit cmake-utils toolchain-funcs versionator |
31 |
maksbotan |
1.1 |
|
32 |
|
|
if [[ ${PV} == 9999 ]]; then |
33 |
|
|
EGIT_REPO_URI="git://github.com/0xd34df00d/leechcraft.git" |
34 |
|
|
EGIT_PROJECT="leechcraft" |
35 |
|
|
|
36 |
|
|
inherit git-2 |
37 |
|
|
else |
38 |
pinkbyte |
1.10 |
DEPEND="app-arch/xz-utils" |
39 |
pinkbyte |
1.11 |
SRC_URI="mirror://sourceforge/leechcraft/leechcraft-${PV}.tar.xz |
40 |
maksbotan |
1.12 |
http://dist.leechcraft.org/LeechCraft/${PV}/leechcraft-${PV}.tar.xz" |
41 |
maksbotan |
1.1 |
S="${WORKDIR}/leechcraft-${PV}" |
42 |
|
|
fi |
43 |
|
|
|
44 |
|
|
HOMEPAGE="http://leechcraft.org/" |
45 |
pinkbyte |
1.15 |
LICENSE="Boost-1.0" |
46 |
maksbotan |
1.1 |
|
47 |
|
|
# @ECLASS-VARIABLE: LEECHCRAFT_PLUGIN_CATEGORY |
48 |
|
|
# @DEFAULT_UNSET |
49 |
|
|
# @DESCRIPTION: |
50 |
|
|
# Set this to the category of the plugin, if any. |
51 |
|
|
: ${LEECHCRAFT_PLUGIN_CATEGORY:=} |
52 |
|
|
|
53 |
|
|
if [[ "${LEECHCRAFT_PLUGIN_CATEGORY}" ]]; then |
54 |
maksbotan |
1.8 |
CMAKE_USE_DIR="${S}"/src/plugins/${LEECHCRAFT_PLUGIN_CATEGORY}/${PN#lc-} |
55 |
|
|
elif [[ ${PN} != lc-core ]]; then |
56 |
|
|
CMAKE_USE_DIR="${S}"/src/plugins/${PN#lc-} |
57 |
maksbotan |
1.1 |
else |
58 |
|
|
CMAKE_USE_DIR="${S}"/src |
59 |
|
|
fi |
60 |
pinkbyte |
1.7 |
|
61 |
|
|
EXPORT_FUNCTIONS "pkg_pretend" |
62 |
|
|
|
63 |
|
|
# @FUNCTION: leechcraft_pkg_pretend |
64 |
|
|
# @DESCRIPTION: |
65 |
|
|
# Determine active compiler version and refuse to build |
66 |
|
|
# if it is not satisfied at least to minimal version, |
67 |
|
|
# supported by upstream developers |
68 |
|
|
leechcraft_pkg_pretend() { |
69 |
|
|
debug-print-function ${FUNCNAME} "$@" |
70 |
|
|
|
71 |
pinkbyte |
1.15 |
# 0.5.85 and later requires at least gcc 4.6 |
72 |
|
|
if [[ ${MERGE_TYPE} != binary ]]; then |
73 |
|
|
[[ $(gcc-major-version) -lt 4 ]] || \ |
74 |
|
|
( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ]] ) \ |
75 |
|
|
&& die "Sorry, but gcc 4.6 or higher is required." |
76 |
pinkbyte |
1.7 |
fi |
77 |
maksbotan |
1.13 |
if version_is_at_least 0.6.66 || ( [[ ${PN} == lc-monocle ]] && version_is_at_least 0.6.65 ); then |
78 |
|
|
# 0.6.65 monocle and all later plugins require at least gcc 4.8 |
79 |
|
|
if [[ ${MERGE_TYPE} != binary ]]; then |
80 |
|
|
[[ $(gcc-major-version) -lt 4 ]] || \ |
81 |
|
|
( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 8 ]] ) \ |
82 |
|
|
&& die "Sorry, but gcc 4.8 or higher is required." |
83 |
|
|
fi |
84 |
|
|
fi |
85 |
pinkbyte |
1.7 |
} |