blob: b6b6b72a5caaaca2c9e97aa2c1b2e8ef82acb4f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt-webkit/qt-webkit-4.4.0_rc1.ebuild,v 1.3 2007/12/20 17:25:23 caleb Exp $
inherit eutils flag-o-matic toolchain-funcs multilib
SRCTYPE="preview-opensource-src"
DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework."
HOMEPAGE="http://www.trolltech.com/"
MY_PV=${PV/_rc/-tp}
SRC_URI="ftp://ftp.trolltech.com/pub/qt/source/qt-x11-${SRCTYPE}-${MY_PV}.tar.gz"
S=${WORKDIR}/qt-x11-${SRCTYPE}-${MY_PV}
LICENSE="|| ( QPL-1.0 GPL-2 )"
SLOT="4"
KEYWORDS="~x86"
IUSE="debug pch"
RDEPEND="=x11-libs/qt-4.4.0_rc1"
DEPEND="${RDEPEND}"
pkg_setup() {
QTBASEDIR=/usr/$(get_libdir)/qt4
QTPREFIXDIR=/usr
QTBINDIR=/usr/bin
QTLIBDIR=/usr/$(get_libdir)/qt4
QTPCDIR=/usr/$(get_libdir)/pkgconfig
QTDATADIR=/usr/share/qt4
QTDOCDIR=/usr/share/doc/${PF}
QTHEADERDIR=/usr/include/qt4
QTPLUGINDIR=${QTLIBDIR}/plugins
QTSYSCONFDIR=/etc/qt4
QTTRANSDIR=${QTDATADIR}/translations
QTEXAMPLESDIR=${QTDATADIR}/examples
QTDEMOSDIR=${QTDATADIR}/demos
}
src_unpack() {
unpack ${A}
cd "${S}"
# Don't let the user go too overboard with flags. If you really want to, uncomment
# out the line below and give 'er a whirl.
strip-flags
replace-flags -O3 -O2
if [[ $( gcc-fullversion ) == "3.4.6" && gcc-specs-ssp ]] ; then
ewarn "Appending -fno-stack-protector to CFLAGS/CXXFLAGS"
append-flags -fno-stack-protector
fi
# Override the creation of qmake and copy over the one from the system. This speeds up compilation time a lot.
epatch "${FILESDIR}"/configure.patch
cp ${QTBINDIR}/qmake "${S}"/bin/qmake
}
src_compile() {
export PATH="${S}/bin:${PATH}"
export LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}"
[ $(get_libdir) != "lib" ] && myconf="${myconf} -L/usr/$(get_libdir)"
# Disable visibility explicitly if gcc version isn't 4
if [[ "$(gcc-major-version)" != "4" ]]; then
myconf="${myconf} -no-reduce-exports"
fi
# Add a switch that will attempt to use recent binutils to reduce relocations. Should be harmless for other
# cases. From bug #178535
myconf="${myconf} -fast -reduce-relocations -webkit"
use debug && myconf="${myconf} -debug -no-separate-debug-info" || myconf="${myconf} -release -no-separate-debug-info"
use pch && myconf="${myconf} -pch" || myconf="${myconf} -no-pch"
myconf="${myconf} -nomake examples -nomake demos"
myconf="-stl -verbose -largefile -confirm-license \
-no-rpath \
-prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} -datadir ${QTDATADIR} \
-docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} -plugindir ${QTPLUGINDIR} \
-sysconfdir ${QTSYSCONFDIR} -translationdir ${QTTRANSDIR} \
-examplesdir ${QTEXAMPLESDIR} -demosdir ${QTDEMOSDIR} ${myconf}"
echo ./configure ${myconf}
./configure ${myconf} || die
# Edit the .qmake.cache file
sed -i -e "s:QMAKE_MOC:\#QMAKE_MOC:g" "${S}"/.qmake.cache
sed -i -e "s:QMAKE_UIC:\#QMAKE_UIC:g" "${S}"/.qmake.cache
sed -i -e "s:QMAKE_RCC:\#QMAKE_RCC:g" "${S}"/.qmake.cache
cd "${S}"/src/3rdparty/webkit/WebCore
qmake "LIBS+=-L${QTLIBDIR}" && emake || die
cd "${S}"/tools/designer/src/plugins/qwebview
qmake "LIBS+=-L${QTLIBDIR}" && emake || die
}
src_install() {
cd "${S}"/src/3rdparty/webkit/WebCore
emake INSTALL_ROOT="${D}" install || die
cd "${S}"/tools/designer/src/plugins/qwebview
emake INSTALL_ROOT="${D}" install || die
sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/*.la
sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/*.prl
sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/pkgconfig/*.pc
# pkgconfig files refer to WORKDIR/bin as the moc and uic locations. Fix:
sed -i -e "s:${S}/bin:${QTBINDIR}:g" "${D}"/${QTLIBDIR}/pkgconfig/*.pc
# Move .pc files into the pkgconfig directory
dodir ${QTPCDIR}
mv "${D}"/${QTLIBDIR}/pkgconfig/*.pc "${D}"/${QTPCDIR}
}
pkg_postinst()
{
# Need to add webkit to QT_CONFIG line
sed -i -e "s:webkit ::g" ${QTDATADIR}/mkspecs/qconfig.pri
sed -i -e "s:QT_CONFIG += :QT_CONFIG += webkit :g" ${QTDATADIR}/mkspecs/qconfig.pri
}
pkg_postrm()
{
# Need to add qdbus to QT_CONFIG line
sed -i -e "s:webkit ::g" ${QTDATADIR}/mkspecs/qconfig.pri
}
|