Lines 1-26
Link Here
|
1 |
# Copyright 2005 Gentoo Foundation |
1 |
# Copyright 2005 Gentoo Foundation |
2 |
# Distributed under the terms of the GNU General Public License v2 |
2 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/qt4.eclass,v 1.27 2007/10/03 14:59:04 caleb Exp $ |
3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/qt4.eclass,v 1.27 2007/10/03 14:59:04 caleb Exp $ |
4 |
# |
4 |
|
5 |
# Author Caleb Tennis <caleb@gentoo.org> |
5 |
# @ECLASS: qt4.eclass |
6 |
# |
6 |
# @MAINTAINER: |
7 |
# This eclass is simple. Inherit it, and in your depend, do something like this: |
7 |
# Caleb Tennis <caleb@gentoo.org> |
8 |
# |
8 |
# @BLURB: |
9 |
# DEPEND="$(qt4_min_version 4)" |
9 |
# Eclass for Qt4 packages |
10 |
# |
10 |
# @DESCRIPTION: |
11 |
# and it handles the rest for you |
11 |
# This eclass contains various functions that may be useful |
12 |
# |
12 |
# when dealing with packages using Qt4 libraries. |
|
|
13 |
|
13 |
# 08.16.06 - Renamed qt_min_* to qt4_min_* to avoid conflicts with the qt3 eclass. |
14 |
# 08.16.06 - Renamed qt_min_* to qt4_min_* to avoid conflicts with the qt3 eclass. |
14 |
# - Caleb Tennis <caleb@gentoo.org> |
15 |
# - Caleb Tennis <caleb@gentoo.org> |
15 |
|
16 |
|
16 |
inherit eutils multilib toolchain-funcs versionator |
17 |
inherit eutils multilib toolchain-funcs versionator |
17 |
|
18 |
|
18 |
IUSE="${IUSE}" |
19 |
IUSE="${IUSE} debug" |
19 |
|
20 |
|
20 |
QTPKG="x11-libs/qt-" |
21 |
QTPKG="x11-libs/qt-" |
21 |
QT4MAJORVERSIONS="4.3 4.2 4.1 4.0" |
22 |
QT4MAJORVERSIONS="4.3 4.2 4.1 4.0" |
22 |
QT4VERSIONS="4.3.2 4.3.1-r1 4.3.1 4.3.0-r2 4.3.0-r1 4.3.0 4.3.0_rc1 4.3.0_beta1 4.2.3-r1 4.2.3 4.2.2 4.2.1 4.2.0-r2 4.2.0-r1 4.2.0 4.1.4-r2 4.1.4-r1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.0.1 4.0.0" |
23 |
QT4VERSIONS="4.3.2 4.3.1-r1 4.3.1 4.3.0-r2 4.3.0-r1 4.3.0 4.3.0_rc1 4.3.0_beta1 4.2.3-r1 4.2.3 4.2.2 4.2.1 4.2.0-r2 4.2.0-r1 4.2.0 4.1.4-r2 4.1.4-r1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.0.1 4.0.0" |
23 |
|
24 |
|
|
|
25 |
# @FUNCTION: qt4_min_version |
26 |
# @USAGE: [minimum version] |
27 |
# @DESCRIPTION: |
28 |
# This function should be called in package DEPENDs whenever it depends on qt4. |
29 |
# Simple example - in your depend, do something like this: |
30 |
# DEPEND="$(qt4_min_version 4.2)" |
31 |
# if package can be build with qt-4.2 or higher. |
24 |
qt4_min_version() { |
32 |
qt4_min_version() { |
25 |
echo "|| (" |
33 |
echo "|| (" |
26 |
qt4_min_version_list "$@" |
34 |
qt4_min_version_list "$@" |
Lines 53-76
Link Here
|
53 |
echo "${VERSIONS}" |
61 |
echo "${VERSIONS}" |
54 |
} |
62 |
} |
55 |
|
63 |
|
|
|
64 |
# @FUNCTION: qt4_pkg_setup |
65 |
# @MAINTAINER: |
66 |
# Caleb Tennis <caleb@gentoo.org> |
67 |
# Przemyslaw Maciag <troll@gentoo.org> |
68 |
# @DESCRIPTION: |
69 |
# Default pkg_setup function for packages that depends on qt4. If you have to |
70 |
# create ebuilds own pkg_setup in your ebuild, call qt4_pkg_setup in it. |
71 |
# This function uses two global vars from ebuild: |
72 |
# - QT4_BUILT_WITH_USE_CHECK - contains use flag that need to turned on in qt4 |
73 |
# - QT4_OPTIONAL_BUILT_WITH_USE_CHECK - qt4 flags that gives some functionality, |
74 |
# but can be safetly disabled in package (so qt4 don't have to be recompiled) |
56 |
qt4_pkg_setup() { |
75 |
qt4_pkg_setup() { |
|
|
76 |
local requiredflags="" |
57 |
for x in ${QT4_BUILT_WITH_USE_CHECK}; do |
77 |
for x in ${QT4_BUILT_WITH_USE_CHECK}; do |
58 |
if ! built_with_use =x11-libs/qt-4* $x; then |
78 |
if ! built_with_use =x11-libs/qt-4* ${x}; then |
59 |
die "This package requires Qt4 to be built with the '${x}' use flag." |
79 |
requiredflags="${requiredflags} ${x}" |
|
|
80 |
fi |
81 |
done |
82 |
|
83 |
local optionalflags="" |
84 |
for x in ${QT4_OPTIONAL_BUILT_WITH_USE_CHECK}; do |
85 |
if use ${x} && ! built_with_use =x11-libs/qt-4* ${x}; then |
86 |
optionalflags="${optionalflags} ${x}" |
60 |
fi |
87 |
fi |
61 |
done |
88 |
done |
|
|
89 |
|
90 |
local diemessage="" |
91 |
if [[ ${requiredflags} != "" ]]; then |
92 |
eerror |
93 |
eerror "(1) In order to compile ${PN} package first you need to build qt4" |
94 |
eerror "with USE=\"${requiredflags}\" flag(s)" |
95 |
eerror |
96 |
diemessage="(1) recompile qt4 with \"${requiredflags}\" USE flag(s) ; " |
97 |
fi |
98 |
if [[ ${optionalflags} != "" ]]; then |
99 |
eerror |
100 |
eerror "(2) You are trying to compile ${PN} package with" |
101 |
eerror "USE=\"${optionalflags}\"" |
102 |
eerror "while qt4 is built without this particular flag(s): it will" |
103 |
eerror "not work." |
104 |
eerror |
105 |
eerror "Possible solutions to this problem are:" |
106 |
eerror "a) install package ${PN} without \"${optionalflags}\" USE flag(s)" |
107 |
eerror "b) re-emerge qt4 with \"${optionalflags}\" USE flag(s)" |
108 |
eerror |
109 |
diemessage="${diemessage}(2) recompile qt4 with \"${optionalflags}\" USE flag(s) or disable them for ${PN} package\n" |
110 |
fi |
111 |
|
112 |
[[ ${diemessage} != "" ]] && die "can't emerge ${PN}: ${diemessage}" |
62 |
} |
113 |
} |
63 |
|
114 |
|
|
|
115 |
# @FUNCTION: eqmake4 |
116 |
# @USAGE: [.pro file] [additional parameters to qmake] |
117 |
# @MAINTAINER: |
118 |
# Przemyslaw Maciag <troll@gentoo.org> |
119 |
# Davide Pesavento <davidepesa@gmail.com> |
120 |
# @DESCRIPTION: |
121 |
# Runs qmake on the specified .pro file (defaults to |
122 |
# ${PN}.pro if eqmake4 was called with no argument). |
123 |
# Additional parameters are passed unmodified to qmake. |
64 |
eqmake4() { |
124 |
eqmake4() { |
65 |
local LOGFILE="${T}/qmake-$$.out" |
125 |
local LOGFILE="${T}/qmake-$$.out" |
66 |
local projprofile="${1}" |
126 |
local projprofile="${1}" |
67 |
[ -z ${projprofile} ] && projprofile="${PN}.pro" |
127 |
[[ -z ${projprofile} ]] && projprofile="${PN}.pro" |
68 |
shift 1 |
128 |
shift 1 |
69 |
|
129 |
|
70 |
ebegin "Processing qmake ${projprofile}" |
130 |
ebegin "Processing qmake ${projprofile}" |
71 |
|
131 |
|
72 |
# file exists? |
132 |
# file exists? |
73 |
if [ ! -f ${projprofile} ]; then |
133 |
if [[ ! -f ${projprofile} ]]; then |
74 |
echo |
134 |
echo |
75 |
eerror "Project .pro file \"${projprofile}\" does not exists" |
135 |
eerror "Project .pro file \"${projprofile}\" does not exists" |
76 |
eerror "qmake cannot handle non-existing .pro files" |
136 |
eerror "qmake cannot handle non-existing .pro files" |
Lines 86-94
Link Here
|
86 |
|
146 |
|
87 |
# as a workaround for broken qmake, put everything into file |
147 |
# as a workaround for broken qmake, put everything into file |
88 |
if has debug ${IUSE} && use debug; then |
148 |
if has debug ${IUSE} && use debug; then |
89 |
echo -e "$CONFIG -= release\nCONFIG += no_fixpath debug" >> ${projprofile} |
149 |
echo -e "\nCONFIG -= release\nCONFIG += no_fixpath debug" >> ${projprofile} |
90 |
else |
150 |
else |
91 |
echo -e "$CONFIG -= debug\nCONFIG += no_fixpath release" >> ${projprofile} |
151 |
echo -e "\nCONFIG -= debug\nCONFIG += no_fixpath release" >> ${projprofile} |
92 |
fi |
152 |
fi |
93 |
|
153 |
|
94 |
/usr/bin/qmake ${projprofile} \ |
154 |
/usr/bin/qmake ${projprofile} \ |
Lines 110-116
Link Here
|
110 |
eend ${result} |
170 |
eend ${result} |
111 |
|
171 |
|
112 |
# was qmake successful? |
172 |
# was qmake successful? |
113 |
if [ ${result} -ne 0 ]; then |
173 |
if [[ ${result} -ne 0 ]]; then |
114 |
echo |
174 |
echo |
115 |
eerror "Running qmake on \"${projprofile}\" has failed" |
175 |
eerror "Running qmake on \"${projprofile}\" has failed" |
116 |
echo |
176 |
echo |