/[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.9 Revision 1.14
1# Copyright 2007-2008 Gentoo Foundation 1# Copyright 2007-2008 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.9 2008/03/06 14:44:13 zlin Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.14 2008/05/26 14:30:44 ingmar Exp $
4 4
5# @ECLASS: qt4-build.eclass 5# @ECLASS: qt4-build.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Caleb Tennis <caleb@gentoo.org> 7# Caleb Tennis <caleb@gentoo.org>
8# @BLURB: Eclass for Qt4 split ebuilds. 8# @BLURB: Eclass for Qt4 split ebuilds.
9# @DESCRIPTION: 9# @DESCRIPTION:
10# This eclass contains various functions that are used when building Qt4 10# This eclass contains various functions that are used when building Qt4
11 11
12inherit eutils multilib toolchain-funcs flag-o-matic 12inherit eutils multilib toolchain-funcs flag-o-matic
13 13
14IUSE="${IUSE} debug" 14IUSE="${IUSE} debug pch"
15 15
16case "${PV}" in 16case "${PV}" in
17 4.4.0_beta*) 17 4.4.0_beta*)
18 SRCTYPE="${SRCTYPE:-opensource-src}" 18 SRCTYPE="${SRCTYPE:-opensource-src}"
19 MY_PV="${PV/_beta/-beta}" 19 MY_PV="${PV/_beta/-beta}"
20 ;;
21 4.4.0_rc*)
22 SRCTYPE="${SRCTYPE:-opensource-src}"
23 MY_PV="${PV/_rc/-rc}"
20 ;; 24 ;;
21 *) 25 *)
22 SRCTYPE="${SRCTYPE:-opensource-src}" 26 SRCTYPE="${SRCTYPE:-opensource-src}"
23 MY_PV="${PV}" 27 MY_PV="${PV}"
24 ;; 28 ;;
25esac 29esac
26S=${WORKDIR}/qt-x11-${SRCTYPE}-${MY_PV} 30MY_P=qt-x11-${SRCTYPE}-${MY_PV}
31S=${WORKDIR}/${MY_P}
27 32
28SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-${SRCTYPE}-${MY_PV}.tar.bz2" 33SRC_URI="ftp://ftp.trolltech.com/qt/source/${MY_P}.tar.bz2"
34
35case "${PV}" in
36 4.4.0|4.4.0_rc*)
37 SRC_URI="${SRC_URI} mirror://gentoo/${MY_P}-headers.tar.bz2"
38 ;;
39 *)
40 ;;
41esac
29 42
30qt4-build_pkg_setup() { 43qt4-build_pkg_setup() {
31 # Check USE requirements 44 # Check USE requirements
32 qt4-build_check_use 45 qt4-build_check_use
33 46
50 63
51 PATH="${S}/bin:${PATH}" 64 PATH="${S}/bin:${PATH}"
52 LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" 65 LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}"
53} 66}
54 67
68qt4_unpack() {
69 local target targets
70 for target in configure LICENSE.{GPL2,GPL3,QPL} projects.pro \
71 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \
72 ${QT4_EXTRACT_DIRECTORIES}; do
73 targets="${targets} ${MY_P}/${target}"
74 done
75
76 echo tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
77 tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
78
79 case "${PV}" in
80 4.4.0|4.4.0_rc*)
81 echo tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
82 tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
83 ;;
84 esac
85}
86
55qt4-build_src_unpack() { 87qt4-build_src_unpack() {
56 # TODO: partial unpacks, cfr split KDE ebuilds. 88 qt4_unpack
57 unpack ${A}
58 cd "${S}"
59
60 if [[ ${PN} != qt-core ]]; then 89 if [[ ${PN} != qt-core ]]; then
90 cd "${S}"
61 skip_qmake_build_patch 91 skip_qmake_build_patch
62 skip_project_generation_patch 92 skip_project_generation_patch
63 symlink_binaries_to_buildtree 93 symlink_binaries_to_buildtree
64 fi 94 fi
65 95
84 if [[ $(gcc-fullversion) == "3.4.6" && gcc-specs-ssp ]] ; then 114 if [[ $(gcc-fullversion) == "3.4.6" && gcc-specs-ssp ]] ; then
85 ewarn "Appending -fno-stack-protector to CFLAGS/CXXFLAGS" 115 ewarn "Appending -fno-stack-protector to CFLAGS/CXXFLAGS"
86 append-flags -fno-stack-protector 116 append-flags -fno-stack-protector
87 fi 117 fi
88 118
119 # Bug 178652
120 if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then
121 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
122 append-flags -fno-gcse
123 fi
124
89 myconf="$(standard_configure_options) ${myconf}" 125 myconf="$(standard_configure_options) ${myconf}"
90 126
91 echo ./configure ${myconf} 127 echo ./configure ${myconf}
92 ./configure ${myconf} || die "./configure failed" 128 ./configure ${myconf} || die "./configure failed"
93 129
108 # Disable visibility explicitly if gcc version isn't 4 144 # Disable visibility explicitly if gcc version isn't 4
109 if [[ "$(gcc-major-version)" -lt "4" ]]; then 145 if [[ "$(gcc-major-version)" -lt "4" ]]; then
110 myconf="${myconf} -no-reduce-exports" 146 myconf="${myconf} -no-reduce-exports"
111 fi 147 fi
112 148
149 # precompiled headers doesn't work on hardened, where the flag is masked.
150 if use pch; then
151 myconf="${myconf} -pch"
152 else
153 myconf="${myconf} -no-pch"
154 fi
155
113 if use debug; then 156 if use debug; then
114 myconf="${myconf} -debug -no-separate-debug-info" 157 myconf="${myconf} -debug -no-separate-debug-info"
115 else 158 else
116 myconf="${myconf} -release -no-separate-debug-info" 159 myconf="${myconf} -release -no-separate-debug-info"
117 fi 160 fi
161
162 # ARCH is set on Gentoo. QT now falls back to generic on an unsupported
163 # ${ARCH}. Therefore we convert it to supported values.
164 case "${ARCH}" in
165 amd64) myconf="${myconf} -arch x86_64" ;;
166 ppc|ppc64) myconf="${myconf} -arch powerpc" ;;
167 x86|x86-*) myconf="${myconf} -arch i386" ;;
168 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch ${ARCH}" ;;
169 hppa|sh) myconf="${myconf} -arch generic" ;;
170 *) die "${ARCH} is unsupported by this eclass. Please file a bug." ;;
171 esac
118 172
119 myconf="${myconf} -stl -verbose -largefile -confirm-license -no-rpath 173 myconf="${myconf} -stl -verbose -largefile -confirm-license -no-rpath
120 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} 174 -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
121 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} 175 -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR}
122 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR} 176 -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR}

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.20