linamh/x11-libs/qt-core/qt-core-4.7.2-r1.ebuild

184 lines
5.1 KiB
Bash
Raw Normal View History

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt-core/qt-core-4.7.2.ebuild,v 1.1 2011/03/01 19:06:22 tampakrap Exp $
EAPI="3"
inherit qt4-build
DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework"
SLOT="4"
KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
IUSE="+glib iconv +jit optimized-qmake private-headers qt3support ssl"
RDEPEND="sys-libs/zlib
glib? ( dev-libs/glib )
ssl? ( dev-libs/openssl )
!<x11-libs/qt-4.4.0:4"
DEPEND="${RDEPEND}
dev-util/pkgconfig"
PDEPEND="qt3support? ( ~x11-libs/qt-gui-${PV}[aqua=,glib=,qt3support] )"
pkg_setup() {
QT4_TARGET_DIRECTORIES="
src/tools/bootstrap
src/tools/moc
src/tools/rcc
src/tools/uic
src/corelib
src/xml
src/network
src/plugins/codecs
tools/linguist/lconvert
tools/linguist/lrelease
tools/linguist/lupdate"
QT4_EXTRACT_DIRECTORIES="
include/Qt
include/QtCore
include/QtDeclarative
include/QtGui
include/QtNetwork
include/QtScript
include/QtXml
src/plugins/plugins.pro
src/plugins/qpluginbase.pri
src/src.pro
src/3rdparty/des
src/3rdparty/harfbuzz
src/3rdparty/md4
src/3rdparty/md5
src/3rdparty/sha1
src/3rdparty/easing
src/3rdparty/zlib_dependency.pri
src/declarative
src/gui
src/script
tools/shared
tools/linguist/shared
translations"
qt4-build_pkg_setup
QT4_EXTRACT_DIRECTORIES="${QT4_TARGET_DIRECTORIES}
${QT4_EXTRACT_DIRECTORIES}"
}
src_prepare() {
# Don't pre-strip, bug 235026
for i in kr jp cn tw ; do
echo "CONFIG+=nostrip" >> "${S}"/src/plugins/codecs/${i}/${i}.pro
done
qt4-build_src_prepare
# bug 172219
sed -i -e "s:CXXFLAGS.*=:CXXFLAGS=${CXXFLAGS} :" \
"${S}/qmake/Makefile.unix" || die "sed qmake/Makefile.unix CXXFLAGS failed"
sed -i -e "s:LFLAGS.*=:LFLAGS=${LDFLAGS} :" \
"${S}/qmake/Makefile.unix" || die "sed qmake/Makefile.unix LDFLAGS failed"
}
src_configure() {
unset QMAKESPEC
myconf="${myconf}
$(qt_use glib)
$(qt_use iconv)
$(qt_use optimized-qmake)
$(qt_use ssl openssl)
$(qt_use qt3support)
$(qt_use jit javascript-jit)"
myconf="${myconf} -no-xkb -no-fontconfig -no-xrender -no-xrandr
-no-xfixes -no-xcursor -no-xinerama -no-xshape -no-sm -no-opengl
-no-nas-sound -no-dbus -no-cups -no-gif -no-libpng
-no-libmng -no-libjpeg -system-zlib -no-webkit -no-phonon -no-xmlpatterns
-no-freetype -no-libtiff -no-accessibility -no-fontconfig -no-opengl
-no-svg -no-gtkstyle -no-phonon-backend -no-script -no-scripttools
-no-cups -no-xsync -no-xinput -no-multimedia"
if [ "$ABI" = "x86" ] ; then
myconf="${myconf} -little-endian -host-little-endian -continue"
fi
qt4-build_src_configure
}
src_compile() {
# bug 259736
unset QMAKESPEC
qt4-build_src_compile
}
src_install() {
dobin "${S}"/bin/{qmake,moc,rcc,uic,lconvert,lrelease,lupdate} || die "dobin failed"
install_directories src/{corelib,xml,network,plugins/codecs}
emake INSTALL_ROOT="${D}" install_mkspecs || die "emake install_mkspecs failed"
#install private headers
if use private-headers; then
insinto "${QTHEADERDIR#${EPREFIX}}"/QtCore/private
find "${S}"/src/corelib -type f -name "*_p.h" -exec doins {} \;
fi
# use freshly built libraries
local DYLD_FPATH=
[[ -d "${S}"/lib/QtCore.framework ]] \
&& DYLD_FPATH=$(for x in "${S}/lib/"*.framework; do echo -n ":$x"; done)
DYLD_LIBRARY_PATH="${S}/lib${DYLD_FPATH}" \
LD_LIBRARY_PATH="${S}/lib" "${S}"/bin/lrelease translations/*.ts \
|| die "generating translations faied"
insinto ${QTTRANSDIR#${EPREFIX}}
doins translations/*.qm || die "doins translations failed"
setqtenv
fix_library_files
# List all the multilib libdirs
local libdirs=
for libdir in $(get_all_libdirs); do
libdirs+=:${EPREFIX}/usr/${libdir}/qt4
done
cat <<-EOF > "${T}/44qt4"
LDPATH="${libdirs:1}"
EOF
doenvd "${T}/44qt4"
dodir ${QTDATADIR#${EPREFIX}}/mkspecs/gentoo || die "dodir failed"
mv "${D}"/${QTDATADIR}/mkspecs/qconfig.pri "${D}${QTDATADIR}"/mkspecs/gentoo \
|| die "Failed to move qconfig.pri"
# Framework hacking
if use aqua && [[ ${CHOST#*-darwin} -ge 9 ]] ; then
#TODO do this better
sed -i -e '2a#include <QtCore/Gentoo/gentoo-qconfig.h>\n' \
"${D}${QTLIBDIR}"/QtCore.framework/Headers/qconfig.h \
|| die "sed for qconfig.h failed."
dosym "${QTHEADERDIR#${EPREFIX}}"/Gentoo "${QTLIBDIR#${EPREFIX}}"/QtCore.framework/Headers/Gentoo ||
die "dosym failed"
else
sed -i -e '2a#include <Gentoo/gentoo-qconfig.h>\n' \
"${D}${QTHEADERDIR}"/QtCore/qconfig.h \
"${D}${QTHEADERDIR}"/Qt/qconfig.h \
|| die "sed for qconfig.h failed"
fi
if use glib; then
QCONFIG_DEFINE="$(use glib && echo QT_GLIB)
$(use ssl && echo QT_OPENSSL)"
install_qconfigs
fi
# remove .la files
find "${D}"${QTLIBDIR} -name "*.la" -print0 | xargs -0 rm
# remove some unnecessary headers
rm -f "${D}${QTHEADERDIR}"/{Qt,QtCore}/{\
qatomic_windows.h,\
qatomic_windowsce.h,\
qt_windows.h}
keepdir "${QTSYSCONFDIR#${EPREFIX}}"
# Framework magic
fix_includes
}