/[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.45 Revision 1.49
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.45 2009/10/02 15:04:23 ayoy Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.49 2009/11/09 19:30:40 ayoy 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>,
9# Caleb Tennis <caleb@gentoo.org> 9# Caleb Tennis <caleb@gentoo.org>
10# Alex Alexander <wired@gentoo.org>
10# @BLURB: Eclass for Qt4 split ebuilds. 11# @BLURB: Eclass for Qt4 split ebuilds.
11# @DESCRIPTION: 12# @DESCRIPTION:
12# This eclass contains various functions that are used when building Qt4 13# This eclass contains various functions that are used when building Qt4
13 14
14inherit base eutils multilib toolchain-funcs flag-o-matic versionator 15inherit base eutils multilib toolchain-funcs flag-o-matic versionator
43 !>x11-libs/qt-webkit-${PV}-r9999 44 !>x11-libs/qt-webkit-${PV}-r9999
44 !<x11-libs/qt-xmlpatterns-${PV} 45 !<x11-libs/qt-xmlpatterns-${PV}
45 !>x11-libs/qt-xmlpatterns-${PV}-r9999 46 !>x11-libs/qt-xmlpatterns-${PV}-r9999
46" 47"
47case "${PV}" in 48case "${PV}" in
48 4.?.?_rc*) 49 4.?.?_rc* | 4.?.?_beta* )
49 SRCTYPE="${SRCTYPE:-opensource-src}" 50 SRCTYPE="${SRCTYPE:-opensource-src}"
50 MY_PV="${PV/_rc/-rc}" 51 MY_PV="${PV/_/-}"
51 ;; 52 ;;
52 *) 53 *)
53 SRCTYPE="${SRCTYPE:-opensource-src}" 54 SRCTYPE="${SRCTYPE:-opensource-src}"
54 MY_PV="${PV}" 55 MY_PV="${PV}"
55 ;; 56 ;;
56esac 57esac
58
59if version_is_at_least 4.5.99999999 ${PV} ; then
60 MY_P="qt-everywhere-${SRCTYPE}-${MY_PV}"
61else
57MY_P=qt-x11-${SRCTYPE}-${MY_PV} 62 MY_P="qt-x11-${SRCTYPE}-${MY_PV}"
63fi
58S=${WORKDIR}/${MY_P} 64S=${WORKDIR}/${MY_P}
59 65
60HOMEPAGE="http://qt.nokia.com/" 66HOMEPAGE="http://qt.nokia.com/"
61SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.bz2"
62if version_is_at_least 4.5.3 ${PV} ; then 67if version_is_at_least 4.5.3 ${PV} ; then
63 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"
64fi 71fi
65 72
66case "${PV}" in 73case "${PV}" in
67 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" ;;
68 *) ;; 75 *) ;;
182 ewarn "Appending -fno-stack-protector to CXXFLAGS" 189 ewarn "Appending -fno-stack-protector to CXXFLAGS"
183 append-cxxflags -fno-stack-protector 190 append-cxxflags -fno-stack-protector
184 # Bug 253127 191 # Bug 253127
185 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \ 192 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \
186 -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed" 193 -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed"
194 fi
195
196 # Bug 261632
197 if use ppc64; then
198 ewarn "Appending -mminimal-toc to CFLAGS/CXXFLAGS"
199 append-flags -mminimal-toc
187 fi 200 fi
188 201
189 # Bug 172219 202 # Bug 172219
190 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ 203 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
191 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ 204 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
294 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch $(tc-arch)" ;; 307 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch $(tc-arch)" ;;
295 hppa|sh) myconf="${myconf} -arch generic" ;; 308 hppa|sh) myconf="${myconf} -arch generic" ;;
296 *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;; 309 *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;;
297 esac 310 esac
298 311
312 # 4.6: build qt-core with exceptions or qt-xmlpatterns won't build
313 local exceptions=
314 case "${PV}" in
315 4.6.*)
316 if [[ ${PN} != "qt-core" ]] && [[ ${PN} != "qt-xmlpatterns" ]]; then
317 exceptions="-no-exceptions"
318 fi
319 ;;
320 *)
321 [[ ${PN} == "qt-xmlpatterns" ]] || exceptions="-no-exceptions"
322 ;;
323 esac
324
299 myconf="${myconf} -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license -no-rpath 325 myconf="${myconf} -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license -no-rpath
300 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} 326 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
301 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} 327 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR}
302 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR} 328 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR}
303 -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR} 329 -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR}
304 -demosdir ${QTDEMOSDIR} -silent -fast 330 -demosdir ${QTDEMOSDIR} -silent -fast
305 $([[ ${PN} == qt-xmlpatterns ]] || echo -no-exceptions) 331 ${exceptions}
306 -reduce-relocations -nomake examples -nomake demos" 332 -reduce-relocations -nomake examples -nomake demos"
307 333
308 # Make eclass 4.5.{1,2} ready 334 # Make eclass >= 4.5.x ready
309 case "${MY_PV}" in 335 case "${MY_PV}" in
310 4.5.1 | 4.5.2) 336 4.5.* | 4.6.* )
311 myconf="${myconf} -opensource" 337 myconf="${myconf} -opensource"
312 ;; 338 ;;
313 esac 339 esac
314 340
315 echo "${myconf}" 341 echo "${myconf}"
323 local dirs="$@" 349 local dirs="$@"
324 for x in ${dirs}; do 350 for x in ${dirs}; do
325 cd "${S}"/${x} 351 cd "${S}"/${x}
326 sed -i -e "s:\$\$\[QT_INSTALL_LIBS\]:/usr/$(get_libdir)/qt4:g" $(find "${S}" -name '*.pr[io]') "${S}"/mkspecs/common/linux.conf || die 352 sed -i -e "s:\$\$\[QT_INSTALL_LIBS\]:/usr/$(get_libdir)/qt4:g" $(find "${S}" -name '*.pr[io]') "${S}"/mkspecs/common/linux.conf || die
327 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed" 353 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed"
328 emake || die "emake failed" 354 emake CC="@echo compiling \$< && $(tc-getCC)" \
355 CXX="@echo compiling \$< && $(tc-getCXX)" \
356 LINK="@echo linking \$@ && $(tc-getCXX)" || die "emake failed"
329 done 357 done
330} 358}
331 359
332# @FUNCTION: install_directories 360# @FUNCTION: install_directories
333# @USAGE: < directories > 361# @USAGE: < directories >

Legend:
Removed from v.1.45  
changed lines
  Added in v.1.49

  ViewVC Help
Powered by ViewVC 1.1.20