/[gentoo-x86]/eclass/qt4-build.eclass
Gentoo

Diff of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.123 Revision 1.124
1# Copyright 1999-2012 Gentoo Foundation 1# Copyright 1999-2012 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-build.eclass,v 1.123 2012/03/08 14:24:40 pesa Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.124 2012/04/04 16:37:50 pesa Exp $
4 4
5# @ECLASS: qt4-build.eclass 5# @ECLASS: qt4-build.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Qt herd <qt@gentoo.org> 7# Qt herd <qt@gentoo.org>
8# @BLURB: Eclass for Qt4 split ebuilds. 8# @BLURB: Eclass for Qt4 split ebuilds.
12case ${EAPI} in 12case ${EAPI} in
13 2|3|4) : ;; 13 2|3|4) : ;;
14 *) die "qt4-build.eclass requires EAPI 2, 3 or 4." ;; 14 *) die "qt4-build.eclass requires EAPI 2, 3 or 4." ;;
15esac 15esac
16 16
17inherit base eutils multilib toolchain-funcs flag-o-matic versionator 17inherit base eutils flag-o-matic multilib toolchain-funcs versionator
18
19if [[ ${PV} == *9999* ]]; then
20 QT4_BUILD_TYPE="live"
21 inherit git-2
22else
23 QT4_BUILD_TYPE="release"
24fi
25
26HOMEPAGE="http://qt-project.org/ http://qt.nokia.com/"
27LICENSE="|| ( LGPL-2.1 GPL-3 )"
18 28
19MY_PV=${PV/_/-} 29MY_PV=${PV/_/-}
20MY_P=qt-everywhere-opensource-src-${MY_PV} 30MY_P=qt-everywhere-opensource-src-${MY_PV}
21 31
22HOMEPAGE="http://qt.nokia.com/ http://qt-project.org/" 32case ${QT4_BUILD_TYPE} in
33 live)
34 EGIT_REPO_URI="git://gitorious.org/qt/qt.git
35 https://git.gitorious.org/qt/qt.git"
36 EGIT_BRANCH="${PV%.9999}"
37 ;;
38 release)
23SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz" 39 SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz"
24LICENSE="|| ( LGPL-2.1 GPL-3 )" 40 ;;
41esac
25 42
26IUSE="aqua debug pch" 43IUSE="aqua debug pch"
27
28[[ ${CATEGORY}/${PN} != x11-libs/qt-xmlpatterns ]] && 44if [[ ${CATEGORY}/${PN} != x11-libs/qt-xmlpatterns ]]; then
29[[ ${CATEGORY}/${PN} != x11-themes/qgtkstyle ]] &&
30 IUSE+=" +exceptions" 45 IUSE+=" +exceptions"
31 46fi
32if version_is_at_least 4.7.99999999; then 47if version_is_at_least 4.8; then
33 IUSE+=" c++0x qpa" 48 IUSE+=" c++0x qpa"
34fi 49fi
35 50
36DEPEND="dev-util/pkgconfig" 51DEPEND="dev-util/pkgconfig"
52if [[ ${QT4_BUILD_TYPE} == live ]]; then
53 DEPEND+=" dev-lang/perl"
54fi
55
37RDEPEND=" 56RDEPEND="
38 !<x11-libs/qt-assistant-${PV} 57 !<x11-libs/qt-assistant-${PV}
39 !>x11-libs/qt-assistant-${PV}-r9999 58 !>x11-libs/qt-assistant-${PV}-r9999
40 !<x11-libs/qt-core-${PV} 59 !<x11-libs/qt-core-${PV}
41 !>x11-libs/qt-core-${PV}-r9999 60 !>x11-libs/qt-core-${PV}-r9999
81 100
82 # Protect users by not allowing downgrades between releases 101 # Protect users by not allowing downgrades between releases
83 # Downgrading revisions within the same release should be allowed 102 # Downgrading revisions within the same release should be allowed
84 if has_version '>'${CATEGORY}/${P}-r9999; then 103 if has_version '>'${CATEGORY}/${P}-r9999; then
85 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then 104 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
105 eerror
86 eerror "Sanity check to keep you from breaking your system:" 106 eerror "Sanity check to keep you from breaking your system:"
87 eerror " Downgrading Qt is completely unsupported and will break your system!" 107 eerror " Downgrading Qt is completely unsupported and will break your system!"
108 eerror
88 die "aborting to save your system" 109 die "aborting to save your system"
89 else 110 else
90 ewarn "Downgrading Qt is completely unsupported and will break your system!" 111 ewarn "Downgrading Qt is completely unsupported and will break your system!"
91 fi 112 fi
92 fi 113 fi
136# @DESCRIPTION: 157# @DESCRIPTION:
137# Unpacks the sources. 158# Unpacks the sources.
138qt4-build_src_unpack() { 159qt4-build_src_unpack() {
139 setqtenv 160 setqtenv
140 161
162 case ${QT4_BUILD_TYPE} in
163 live)
164 git-2_src_unpack
165 ;;
166 release)
141 local tarball="${MY_P}.tar.gz" target= targets= 167 local tarball="${MY_P}.tar.gz" target= targets=
142 for target in configure LICENSE.GPL3 LICENSE.LGPL projects.pro \ 168 for target in configure LICENSE.GPL3 LICENSE.LGPL projects.pro \
143 src/{qbase,qt_targets,qt_install}.pri bin config.tests \ 169 src/{qbase,qt_targets,qt_install}.pri bin config.tests \
144 mkspecs qmake ${QT4_EXTRACT_DIRECTORIES} 170 mkspecs qmake ${QT4_EXTRACT_DIRECTORIES}
145 do 171 do
146 targets+="${MY_P}/${target} " 172 targets+="${MY_P}/${target} "
147 done 173 done
148 174
149 ebegin "Unpacking parts of ${tarball}:" ${targets//${MY_P}\/} 175 ebegin "Unpacking parts of ${tarball}:" ${targets//${MY_P}\/}
150 tar -xzf "${DISTDIR}/${tarball}" ${targets} 176 tar -xzf "${DISTDIR}/${tarball}" ${targets}
151 eend $? || die "failed to unpack" 177 eend $? || die "failed to unpack"
178 ;;
179 esac
152} 180}
153 181
154# @ECLASS-VARIABLE: PATCHES 182# @ECLASS-VARIABLE: PATCHES
155# @DEFAULT_UNSET 183# @DEFAULT_UNSET
156# @DESCRIPTION: 184# @DESCRIPTION:
168# @DESCRIPTION: 196# @DESCRIPTION:
169# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix 197# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix
170# the build system in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified in /etc/make.conf. 198# the build system in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified in /etc/make.conf.
171qt4-build_src_prepare() { 199qt4-build_src_prepare() {
172 setqtenv 200 setqtenv
173 cd "${S}" 201
202 if [[ ${QT4_BUILD_TYPE} == live ]]; then
203 QTDIR="." ./bin/syncqt || die "syncqt failed"
204 fi
174 205
175 if version_is_at_least 4.7; then 206 if version_is_at_least 4.7; then
176 # fix libX11 dependency on non X packages 207 # fix libX11 dependency on non X packages
177 local nolibx11_pkgs="qt-core qt-dbus qt-script qt-sql qt-test qt-xmlpatterns" 208 local nolibx11_pkgs="qt-core qt-dbus qt-script qt-sql qt-test qt-xmlpatterns"
178 has ${PN} ${nolibx11_pkgs} && qt_nolibx11 209 has ${PN} ${nolibx11_pkgs} && qt_nolibx11
194 skip_project_generation 225 skip_project_generation
195 symlink_binaries_to_buildtree 226 symlink_binaries_to_buildtree
196 fi 227 fi
197 228
198 if [[ ${CHOST} == *86*-apple-darwin* ]]; then 229 if [[ ${CHOST} == *86*-apple-darwin* ]]; then
199 # qmake bus errors with -O2 but -O3 works 230 # qmake bus errors with -O2 or -O3 but -O1 works
231 # Bug 373061
200 replace-flags -O2 -O3 232 replace-flags -O[23] -O1
201 fi 233 fi
202 234
203 # Bug 178652 235 # Bug 178652
204 if [[ $(gcc-major-version) == 3 ]] && use amd64; then 236 if [[ $(gcc-major-version) == 3 ]] && use amd64; then
205 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS" 237 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
256 sed -e 's:/X11R6/:/:' -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die 288 sed -e 's:/X11R6/:/:' -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
257 289
258 if [[ ${CHOST} == *-darwin* ]]; then 290 if [[ ${CHOST} == *-darwin* ]]; then
259 # Set FLAGS *and* remove -arch, since our gcc-apple is multilib 291 # Set FLAGS *and* remove -arch, since our gcc-apple is multilib
260 # crippled (by design) :/ 292 # crippled (by design) :/
293 local mac_gpp_conf=
294 if [[ -f mkspecs/common/mac-g++.conf ]]; then
295 # qt < 4.8 has mac-g++.conf
296 mac_gpp_conf="mkspecs/common/mac-g++.conf"
297 elif [[ -f mkspecs/common/g++-macx.conf ]]; then
298 # qt >= 4.8 has g++-macx.conf
299 mac_gpp_conf="mkspecs/common/g++-macx.conf"
300 else
301 die "no known conf file for mac found"
302 fi
261 sed \ 303 sed \
262 -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ 304 -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
263 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ 305 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
264 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=-headerpad_max_install_names ${LDFLAGS}:" \ 306 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=-headerpad_max_install_names ${LDFLAGS}:" \
265 -e "s:-arch\s\w*::g" \ 307 -e "s:-arch\s\w*::g" \
266 -i mkspecs/common/mac-g++.conf \ 308 -i ${mac_gpp_conf} \
267 || die "sed mkspecs/common/mac-g++.conf failed" 309 || die "sed ${mac_gpp_conf} failed"
268 310
269 # Fix configure's -arch settings that appear in qmake/Makefile and also 311 # Fix configure's -arch settings that appear in qmake/Makefile and also
270 # fix arch handling (automagically duplicates our -arch arg and breaks 312 # fix arch handling (automagically duplicates our -arch arg and breaks
271 # pch). Additionally disable Xarch support. 313 # pch). Additionally disable Xarch support.
314 local mac_gcc_confs="${mac_gpp_conf}"
315 if [[ -f mkspecs/common/gcc-base-macx.conf ]]; then
316 mac_gcc_confs+=" mkspecs/common/gcc-base-macx.conf"
317 fi
272 sed \ 318 sed \
273 -e "s:-arch i386::" \ 319 -e "s:-arch i386::" \
274 -e "s:-arch ppc::" \ 320 -e "s:-arch ppc::" \
275 -e "s:-arch x86_64::" \ 321 -e "s:-arch x86_64::" \
276 -e "s:-arch ppc64::" \ 322 -e "s:-arch ppc64::" \
277 -e "s:-arch \$i::" \ 323 -e "s:-arch \$i::" \
278 -e "/if \[ ! -z \"\$NATIVE_64_ARCH\" \]; then/,/fi/ d" \ 324 -e "/if \[ ! -z \"\$NATIVE_64_ARCH\" \]; then/,/fi/ d" \
279 -e "s:CFG_MAC_XARCH=yes:CFG_MAC_XARCH=no:g" \ 325 -e "s:CFG_MAC_XARCH=yes:CFG_MAC_XARCH=no:g" \
280 -e "s:-Xarch_x86_64::g" \ 326 -e "s:-Xarch_x86_64::g" \
281 -e "s:-Xarch_ppc64::g" \ 327 -e "s:-Xarch_ppc64::g" \
282 -i configure mkspecs/common/mac-g++.conf \ 328 -i configure ${mac_gcc_confs} \
283 || die "sed -arch/-Xarch failed" 329 || die "sed -arch/-Xarch failed"
284 330
285 # On Snow Leopard don't fall back to 10.5 deployment target. 331 # On Snow Leopard don't fall back to 10.5 deployment target.
286 if [[ ${CHOST} == *-apple-darwin10 ]]; then 332 if [[ ${CHOST} == *-apple-darwin10 ]]; then
287 sed -e "s:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET.*:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.6:g" \ 333 sed -e "s:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET.*:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.6:g" \
288 -e "s:-mmacosx-version-min=10.[0-9]:-mmacosx-version-min=10.6:g" \ 334 -e "s:-mmacosx-version-min=10.[0-9]:-mmacosx-version-min=10.6:g" \
289 -i configure mkspecs/common/mac-g++.conf \ 335 -i configure ${mac_gpp_conf} \
290 || die "sed deployment target failed" 336 || die "sed deployment target failed"
291 fi 337 fi
292 fi 338 fi
293 339
294 # this one is needed for all systems with a separate -liconv, apart from 340 # this one is needed for all systems with a separate -liconv, apart from

Legend:
Removed from v.1.123  
changed lines
  Added in v.1.124

  ViewVC Help
Powered by ViewVC 1.1.20