Gentoo Archives: gentoo-commits

From: Johannes Huber <johu@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Thu, 14 Jul 2016 06:54:44
Message-Id: 1468479251.4807f16b028a94326972428907a97cd12a018730.johu@gentoo
1 commit: 4807f16b028a94326972428907a97cd12a018730
2 Author: Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
3 AuthorDate: Wed Jul 13 21:56:02 2016 +0000
4 Commit: Johannes Huber <johu <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 14 06:54:11 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4807f16b
7
8 kde5.eclass: Add KDEBASE=kdel10n and helper functions
9
10 Signed-off-by: Johannes Huber <johu <AT> gentoo.org>
11
12 eclass/kde5.eclass | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
13 1 file changed, 90 insertions(+)
14
15 diff --git a/eclass/kde5.eclass b/eclass/kde5.eclass
16 index 72657f4..c095aae 100644
17 --- a/eclass/kde5.eclass
18 +++ b/eclass/kde5.eclass
19 @@ -99,6 +99,16 @@ else
20 : ${KDE_TEST:=false}
21 fi
22
23 +# @ECLASS-VARIABLE: KDE_L10N
24 +# @DESCRIPTION:
25 +# This is an array of translations this ebuild supports. These translations
26 +# are automatically added to IUSE.
27 +if [[ ${KDEBASE} = kdel10n ]]; then
28 + if [[ -n ${KDE_L10N} ]]; then
29 + IUSE="${IUSE} $(printf 'l10n_%s ' ${KDE_L10N[@]})"
30 + fi
31 +fi
32 +
33 # @ECLASS-VARIABLE: KDE_PUNT_BOGUS_DEPS
34 # @DESCRIPTION:
35 # If set to "false", do nothing.
36 @@ -115,6 +125,8 @@ fi
37
38 if [[ ${KDEBASE} = kdevelop ]]; then
39 HOMEPAGE="https://www.kdevelop.org/"
40 +elif [[ ${KDEBASE} = kdel10n ]]; then
41 + HOMEPAGE="http://l10n.kde.org"
42 else
43 HOMEPAGE="https://www.kde.org/"
44 fi
45 @@ -279,6 +291,21 @@ _calculate_src_uri() {
46 esac
47 ;;
48 esac
49 +
50 + if [[ ${KDEBASE} = kdel10n ]] ; then
51 + local uri_base="${SRC_URI/${PN}-${PV}.tar.xz/}kde-l10n/kde-l10n"
52 + SRC_URI=""
53 + for my_l10n in ${KDE_L10N[@]} ; do
54 + case ${my_l10n} in
55 + sr | sr-ijekavsk | sr-Latn-ijekavsk | sr-Latn)
56 + SRC_URI="${SRC_URI} l10n_${my_l10n}? ( ${uri_base}-sr-${PV}.tar.xz )"
57 + ;;
58 + *)
59 + SRC_URI="${SRC_URI} l10n_${my_l10n}? ( ${uri_base}-$(kde_l10n2lingua ${my_l10n})-${PV}.tar.xz )"
60 + ;;
61 + esac
62 + done
63 + fi
64 }
65
66 # Determine fetch location for live sources
67 @@ -358,6 +385,14 @@ kde5_src_unpack() {
68 git-r3_src_unpack
69 ;;
70 esac
71 + elif [[ ${KDEBASE} = kdel10n ]]; then
72 + mkdir -p "${S}" || die "Failed to create source dir ${S}"
73 + cd "${S}"
74 + for my_tar in ${A}; do
75 + tar -xpf "${DISTDIR}/${my_tar}" --xz \
76 + "${my_tar/.tar.xz/}/CMakeLists.txt" "${my_tar/.tar.xz/}/5" 2> /dev/null ||
77 + elog "${my_tar}: tar extract command failed at least partially - continuing"
78 + done
79 else
80 default
81 fi
82 @@ -369,6 +404,32 @@ kde5_src_unpack() {
83 kde5_src_prepare() {
84 debug-print-function ${FUNCNAME} "$@"
85
86 + if [[ ${KDEBASE} = kdel10n ]]; then
87 + # move known variant subdirs to root dir, currently sr@*
88 + use_if_iuse l10n_sr-ijekavsk && _l10n_variant_subdir2root sr-ijekavsk sr
89 + use_if_iuse l10n_sr-Latn-ijekavsk && _l10n_variant_subdir2root sr-Latn-ijekavsk sr
90 + use_if_iuse l10n_sr-Latn && _l10n_variant_subdir2root sr-Latn sr
91 + if use_if_iuse l10n_sr; then
92 + rm -rf kde-l10n-sr-${PV}/5/sr/sr@* || die "Failed to cleanup L10N=sr"
93 + _l10n_variant_subdir_buster sr
94 + elif [[ -d kde-l10n-sr-${PV} ]]; then
95 + # having any variant selected means parent lingua will be unpacked as well
96 + rm -r kde-l10n-sr-${PV} || die "Failed to remove sr parent lingua"
97 + fi
98 +
99 + # add all l10n directories to cmake
100 + cat <<-EOF > CMakeLists.txt || die
101 +project(${PN})
102 +cmake_minimum_required(VERSION 2.8.12)
103 +$(printf "add_subdirectory( %s )\n" \
104 + `find . -mindepth 1 -maxdepth 1 -type d | sed -e "s:^\./::"`)
105 +EOF
106 +
107 + # drop KDE4-based part
108 + find -maxdepth 2 -type f -name CMakeLists.txt -exec \
109 + sed -i -e "/add_subdirectory(4)/ s/^/#DONT/" {} + || die
110 + fi
111 +
112 cmake-utils_src_prepare
113
114 # only build examples when required
115 @@ -577,4 +638,33 @@ kde5_pkg_postrm() {
116 xdg_pkg_postrm
117 }
118
119 +_l10n_variant_subdir2root() {
120 + local lingua=$(kde_l10n2lingua ${1})
121 + local src=kde-l10n-${2}-${PV}
122 + local dest=kde-l10n-${lingua}-${PV}/5
123 +
124 + # create variant rootdir structure from parent lingua and adapt it
125 + mkdir -p ${dest} || die "Failed to create ${dest}"
126 + mv ${src}/5/${2}/${lingua} ${dest}/${lingua} || die "Failed to create ${dest}/${lingua}"
127 + cp -f ${src}/CMakeLists.txt kde-l10n-${lingua}-${PV} || die "Failed to prepare L10N=${1} subdir"
128 + echo "add_subdirectory(${lingua})" > ${dest}/CMakeLists.txt ||
129 + die "Failed to prepare ${dest}/CMakeLists.txt"
130 + cp -f ${src}/5/${2}/CMakeLists.txt ${dest}/${lingua} ||
131 + die "Failed to create ${dest}/${lingua}/CMakeLists.txt"
132 + sed -e "s/${2}/${lingua}/" -i ${dest}/${lingua}/CMakeLists.txt ||
133 + die "Failed to prepare ${dest}/${lingua}/CMakeLists.txt"
134 +
135 + _l10n_variant_subdir_buster ${1}
136 +}
137 +
138 +_l10n_variant_subdir_buster() {
139 + local dir=kde-l10n-$(kde_l10n2lingua ${1})-${PV}/5/$(kde_l10n2lingua ${1})
140 +
141 + sed -e "/^add_subdirectory(/d" -i ${dir}/CMakeLists.txt || die "Failed to cleanup ${dir} subdir"
142 +
143 + for subdir in $(find ${dir} -mindepth 1 -maxdepth 1 -type d | sed -e "s:^\./::"); do
144 + echo "add_subdirectory(${subdir##*/})" >> ${dir}/CMakeLists.txt
145 + done
146 +}
147 +
148 fi