/[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.109 Revision 1.117
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 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.109 2011/12/26 00:11:07 pesa Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.117 2012/02/09 22:07:34 hwoarang Exp $
4 4
5# @ECLASS: qt4-build.eclass 5# @ECLASS: qt4-build.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Qt herd <qt@gentoo.org> 7# Qt herd <qt@gentoo.org>
8# @BLURB: Eclass for Qt4 split ebuilds. 8# @BLURB: Eclass for Qt4 split ebuilds.
109 QT4_EXTRACT_DIRECTORIES="src/gui/kernel/qapplication_mac.mm 109 QT4_EXTRACT_DIRECTORIES="src/gui/kernel/qapplication_mac.mm
110 ${QT4_EXTRACT_DIRECTORIES}" 110 ${QT4_EXTRACT_DIRECTORIES}"
111 fi 111 fi
112 112
113 # Make sure ebuilds use the required EAPI 113 # Make sure ebuilds use the required EAPI
114 if [[ ${EAPI} != [23] ]]; then 114 if [[ ${EAPI} != [234] ]]; then
115 eerror "The qt4-build eclass requires EAPI=2 or EAPI=3, but this ebuild is using" 115 eerror "The qt4-build eclass requires EAPI 2,3 or 4 but this ebuild is using"
116 eerror "EAPI=${EAPI:-0}. The ebuild author or editor failed. This ebuild needs to be" 116 eerror "EAPI=${EAPI:-0}. The ebuild author or editor failed. This ebuild needs to be"
117 eerror "fixed. Using qt4-build eclass without EAPI=2 or EAPI=3 will fail." 117 eerror "fixed. Using qt4-build eclass without EAPI 2,3 or 4 will fail."
118 die "qt4-build eclass requires EAPI=2 or EAPI=3" 118 die "qt4-build eclass requires EAPI 2,3 or 4"
119 fi 119 fi
120 120
121 if ! version_is_at_least 4.1 $(gcc-version); then 121 if ! version_is_at_least 4.1 $(gcc-version); then
122 ewarn "Using a GCC version lower than 4.1 is not supported!" 122 ewarn "Using a GCC version lower than 4.1 is not supported!"
123 fi 123 fi
136# @FUNCTION: qt4-build_src_unpack 136# @FUNCTION: qt4-build_src_unpack
137# @DESCRIPTION: 137# @DESCRIPTION:
138# Unpacks the sources. 138# Unpacks the sources.
139qt4-build_src_unpack() { 139qt4-build_src_unpack() {
140 setqtenv 140 setqtenv
141 local target targets= 141
142 local tarball="${MY_P}.tar.gz" target= targets=
142 for target in configure LICENSE.GPL3 LICENSE.LGPL projects.pro \ 143 for target in configure LICENSE.GPL3 LICENSE.LGPL projects.pro \
143 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \ 144 src/{qbase,qt_targets,qt_install}.pri bin config.tests \
144 ${QT4_EXTRACT_DIRECTORIES}; do 145 mkspecs qmake ${QT4_EXTRACT_DIRECTORIES}
146 do
145 targets+=" ${MY_P}/${target}" 147 targets+="${MY_P}/${target} "
146 done 148 done
147 149
150 ebegin "Unpacking parts of ${tarball}:" ${targets//${MY_P}\/}
148 echo tar xzf "${DISTDIR}"/${MY_P}.tar.gz ${targets} 151 tar -xzf "${DISTDIR}/${tarball}" ${targets}
149 tar xzf "${DISTDIR}"/${MY_P}.tar.gz ${targets} || die 152 eend $? || die "failed to unpack"
150} 153}
151 154
152# @ECLASS-VARIABLE: PATCHES 155# @ECLASS-VARIABLE: PATCHES
156# @DEFAULT_UNSET
153# @DESCRIPTION: 157# @DESCRIPTION:
154# In case you have patches to apply, specify them in PATCHES variable. Make sure 158# PATCHES array variable containing all various patches to be applied.
155# to specify the full path. This variable is necessary for src_prepare phase. 159# This variable is expected to be defined in global scope of ebuild.
156# Example: 160# Make sure to specify the full path. This variable is utilised in
157# PATCHES="${FILESDIR}"/mypatch.patch 161# src_unpack/src_prepare phase, based on EAPI.
158# ${FILESDIR}"/mypatch2.patch"
159# 162#
163# @CODE
164# PATCHES=( "${FILESDIR}/mypatch.patch"
165# "${FILESDIR}/patches_folder/" )
166# @CODE
160 167
161# @FUNCTION: qt4-build_src_prepare 168# @FUNCTION: qt4-build_src_prepare
162# @DESCRIPTION: 169# @DESCRIPTION:
163# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix 170# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix
164# the build system in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified in /etc/make.conf. 171# the build system in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified in /etc/make.conf.
229 CC='$(tc-getCC)'\n\ 236 CC='$(tc-getCC)'\n\
230 CXX='$(tc-getCXX)'\n\ 237 CXX='$(tc-getCXX)'\n\
231 CFLAGS='${CFLAGS}'\n\ 238 CFLAGS='${CFLAGS}'\n\
232 CXXFLAGS='${CXXFLAGS}'\n\ 239 CXXFLAGS='${CXXFLAGS}'\n\
233 LDFLAGS='${LDFLAGS}'\n" \ 240 LDFLAGS='${LDFLAGS}'\n" \
241 -i configure \
234 -i configure || die "sed SYSTEM_VARIABLES failed" 242 || die "sed SYSTEM_VARIABLES failed"
235 243
236 # Bug 321335 244 # Respect CC, CXX, LINK and *FLAGS in config.tests
237 find config.tests/unix -name '*.test' -type f -exec grep -lZ \$MAKE '{}' \; | xargs -0 \ 245 find config.tests/unix -name '*.test' -type f -print0 | xargs -0 \
238 sed -e "s:\(\$MAKE\):\1 CC='$(tc-getCC)' CXX='$(tc-getCXX)' LINK='$(tc-getCXX)':g" \ 246 sed -i -e "/bin\/qmake/ s: \"QT_BUILD_TREE=: \
239 -i || die "sed test compilers failed" 247 'QMAKE_CC=$(tc-getCC)' 'QMAKE_CXX=$(tc-getCXX)' 'QMAKE_LINK=$(tc-getCXX)' \
248 'QMAKE_CFLAGS+=${CFLAGS}' 'QMAKE_CXXFLAGS+=${CXXFLAGS}' 'QMAKE_LFLAGS+=${LDFLAGS}'&:" \
249 || die "sed config.tests failed"
250
251 # Strip predefined CFLAGS from mkspecs (bug 312689)
252 sed -i -e '/^QMAKE_CFLAGS_RELEASE/s:+=.*:+=:' mkspecs/common/g++.conf || die
240 253
241 # Bug 172219 254 # Bug 172219
242 sed -e "s:X11R6/::" -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die 255 sed -e 's:/X11R6/:/:' -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
243 256
244 if [[ ${CHOST} == *-darwin* ]]; then 257 if [[ ${CHOST} == *-darwin* ]]; then
245 # Set FLAGS *and* remove -arch, since our gcc-apple is multilib 258 # Set FLAGS *and* remove -arch, since our gcc-apple is multilib
246 # crippled (by design) :/ 259 # crippled (by design) :/
260 sed \
247 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ 261 -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
248 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ 262 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
249 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=-headerpad_max_install_names ${LDFLAGS}:" \ 263 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=-headerpad_max_install_names ${LDFLAGS}:" \
250 -e "s:-arch\s\w*::g" \ 264 -e "s:-arch\s\w*::g" \
251 -i mkspecs/common/mac-g++.conf || die "sed mkspecs/common/mac-g++.conf failed" 265 -i mkspecs/common/mac-g++.conf \
266 || die "sed mkspecs/common/mac-g++.conf failed"
252 267
253 # Fix configure's -arch settings that appear in qmake/Makefile and also 268 # Fix configure's -arch settings that appear in qmake/Makefile and also
254 # fix arch handling (automagically duplicates our -arch arg and breaks 269 # fix arch handling (automagically duplicates our -arch arg and breaks
255 # pch). Additionally disable Xarch support. 270 # pch). Additionally disable Xarch support.
256 sed \ 271 sed \
261 -e "s:-arch \$i::" \ 276 -e "s:-arch \$i::" \
262 -e "/if \[ ! -z \"\$NATIVE_64_ARCH\" \]; then/,/fi/ d" \ 277 -e "/if \[ ! -z \"\$NATIVE_64_ARCH\" \]; then/,/fi/ d" \
263 -e "s:CFG_MAC_XARCH=yes:CFG_MAC_XARCH=no:g" \ 278 -e "s:CFG_MAC_XARCH=yes:CFG_MAC_XARCH=no:g" \
264 -e "s:-Xarch_x86_64::g" \ 279 -e "s:-Xarch_x86_64::g" \
265 -e "s:-Xarch_ppc64::g" \ 280 -e "s:-Xarch_ppc64::g" \
266 -i configure mkspecs/common/mac-g++.conf || die "sed -arch/-Xarch failed" 281 -i configure mkspecs/common/mac-g++.conf \
282 || die "sed -arch/-Xarch failed"
267 283
268 # On Snow Leopard don't fall back to 10.5 deployment target. 284 # On Snow Leopard don't fall back to 10.5 deployment target.
269 if [[ ${CHOST} == *-apple-darwin10 ]] ; then 285 if [[ ${CHOST} == *-apple-darwin10 ]] ; then
270 sed -e "s:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET.*:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.6:g" \ 286 sed -e "s:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET.*:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.6:g" \
271 -e "s:-mmacosx-version-min=10.[0-9]:-mmacosx-version-min=10.6:g" \ 287 -e "s:-mmacosx-version-min=10.[0-9]:-mmacosx-version-min=10.6:g" \
272 -i configure mkspecs/common/mac-g++.conf || die "sed deployment target failed" 288 -i configure mkspecs/common/mac-g++.conf \
289 || die "sed deployment target failed"
273 fi 290 fi
274 fi 291 fi
275 292
276 # this one is needed for all systems with a separate -liconv, apart from 293 # this one is needed for all systems with a separate -liconv, apart from
277 # Darwin, for which the sources already cater for -liconv 294 # Darwin, for which the sources already cater for -liconv
278 if use !elibc_glibc && [[ ${CHOST} != *-darwin* ]] ; then 295 if use !elibc_glibc && [[ ${CHOST} != *-darwin* ]] ; then
279 sed \ 296 sed -e 's|mac:\(LIBS += -liconv\)|\1|g' \
280 -e "s|mac:LIBS += -liconv|LIBS += -liconv|g" \
281 -i config.tests/unix/iconv/iconv.pro \ 297 -i config.tests/unix/iconv/iconv.pro \
282 || die "sed on iconv.pro failed" 298 || die "sed iconv.pro failed"
283 fi 299 fi
284 300
285 # we need some patches for Solaris 301 # we need some patches for Solaris
286 sed -i \
287 -e '/^QMAKE_LFLAGS_THREAD/a\QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,' \ 302 sed -i -e '/^QMAKE_LFLAGS_THREAD/a\QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,' \
288 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die 303 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
289 # use GCC over SunStudio 304 # use GCC over SunStudio
290 sed -i -e '/PLATFORM=solaris-cc/s/cc/g++/' configure || die 305 sed -i -e '/PLATFORM=solaris-cc/s/cc/g++/' configure || die
291 # don't flirt with non-Prefix stuff, we're quite possessive 306 # do not flirt with non-Prefix stuff, we're quite possessive
292 sed -i -e '/^QMAKE_\(LIB\|INC\)DIR\(_X11\|_OPENGL\|\)\t/s/=.*$/=/' \ 307 sed -i -e '/^QMAKE_\(LIB\|INC\)DIR\(_X11\|_OPENGL\|\)\t/s/=.*$/=/' \
293 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die 308 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
294 # strip predefined CFLAGS from qmake ( bug #312689 )
295 sed -i '/^QMAKE_CFLAGS_RELEASE/s:+=.*:+=:' mkspecs/common/g++.conf
296 309
297 base_src_prepare 310 base_src_prepare
298} 311}
299 312
300# @FUNCTION: qt4-build_src_configure 313# @FUNCTION: qt4-build_src_configure
332 myconf+=" -cocoa -framework" 345 myconf+=" -cocoa -framework"
333 346
334 # We are crazy and build cocoa + qt3support :-) 347 # We are crazy and build cocoa + qt3support :-)
335 if use qt3support; then 348 if use qt3support; then
336 sed -e "/case \"\$PLATFORM,\$CFG_MAC_COCOA\" in/,/;;/ s|CFG_QT3SUPPORT=\"no\"|CFG_QT3SUPPORT=\"yes\"|" \ 349 sed -e "/case \"\$PLATFORM,\$CFG_MAC_COCOA\" in/,/;;/ s|CFG_QT3SUPPORT=\"no\"|CFG_QT3SUPPORT=\"yes\"|" \
337 -i configure 350 -i configure || die
338 fi 351 fi
339 352
340 # We need the source's headers, not the installed ones. 353 # We need the source's headers, not the installed ones.
341 myconf+=" -I${S}/include" 354 myconf+=" -I${S}/include"
342 355
382 if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]] ; then 395 if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]] ; then
383 # Some packages tend to include <Qt/...> 396 # Some packages tend to include <Qt/...>
384 dodir "${QTHEADERDIR#${EPREFIX}}"/Qt 397 dodir "${QTHEADERDIR#${EPREFIX}}"/Qt
385 398
386 # Fake normal headers when frameworks are installed... eases life later on 399 # Fake normal headers when frameworks are installed... eases life later on
387 local dest f 400 local dest f h
388 for frw in "${D}${QTLIBDIR}"/*.framework; do 401 for frw in "${D}${QTLIBDIR}"/*.framework; do
389 [[ -e "${frw}"/Headers ]] || continue 402 [[ -e "${frw}"/Headers ]] || continue
390 f=$(basename ${frw}) 403 f=$(basename ${frw})
391 dest="${QTHEADERDIR#${EPREFIX}}"/${f%.framework} 404 dest="${QTHEADERDIR#${EPREFIX}}"/${f%.framework}
392 dosym "${QTLIBDIR#${EPREFIX}}"/${f}/Headers "${dest}" 405 dosym "${QTLIBDIR#${EPREFIX}}"/${f}/Headers "${dest}"
411 install_qconfigs 424 install_qconfigs
412 fix_library_files 425 fix_library_files
413 fix_includes 426 fix_includes
414 427
415 # remove .la files since we are building only shared Qt libraries 428 # remove .la files since we are building only shared Qt libraries
416 find "${D}"${QTLIBDIR} -name "*.la" -print0 | xargs -0 rm 429 find "${D}"${QTLIBDIR} -type f -name '*.la' -print0 | xargs -0 rm -f
417} 430}
418 431
419# @FUNCTION: setqtenv 432# @FUNCTION: setqtenv
433# @INTERNAL
420setqtenv() { 434setqtenv() {
421 # Set up installation directories 435 # Set up installation directories
422 QTPREFIXDIR=${EPREFIX}/usr 436 QTPREFIXDIR=${EPREFIX}/usr
423 QTBINDIR=${EPREFIX}/usr/bin 437 QTBINDIR=${EPREFIX}/usr/bin
424 QTLIBDIR=${EPREFIX}/usr/$(get_libdir)/qt4 438 QTLIBDIR=${EPREFIX}/usr/$(get_libdir)/qt4
439 453
440 unset QMAKESPEC 454 unset QMAKESPEC
441} 455}
442 456
443# @FUNCTION: standard_configure_options 457# @FUNCTION: standard_configure_options
458# @INTERNAL
444# @DESCRIPTION: 459# @DESCRIPTION:
445# Sets up some standard configure options, like libdir (if necessary), whether 460# Sets up some standard configure options, like libdir (if necessary), whether
446# debug info is wanted or not. 461# debug info is wanted or not.
447standard_configure_options() { 462standard_configure_options() {
448 local myconf="-prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} 463 local myconf="-prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
449 -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} -plugindir ${QTPLUGINDIR} 464 -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} -plugindir ${QTPLUGINDIR}
450 -importdir ${QTIMPORTDIR} -datadir ${QTDATADIR} -translationdir ${QTTRANSDIR} 465 $(version_is_at_least 4.7 && echo -importdir ${QTIMPORTDIR})
466 -datadir ${QTDATADIR} -translationdir ${QTTRANSDIR} -sysconfdir ${QTSYSCONFDIR}
451 -sysconfdir ${QTSYSCONFDIR} -examplesdir ${QTEXAMPLESDIR} -demosdir ${QTDEMOSDIR} 467 -examplesdir ${QTEXAMPLESDIR} -demosdir ${QTDEMOSDIR}
452 -opensource -confirm-license -shared -fast -largefile -stl -verbose 468 -opensource -confirm-license -shared -fast -largefile -stl -verbose
453 -platform $(qt_mkspecs_dir) -nomake examples -nomake demos" 469 -platform $(qt_mkspecs_dir) -nomake examples -nomake demos"
454 470
455 [[ $(get_libdir) != lib ]] && myconf+=" -L${EPREFIX}/usr/$(get_libdir)" 471 [[ $(get_libdir) != lib ]] && myconf+=" -L${EPREFIX}/usr/$(get_libdir)"
456 472
499 echo "${myconf}" 515 echo "${myconf}"
500} 516}
501 517
502# @FUNCTION: prepare_directories 518# @FUNCTION: prepare_directories
503# @USAGE: < directories > 519# @USAGE: < directories >
520# @INTERNAL
504# @DESCRIPTION: 521# @DESCRIPTION:
505# Generates Makefiles for the given list of directories. 522# Generates Makefiles for the given list of directories.
506prepare_directories() { 523prepare_directories() {
507 for x in "$@"; do 524 for x in "$@"; do
508 pushd "${S}"/${x} >/dev/null || die 525 pushd "${S}"/${x} >/dev/null || die
521} 538}
522 539
523 540
524# @FUNCTION: build_directories 541# @FUNCTION: build_directories
525# @USAGE: < directories > 542# @USAGE: < directories >
543# @INTERNAL
526# @DESCRIPTION: 544# @DESCRIPTION:
527# Compiles the code in the given list of directories. 545# Compiles the code in the given list of directories.
528build_directories() { 546build_directories() {
529 for x in "$@"; do 547 for x in "$@"; do
530 pushd "${S}"/${x} >/dev/null || die 548 pushd "${S}"/${x} >/dev/null || die
535 done 553 done
536} 554}
537 555
538# @FUNCTION: install_directories 556# @FUNCTION: install_directories
539# @USAGE: < directories > 557# @USAGE: < directories >
558# @INTERNAL
540# @DESCRIPTION: 559# @DESCRIPTION:
541# Runs emake install in the given directories, which are separated by spaces. 560# Runs emake install in the given directories, which are separated by spaces.
542install_directories() { 561install_directories() {
543 for x in "$@"; do 562 for x in "$@"; do
544 pushd "${S}"/${x} >/dev/null || die 563 pushd "${S}"/${x} >/dev/null || die
561# @DESCRIPTION: 580# @DESCRIPTION:
562# List variables that should be defined at the top of QtCore/qconfig.h 581# List variables that should be defined at the top of QtCore/qconfig.h
563: ${QCONFIG_DEFINE:=} 582: ${QCONFIG_DEFINE:=}
564 583
565# @FUNCTION: install_qconfigs 584# @FUNCTION: install_qconfigs
585# @INTERNAL
566# @DESCRIPTION: 586# @DESCRIPTION:
567# Install gentoo-specific mkspecs configurations. 587# Install gentoo-specific mkspecs configurations.
568install_qconfigs() { 588install_qconfigs() {
569 local x 589 local x
570 if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} ]]; then 590 if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} ]]; then
583 doins "${T}"/gentoo-${PN}-qconfig.h || die "installing ${PN}-qconfig.h failed" 603 doins "${T}"/gentoo-${PN}-qconfig.h || die "installing ${PN}-qconfig.h failed"
584 fi 604 fi
585} 605}
586 606
587# @FUNCTION: generate_qconfigs 607# @FUNCTION: generate_qconfigs
608# @INTERNAL
588# @DESCRIPTION: 609# @DESCRIPTION:
589# Generates gentoo-specific qconfig.{h,pri}. 610# Generates gentoo-specific qconfig.{h,pri}.
590generate_qconfigs() { 611generate_qconfigs() {
591 if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} || -n ${QCONFIG_DEFINE} || ${CATEGORY}/${PN} == x11-libs/qt-core ]]; then 612 if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} || -n ${QCONFIG_DEFINE} || ${CATEGORY}/${PN} == x11-libs/qt-core ]]; then
592 local x qconfig_add qconfig_remove qconfig_new 613 local x qconfig_add qconfig_remove qconfig_new
657qt4-build_pkg_postinst() { 678qt4-build_pkg_postinst() {
658 generate_qconfigs 679 generate_qconfigs
659} 680}
660 681
661# @FUNCTION: skip_qmake_build 682# @FUNCTION: skip_qmake_build
683# @INTERNAL
662# @DESCRIPTION: 684# @DESCRIPTION:
663# Patches configure to skip qmake compilation, as it's already installed by qt-core. 685# Patches configure to skip qmake compilation, as it's already installed by qt-core.
664skip_qmake_build() { 686skip_qmake_build() {
665 sed -i -e "s:if true:if false:g" "${S}"/configure || die 687 sed -i -e "s:if true:if false:g" "${S}"/configure || die
666} 688}
667 689
668# @FUNCTION: skip_project_generation 690# @FUNCTION: skip_project_generation
691# @INTERNAL
669# @DESCRIPTION: 692# @DESCRIPTION:
670# Exit the script early by throwing in an exit before all of the .pro files are scanned. 693# Exit the script early by throwing in an exit before all of the .pro files are scanned.
671skip_project_generation() { 694skip_project_generation() {
672 sed -i -e "s:echo \"Finding:exit 0\n\necho \"Finding:g" "${S}"/configure || die 695 sed -i -e "s:echo \"Finding:exit 0\n\necho \"Finding:g" "${S}"/configure || die
673} 696}
674 697
675# @FUNCTION: symlink_binaries_to_buildtree 698# @FUNCTION: symlink_binaries_to_buildtree
699# @INTERNAL
676# @DESCRIPTION: 700# @DESCRIPTION:
677# Symlinks generated binaries to buildtree, so they can be used during compilation time. 701# Symlinks generated binaries to buildtree, so they can be used during compilation time.
678symlink_binaries_to_buildtree() { 702symlink_binaries_to_buildtree() {
679 for bin in qmake moc uic rcc; do 703 for bin in qmake moc uic rcc; do
680 ln -s "${QTBINDIR}"/${bin} "${S}"/bin/ || die "symlinking ${bin} to ${S}/bin failed" 704 ln -s "${QTBINDIR}"/${bin} "${S}"/bin/ || die "symlinking ${bin} to ${S}/bin failed"
681 done 705 done
682} 706}
683 707
684# @FUNCTION: fix_library_files 708# @FUNCTION: fix_library_files
709# @INTERNAL
685# @DESCRIPTION: 710# @DESCRIPTION:
686# Fixes the paths in *.la, *.prl, *.pc, as they are wrong due to sandbox and 711# Fixes the paths in *.la, *.prl, *.pc, as they are wrong due to sandbox and
687# moves the *.pc files into the pkgconfig directory. 712# moves the *.pc files into the pkgconfig directory.
688fix_library_files() { 713fix_library_files() {
689 local libfile 714 local libfile
709} 734}
710 735
711# @FUNCTION: qt_use 736# @FUNCTION: qt_use
712# @USAGE: < flag > [ feature ] [ enableval ] 737# @USAGE: < flag > [ feature ] [ enableval ]
713# @DESCRIPTION: 738# @DESCRIPTION:
714# This will echo "${enableval}-${feature}" if <flag> is enabled, or 739# This will echo "-${enableval}-${feature}" if <flag> is enabled, or
715# "-no-${feature} if the flag is disabled. If [feature] is not specified <flag> 740# "-no-${feature}" if it's disabled. If [feature] is not specified, <flag>
716# will be used for that. If [enableval] is not specified, it omits the 741# will be used for that. If [enableval] is not specified, it omits the
717# assignment part. 742# "-${enableval}" part.
718qt_use() { 743qt_use() {
719 local flag=$1 744 use "$1" && echo "${3:+-$3}-${2:-$1}" || echo "-no-${2:-$1}"
720 local feature=$1
721 local enableval=
722
723 [[ -n $2 ]] && feature=$2
724 [[ -n $3 ]] && enableval=-$3
725
726 if use ${flag}; then
727 echo "${enableval}-${feature}"
728 else
729 echo "-no-${feature}"
730 fi
731} 745}
732 746
733# @FUNCTION: qt_mkspecs_dir 747# @FUNCTION: qt_mkspecs_dir
734# @RETURN: the specs-directory w/o path 748# @RETURN: the specs-directory w/o path
735# @DESCRIPTION: 749# @DESCRIPTION:
766 elif [[ ${CXX} == *icpc* ]]; then 780 elif [[ ${CXX} == *icpc* ]]; then
767 spec+=-icc 781 spec+=-icc
768 else 782 else
769 die "Unknown compiler '${CXX}'" 783 die "Unknown compiler '${CXX}'"
770 fi 784 fi
771 if [[ -n ${LIBDIR/lib} ]]; then
772 spec+=-${LIBDIR/lib}
773 fi
774 785
775 # Add -64 for 64bit profiles 786 # Add -64 for 64bit profiles
776 if use x64-freebsd || 787 if use x64-freebsd ||
777 use amd64-linux || 788 use amd64-linux ||
778 use x64-macos || 789 use x64-macos ||
784 795
785 echo "${spec}" 796 echo "${spec}"
786} 797}
787 798
788# @FUNCTION: qt_assistant_cleanup 799# @FUNCTION: qt_assistant_cleanup
800# @INTERNAL
789# @DESCRIPTION: 801# @DESCRIPTION:
790# Tries to clean up tools.pro for qt-assistant ebuilds. 802# Tries to clean up tools.pro for qt-assistant ebuilds.
791# Meant to be called in src_prepare(). 803# Meant to be called in src_prepare().
792# Since Qt 4.7.4 this function is a no-op. 804# Since Qt 4.7.4 this function is a no-op.
793qt_assistant_cleanup() { 805qt_assistant_cleanup() {
813 ;; 825 ;;
814 esac 826 esac
815} 827}
816 828
817# @FUNCTION: qt_nolibx11 829# @FUNCTION: qt_nolibx11
830# @INTERNAL
818# @DESCRIPTION: 831# @DESCRIPTION:
819# Ignore X11 tests for packages that don't need X libraries installed. 832# Ignore X11 tests for packages that don't need X libraries installed.
820qt_nolibx11() { 833qt_nolibx11() {
821 sed -i "/unixtests\/compile.test.*config.tests\/x11\/xlib/,/fi$/d" "${S}"/configure || 834 sed -i "/unixtests\/compile.test.*config.tests\/x11\/xlib/,/fi$/d" "${S}"/configure ||
822 die "x11 check sed failed" 835 die "x11 check sed failed"

Legend:
Removed from v.1.109  
changed lines
  Added in v.1.117

  ViewVC Help
Powered by ViewVC 1.1.20