/[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.57 Revision 1.62
1# Copyright 1999-2009 Gentoo Foundation 1# Copyright 1999-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.57 2009/12/24 21:40:23 abcd Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.62 2010/01/21 05:57:09 vapier 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>,
12# @DESCRIPTION: 12# @DESCRIPTION:
13# This eclass contains various functions that are used when building Qt4 13# This eclass contains various functions that are used when building Qt4
14 14
15inherit base eutils multilib toolchain-funcs flag-o-matic versionator 15inherit base eutils multilib toolchain-funcs flag-o-matic versionator
16 16
17MY_PV=${PV/_/-}
18if version_is_at_least 4.5.99999999; then
19 MY_P=qt-everywhere-opensource-src-${MY_PV}
20else
21 MY_P=qt-x11-opensource-src-${MY_PV}
22fi
23
24HOMEPAGE="http://qt.nokia.com/"
25SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz"
26
27LICENSE="|| ( LGPL-2.1 GPL-3 )"
17IUSE="debug pch aqua" 28IUSE="debug pch aqua"
29
18RDEPEND=" 30RDEPEND="
19 !<x11-libs/qt-assistant-${PV} 31 !<x11-libs/qt-assistant-${PV}
20 !>x11-libs/qt-assistant-${PV}-r9999 32 !>x11-libs/qt-assistant-${PV}-r9999
21 !<x11-libs/qt-core-${PV} 33 !<x11-libs/qt-core-${PV}
22 !>x11-libs/qt-core-${PV}-r9999 34 !>x11-libs/qt-core-${PV}-r9999
44 !>x11-libs/qt-webkit-${PV}-r9999 56 !>x11-libs/qt-webkit-${PV}-r9999
45 !<x11-libs/qt-xmlpatterns-${PV} 57 !<x11-libs/qt-xmlpatterns-${PV}
46 !>x11-libs/qt-xmlpatterns-${PV}-r9999 58 !>x11-libs/qt-xmlpatterns-${PV}-r9999
47" 59"
48 60
49MY_PV=${PV/_/-} 61S=${WORKDIR}/${MY_P}
50
51HOMEPAGE="http://qt.nokia.com/"
52if version_is_at_least 4.5.99999999 ${PV} ; then
53 SRC_URI="http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${MY_PV}.tar.gz"
54else
55 SRC_URI="aqua? ( http://get.qt.nokia.com/qt/source/qt-mac-opensource-src-${MY_PV}.tar.gz )
56 !aqua? ( http://get.qt.nokia.com/qt/source/qt-x11-opensource-src-${MY_PV}.tar.gz )"
57fi
58
59LICENSE="|| ( LGPL-2.1 GPL-3 )"
60 62
61# @FUNCTION: qt4-build_pkg_setup 63# @FUNCTION: qt4-build_pkg_setup
62# @DESCRIPTION: 64# @DESCRIPTION:
63# Sets up S, MY_P, PATH, and LD_LIBRARY_PATH 65# Sets up S, MY_P, PATH, and LD_LIBRARY_PATH
64qt4-build_pkg_setup() { 66qt4-build_pkg_setup() {
65 [[ ${EAPI} == 2 ]] && use !prefix && EPREFIX= 67 [[ ${EAPI} == 2 ]] && use !prefix && EPREFIX=
66 68
67 local MY_GE
68 if version_is_at_least 4.5.99999999 ${PV} ; then
69 MY_P=qt-everywhere-opensource-src-${MY_PV}
70 else
71 use aqua \
72 && MY_GE=mac \
73 || MY_GE=x11
74 MY_P=qt-${MY_GE}-opensource-src-${MY_PV}
75 fi
76 S=${WORKDIR}/${MY_P}
77 69
78 PATH="${S}/bin${PATH:+:}${PATH}" 70 PATH="${S}/bin${PATH:+:}${PATH}"
79 if [[ ${CHOST} != *-darwin* ]]; then 71 if [[ ${CHOST} != *-darwin* ]]; then
80 LD_LIBRARY_PATH="${S}/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" 72 LD_LIBRARY_PATH="${S}/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"
81 else 73 else
102 if ! version_is_at_least 4.1 $(gcc-version); then 94 if ! version_is_at_least 4.1 $(gcc-version); then
103 ewarn "Using a GCC version lower than 4.1 is not supported!" 95 ewarn "Using a GCC version lower than 4.1 is not supported!"
104 echo 96 echo
105 ebeep 3 97 ebeep 3
106 fi 98 fi
107
108 if [[ ${P} == qt-core-4.6.0_rc1 ]]; then
109 ewarn
110 ewarn "Binary compatibility broke between 4.6.0_beta1 and 4.6.0_rc1."
111 ewarn "If you are upgrading from 4.6.0_beta1, you'll have to"
112 ewarn "re-emerge everything that depends on Qt."
113 ewarn "Use the following command:"
114 ewarn
115 ewarn " emerge -av1 \$(for i in \$(qlist -IC x11-libs/qt-);"
116 ewarn " do equery -q d \$i | grep -v 'x11-libs/qt-' |"
117 ewarn " sed \"s/^/=/\"; done)"
118 ewarn
119 ewarn "YOU'VE BEEN WARNED"
120 ewarn
121 ebeep 3
122 fi
123
124} 99}
125 100
126# @ECLASS-VARIABLE: QT4_TARGET_DIRECTORIES 101# @ECLASS-VARIABLE: QT4_TARGET_DIRECTORIES
127# @DESCRIPTION: 102# @DESCRIPTION:
128# Arguments for build_target_directories. Takes the directories, in which the 103# Arguments for build_target_directories. Takes the directories, in which the
144 ${QT4_EXTRACT_DIRECTORIES}; do 119 ${QT4_EXTRACT_DIRECTORIES}; do
145 targets+=" ${MY_P}/${target}" 120 targets+=" ${MY_P}/${target}"
146 done 121 done
147 122
148 echo tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets} 123 echo tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets}
149 tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets} 124 tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets} || die
150} 125}
151 126
152# @ECLASS-VARIABLE: PATCHES 127# @ECLASS-VARIABLE: PATCHES
153# @DESCRIPTION: 128# @DESCRIPTION:
154# In case you have patches to apply, specify them in PATCHES variable. Make sure 129# In case you have patches to apply, specify them in PATCHES variable. Make sure
299 unset glibflags 274 unset glibflags
300 fi 275 fi
301 276
302 if use aqua ; then 277 if use aqua ; then
303 # On (snow) leopard use the new (frameworked) cocoa code. 278 # On (snow) leopard use the new (frameworked) cocoa code.
304 if [[ $(uname -r | cut -d . -f 1) -ge 9 ]] ; then 279 if [[ ${CHOST##*-darwin} -ge 9 ]] ; then
305 myconf+=" -cocoa -framework" 280 myconf+=" -cocoa -framework"
306 281
307 # We are crazy and build cocoa + qt3support :-) 282 # We are crazy and build cocoa + qt3support :-)
308 if use qt3support; then 283 if use qt3support; then
309 sed -e "/case \"\$PLATFORM,\$CFG_MAC_COCOA\" in/,/;;/ s|CFG_QT3SUPPORT=\"no\"|CFG_QT3SUPPORT=\"yes\"|" \ 284 sed -e "/case \"\$PLATFORM,\$CFG_MAC_COCOA\" in/,/;;/ s|CFG_QT3SUPPORT=\"no\"|CFG_QT3SUPPORT=\"yes\"|" \
338# @FUNCTION: fix_includes 313# @FUNCTION: fix_includes
339# @DESCRIPTION: 314# @DESCRIPTION:
340# For MacOSX we need to add some symlinks when frameworks are 315# For MacOSX we need to add some symlinks when frameworks are
341# being used, to avoid complications with some more or less stupid packages. 316# being used, to avoid complications with some more or less stupid packages.
342fix_includes() { 317fix_includes() {
343 if use aqua && [[ $(uname -r | cut -d . -f 1) -ge 9 ]] ; then 318 if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]] ; then
344 # Some packages tend to include <Qt/...> 319 # Some packages tend to include <Qt/...>
345 dodir "${QTHEADERDIR#${EPREFIX}}"/Qt 320 dodir "${QTHEADERDIR#${EPREFIX}}"/Qt
346 321
347 # Fake normal headers when frameworks are installed... eases life later on 322 # Fake normal headers when frameworks are installed... eases life later on
348 local dest f 323 local dest f
401# Sets up some standard configure options, like libdir (if necessary), whether 376# Sets up some standard configure options, like libdir (if necessary), whether
402# debug info is wanted or not. 377# debug info is wanted or not.
403standard_configure_options() { 378standard_configure_options() {
404 local myconf= 379 local myconf=
405 380
406 # Doesn't need ${EPREFIX} because get_libdir() is *always* lib on prefix
407 [[ $(get_libdir) != lib ]] && myconf+=" -L/usr/$(get_libdir)" 381 [[ $(get_libdir) != lib ]] && myconf+=" -L${EPREFIX}/usr/$(get_libdir)"
408 382
409 # Disable visibility explicitly if gcc version isn't 4 383 # Disable visibility explicitly if gcc version isn't 4
410 if [[ $(gcc-major-version) -lt 4 ]]; then 384 if [[ $(gcc-major-version) -lt 4 ]]; then
411 myconf+=" -no-reduce-exports" 385 myconf+=" -no-reduce-exports"
412 fi 386 fi
482# @DESCRIPTION: 456# @DESCRIPTION:
483# Compiles the code in $QT4_TARGET_DIRECTORIES 457# Compiles the code in $QT4_TARGET_DIRECTORIES
484build_directories() { 458build_directories() {
485 for x in "$@"; do 459 for x in "$@"; do
486 pushd "${S}"/${x} >/dev/null 460 pushd "${S}"/${x} >/dev/null
487 sed -i -e "s:\$\$\[QT_INSTALL_LIBS\]:${EPREFIX}/usr/$(get_libdir)/qt4:g" $(find "${S}" -name '*.pr[io]') "${S}"/mkspecs/common/*.conf || die 461 # avoid running over the maximum argument number, bug #299810
462 {
463 echo "${S}"/mkspecs/common/*.conf
464 find "${S}" -name '*.pr[io]'
465 } | xargs sed -i -e "s:\$\$\[QT_INSTALL_LIBS\]:${EPREFIX}/usr/$(get_libdir)/qt4:g" || die
488 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed" 466 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed"
489 emake CC="@echo compiling \$< && $(tc-getCC)" \ 467 emake CC="@echo compiling \$< && $(tc-getCC)" \
490 CXX="@echo compiling \$< && $(tc-getCXX)" \ 468 CXX="@echo compiling \$< && $(tc-getCXX)" \
491 LINK="@echo linking \$@ && $(tc-getCXX)" || die "emake failed" 469 LINK="@echo linking \$@ && $(tc-getCXX)" || die "emake failed"
492 popd >/dev/null 470 popd >/dev/null

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.62

  ViewVC Help
Powered by ViewVC 1.1.20