/[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.47 Revision 1.54
1# Copyright 2007-2009 Gentoo Foundation 1# Copyright 2007-2009 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.47 2009/10/03 19:29:04 ayoy Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.54 2009/12/06 09:34:36 hwoarang Exp $
4 4
5# @ECLASS: qt4-build.eclass 5# @ECLASS: qt4-build.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Ben de Groot <yngwin@gentoo.org>, 7# Ben de Groot <yngwin@gentoo.org>,
8# Markos Chandras <hwoarang@gentoo.org>, 8# Markos Chandras <hwoarang@gentoo.org>,
44 !>x11-libs/qt-webkit-${PV}-r9999 44 !>x11-libs/qt-webkit-${PV}-r9999
45 !<x11-libs/qt-xmlpatterns-${PV} 45 !<x11-libs/qt-xmlpatterns-${PV}
46 !>x11-libs/qt-xmlpatterns-${PV}-r9999 46 !>x11-libs/qt-xmlpatterns-${PV}-r9999
47" 47"
48case "${PV}" in 48case "${PV}" in
49 4.?.?_rc*) 49 4.?.?_rc* | 4.?.?_beta* )
50 SRCTYPE="${SRCTYPE:-opensource-src}" 50 SRCTYPE="${SRCTYPE:-opensource-src}"
51 MY_PV="${PV/_rc/-rc}" 51 MY_PV="${PV/_/-}"
52 ;; 52 ;;
53 *) 53 *)
54 SRCTYPE="${SRCTYPE:-opensource-src}" 54 SRCTYPE="${SRCTYPE:-opensource-src}"
55 MY_PV="${PV}" 55 MY_PV="${PV}"
56 ;; 56 ;;
57esac 57esac
58
59if version_is_at_least 4.5.99999999 ${PV} ; then
60 MY_P="qt-everywhere-${SRCTYPE}-${MY_PV}"
61else
58MY_P=qt-x11-${SRCTYPE}-${MY_PV} 62 MY_P="qt-x11-${SRCTYPE}-${MY_PV}"
63fi
59S=${WORKDIR}/${MY_P} 64S=${WORKDIR}/${MY_P}
60 65
61HOMEPAGE="http://qt.nokia.com/" 66HOMEPAGE="http://qt.nokia.com/"
62SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.bz2"
63if version_is_at_least 4.5.3 ${PV} ; then 67if version_is_at_least 4.5.3 ${PV} ; then
64 SRC_URI="${SRC_URI/bz2/gz}" 68 SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz"
69else
70 SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.bz2"
65fi 71fi
66 72
67case "${PV}" in 73case "${PV}" in
68 4.4.?) SRC_URI="${SRC_URI} mirror://gentoo/${MY_P}-headers.tar.bz2" ;; 74 4.4.?) SRC_URI="${SRC_URI} mirror://gentoo/${MY_P}-headers.tar.bz2" ;;
69 *) ;; 75 *) ;;
95 if ! version_is_at_least 4.1 $(gcc-version) ; then 101 if ! version_is_at_least 4.1 $(gcc-version) ; then
96 ewarn "Using a GCC version lower than 4.1 is not supported!" 102 ewarn "Using a GCC version lower than 4.1 is not supported!"
97 echo 103 echo
98 ebeep 3 104 ebeep 3
99 fi 105 fi
106
107 if [[ "${P}" == "qt-core-4.6.0_rc1" ]]; then
108 ewarn
109 ewarn "Binary compatibility broke between 4.6.0_beta1 and 4.6.0_rc1."
110 ewarn "If you are upgrading from 4.6.0_beta1, you'll have to"
111 ewarn "re-emerge everything that depends on Qt."
112 ewarn "Use the following command:"
113 ewarn
114 ewarn " emerge -av1 \$(for i in \$(qlist -IC x11-libs/qt-);"
115 ewarn " do equery -q d \$i | grep -v 'x11-libs/qt-' |"
116 ewarn " sed \"s/^/=/\"; done)"
117 ewarn
118 ewarn "YOU'VE BEEN WARNED"
119 ewarn
120 ebeep 3
121 fi
122
100} 123}
101 124
102# @ECLASS-VARIABLE: QT4_TARGET_DIRECTORIES 125# @ECLASS-VARIABLE: QT4_TARGET_DIRECTORIES
103# @DESCRIPTION: 126# @DESCRIPTION:
104# Arguments for build_target_directories. Takes the directories, in which the 127# Arguments for build_target_directories. Takes the directories, in which the
170 skip_qmake_build_patch 193 skip_qmake_build_patch
171 skip_project_generation_patch 194 skip_project_generation_patch
172 symlink_binaries_to_buildtree 195 symlink_binaries_to_buildtree
173 fi 196 fi
174 197
198 # Bug 282984 && Bug 295530
199 sed -e "s:\(^SYSTEM_VARIABLES\):CC=$(tc-getCC)\nCXX=$(tc-getCXX)\n\1:" \
200 -i configure || die "sed qmake compilers failed"
201 sed -e "s:\(\$MAKE\):\1 CC=$(tc-getCC) CXX=$(tc-getCXX) LD=$(tc-getCXX):" \
202 -i config.tests/unix/compile.test || die "sed test compilers failed"
203
175 # Bug 178652 204 # Bug 178652
176 if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then 205 if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then
177 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS" 206 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
178 append-flags -fno-gcse 207 append-flags -fno-gcse
179 fi 208 fi
183 ewarn "Appending -fno-stack-protector to CXXFLAGS" 212 ewarn "Appending -fno-stack-protector to CXXFLAGS"
184 append-cxxflags -fno-stack-protector 213 append-cxxflags -fno-stack-protector
185 # Bug 253127 214 # Bug 253127
186 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \ 215 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \
187 -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed" 216 -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed"
217 fi
218
219 # Bug 261632
220 if use ppc64; then
221 ewarn "Appending -mminimal-toc to CFLAGS/CXXFLAGS"
222 append-flags -mminimal-toc
188 fi 223 fi
189 224
190 # Bug 172219 225 # Bug 172219
191 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ 226 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
192 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ 227 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
295 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch $(tc-arch)" ;; 330 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch $(tc-arch)" ;;
296 hppa|sh) myconf="${myconf} -arch generic" ;; 331 hppa|sh) myconf="${myconf} -arch generic" ;;
297 *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;; 332 *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;;
298 esac 333 esac
299 334
335 # 4.6: build qt-core with exceptions or qt-xmlpatterns won't build
336 local exceptions=
337 case "${PV}" in
338 4.6.*)
339 if [[ ${PN} != "qt-core" ]] && [[ ${PN} != "qt-xmlpatterns" ]]; then
340 exceptions="-no-exceptions"
341 fi
342 ;;
343 *)
344 [[ ${PN} == "qt-xmlpatterns" ]] || exceptions="-no-exceptions"
345 ;;
346 esac
347
300 myconf="${myconf} -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license -no-rpath 348 myconf="${myconf} -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license
301 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} 349 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
302 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} 350 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR}
303 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR} 351 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR}
304 -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR} 352 -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR}
305 -demosdir ${QTDEMOSDIR} -silent -fast 353 -demosdir ${QTDEMOSDIR} -silent -fast
306 $([[ ${PN} == qt-xmlpatterns ]] || echo -no-exceptions) 354 ${exceptions}
307 -reduce-relocations -nomake examples -nomake demos" 355 -reduce-relocations -nomake examples -nomake demos"
308 356
309 # Make eclass 4.5.x ready 357 # Make eclass >= 4.5.x ready
310 case "${MY_PV}" in 358 case "${MY_PV}" in
311 4.5.?) 359 4.5.* | 4.6.* )
312 myconf="${myconf} -opensource" 360 myconf="${myconf} -opensource"
313 ;; 361 ;;
314 esac 362 esac
315 363
316 echo "${myconf}" 364 echo "${myconf}"
448# @FUNCTION: qt4-build_pkg_postinst 496# @FUNCTION: qt4-build_pkg_postinst
449# @DESCRIPTION: Generate configuration, plus throws a message about possible 497# @DESCRIPTION: Generate configuration, plus throws a message about possible
450# breakages and proposed solutions. 498# breakages and proposed solutions.
451qt4-build_pkg_postinst() { 499qt4-build_pkg_postinst() {
452 generate_qconfigs 500 generate_qconfigs
501
502 if [[ "${PN}" == "qt-core" ]]; then
453 echo 503 echo
454 ewarn "After a rebuild or upgrade of Qt, it can happen that Qt plugins (such as Qt" 504 ewarn "After a rebuild or upgrade of Qt, it can happen that Qt plugins (such as Qt"
455 ewarn "and KDE styles and widgets) can no longer be loaded. In this situation you" 505 ewarn "and KDE styles and widgets) can no longer be loaded. In this situation you"
456 ewarn "should recompile the packages providing these plugins. Also, make sure you" 506 ewarn "should recompile the packages providing these plugins. Also, make sure you"
457 ewarn "compile the Qt packages, and the packages that depend on it, with the same" 507 ewarn "compile the Qt packages, and the packages that depend on it, with the same"
458 ewarn "GCC version and the same USE flag settings (especially the debug flag)." 508 ewarn "GCC version and the same USE flag settings (especially the debug flag)."
459 ewarn 509 ewarn
460 ewarn "Packages that typically need to be recompiled are kdelibs from KDE4, any" 510 ewarn "Packages that typically need to be recompiled are kdelibs from KDE4, any"
461 ewarn "additional KDE4/Qt4 styles, qscintilla and PyQt4. Before filing a bug report," 511 ewarn "additional KDE4/Qt4 styles, qscintilla and PyQt4. Before filing a bug report,"
462 ewarn "make sure all your Qt4 packages are up-to-date and built with the same" 512 ewarn "make sure all your Qt4 packages are up-to-date and built with the same"
463 ewarn "configuration." 513 ewarn "configuration."
464 ewarn 514 ewarn
465 ewarn "For more information, see http://doc.trolltech.com/${PV%.*}/plugins-howto.html" 515 ewarn "For more information, see http://doc.trolltech.com/${PV%.*}/plugins-howto.html"
466 echo 516 echo
517 fi
467} 518}
468 519
469# @FUNCTION: skip_qmake_build_patch 520# @FUNCTION: skip_qmake_build_patch
470# @DESCRIPTION: 521# @DESCRIPTION:
471# Don't need to build qmake, as it's already installed from qt-core 522# Don't need to build qmake, as it's already installed from qt-core

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.54

  ViewVC Help
Powered by ViewVC 1.1.20