/[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.72 Revision 1.77
1# Copyright 1999-2009 Gentoo Foundation 1# Copyright 1999-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.72 2010/05/26 15:17:17 hwoarang Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.77 2010/07/08 15:45:01 hwoarang 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>,
140 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \ 140 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \
141 ${QT4_EXTRACT_DIRECTORIES}; do 141 ${QT4_EXTRACT_DIRECTORIES}; do
142 targets+=" ${MY_P}/${target}" 142 targets+=" ${MY_P}/${target}"
143 done 143 done
144 144
145 echo tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets} 145 echo tar xzf "${DISTDIR}"/${MY_P}.tar.gz ${targets}
146 tar xzpf "${DISTDIR}"/${MY_P}.tar.gz ${targets} || die 146 tar xzf "${DISTDIR}"/${MY_P}.tar.gz ${targets} || die
147} 147}
148 148
149# @ECLASS-VARIABLE: PATCHES 149# @ECLASS-VARIABLE: PATCHES
150# @DESCRIPTION: 150# @DESCRIPTION:
151# In case you have patches to apply, specify them in PATCHES variable. Make sure 151# In case you have patches to apply, specify them in PATCHES variable. Make sure
160# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix 160# Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix
161# source files in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified on /etc/make.conf. 161# source files in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified on /etc/make.conf.
162qt4-build_src_prepare() { 162qt4-build_src_prepare() {
163 setqtenv 163 setqtenv
164 cd "${S}" 164 cd "${S}"
165 165
166 # fix qt 4.7 regression that skips -fvisibility=hidden 166 # fix qt 4.7 regression that skips -fvisibility=hidden
167 if version_is_at_least "4.7.0_beta1"; then 167 if version_is_at_least "4.7.0_beta1"; then
168 sed -e "s/^gcc|g++)/*gcc|*g++)/" \ 168 sed -e "s/^gcc|g++)/*gcc|*g++)/" \
169 -i config.tests/unix/fvisibility.test || 169 -i config.tests/unix/fvisibility.test ||
170 die "visibility fixing sed failed" 170 die "visibility fixing sed failed"
171 fi
172 # fix libx11 dependency on non X packages
173 if version_is_at_least "4.7.0_beta2"; then
174 local NOLIBX11PKG="qt-core qt-dbus qt-script qt-sql qt-test qt-xmlpatterns"
175 hasq ${PN} ${NOLIBX11PKG} && qt_nolibx11
176 [[ ${PN} == "qt-assistant" ]] && qt_assistant_cleanup
171 fi 177 fi
172 178
173 if use aqua; then 179 if use aqua; then
174 # provide a proper macx-g++-64 180 # provide a proper macx-g++-64
175 use x64-macos && ln -s macx-g++ mkspecs/$(qt_mkspecs_dir) 181 use x64-macos && ln -s macx-g++ mkspecs/$(qt_mkspecs_dir)
213 219
214 # Bug 282984 && Bug 295530 220 # Bug 282984 && Bug 295530
215 sed -e "s:\(^SYSTEM_VARIABLES\):CC=$(tc-getCC)\nCXX=$(tc-getCXX)\nCFLAGS=\"${CFLAGS}\"\nCXXFLAGS=\"${CXXFLAGS}\"\nLDFLAGS=\"${LDFLAGS}\"\n\1:" \ 221 sed -e "s:\(^SYSTEM_VARIABLES\):CC=$(tc-getCC)\nCXX=$(tc-getCXX)\nCFLAGS=\"${CFLAGS}\"\nCXXFLAGS=\"${CXXFLAGS}\"\nLDFLAGS=\"${LDFLAGS}\"\n\1:" \
216 -i configure || die "sed qmake compilers failed" 222 -i configure || die "sed qmake compilers failed"
217 # bug 321335 223 # bug 321335
224 if version_is_at_least 4.6; then
218 find ./config.tests/unix -name "*.test" -type f -exec grep -lZ \$MAKE '{}' \; | \ 225 find ./config.tests/unix -name "*.test" -type f -exec grep -lZ \$MAKE '{}' \; | \
219 xargs -0 \ 226 xargs -0 \
220 sed -e "s:\(\$MAKE\):\1 CC=$(tc-getCC) CXX=$(tc-getCXX) LD=$(tc-getCXX) LINK=$(tc-getCXX):g" \ 227 sed -e "s:\(\$MAKE\):\1 CC=$(tc-getCC) CXX=$(tc-getCXX) LD=$(tc-getCXX) LINK=$(tc-getCXX):g" \
221 -i || die "sed test compilers failed" 228 -i || die "sed test compilers failed"
229 fi
222 230
223 # Bug 172219 231 # Bug 172219
224 sed -e "s:X11R6/::" \ 232 sed -e "s:X11R6/::" \
225 -i "${S}"/mkspecs/$(qt_mkspecs_dir)/qmake.conf || die "sed ${S}/mkspecs/$(qt_mkspecs_dir)/qmake.conf failed" 233 -i "${S}"/mkspecs/$(qt_mkspecs_dir)/qmake.conf || die "sed ${S}/mkspecs/$(qt_mkspecs_dir)/qmake.conf failed"
226 234
272 # use GCC over SunStudio 280 # use GCC over SunStudio
273 sed -i -e '/PLATFORM=solaris-cc/s/cc/g++/' configure || die 281 sed -i -e '/PLATFORM=solaris-cc/s/cc/g++/' configure || die
274 # don't flirt with non-Prefix stuff, we're quite possessive 282 # don't flirt with non-Prefix stuff, we're quite possessive
275 sed -i -e '/^QMAKE_\(LIB\|INC\)DIR\(_X11\|_OPENGL\|\)\t/s/=.*$/=/' \ 283 sed -i -e '/^QMAKE_\(LIB\|INC\)DIR\(_X11\|_OPENGL\|\)\t/s/=.*$/=/' \
276 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die 284 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
285 # strip predefined CFLAGS from qmake ( bug #312689 )
286 sed -i '/^QMAKE_CFLAGS_\(RELEASE\|DEBUG\)/s:+=.*:+=:' mkspecs/common/g++.conf
277 287
278 base_src_prepare 288 base_src_prepare
279} 289}
280 290
281# @FUNCTION: qt4-build_src_configure 291# @FUNCTION: qt4-build_src_configure
330# @DESCRIPTION: Actual compile phase 340# @DESCRIPTION: Actual compile phase
331qt4-build_src_compile() { 341qt4-build_src_compile() {
332 setqtenv 342 setqtenv
333 343
334 build_directories ${QT4_TARGET_DIRECTORIES} 344 build_directories ${QT4_TARGET_DIRECTORIES}
345}
346
347# @FUNCTION: qt4-build_src_test
348# @DESCRIPTION:
349# Runs tests only in target directories.
350qt4-build_src_test() {
351 for dir in ${QT4_TARGET_DIRECTORIES}; do
352 emake -j1 check -C ${dir}
353 done
335} 354}
336 355
337# @FUNCTION: fix_includes 356# @FUNCTION: fix_includes
338# @DESCRIPTION: 357# @DESCRIPTION:
339# For MacOSX we need to add some symlinks when frameworks are 358# For MacOSX we need to add some symlinks when frameworks are
736 fi 755 fi
737 756
738 echo "${spec}" 757 echo "${spec}"
739} 758}
740 759
760# @FUNCTION: qt_assistant_cleanup
761# @RETURN: nothing
762# @DESCRIPTION:
763# Tries to clean up tools.pro for qt-assistant ebuilds
764# Meant to be called in src_prepare
765qt_assistant_cleanup() {
766 # different versions (and branches...) may need different handling,
767 # add a case if you need special handling
768 case "${MY_PV_EXTRA}" in
769 *kde-qt*)
770 sed -e "/^[ \t]*porting/,/^[ \t]*win32.*activeqt$/d" \
771 -e "/mac/,/^embedded.*makeqpf$/d" \
772 -i tools/tools.pro || die "patching tools.pro failed"
773 ;;
774 *)
775 sed -e "/^[ \t]*porting/,/^[ \t]*win32.*activeqt$/d" \
776 -e "/mac/,/^embedded.*makeqpf$/d" \
777 -e "s/^\([ \t]*pixeltool\) /\1 qdoc3 /" \
778 -i tools/tools.pro || die "patching tools.pro failed"
779 ;;
780 esac
781}
782
783# @FUNCTION: qt_nolibx11
784# @RETURN: nothing
785# @DESCRIPTION:
786# Ignore X11 tests for packages that don't need X libraries installed
787qt_nolibx11() {
788 einfo "removing X11 check to allow X-less compilation"
789 sed -i "/unixtests\/compile.test.*config.tests\/x11\/xlib/,/fi$/d" "${S}"/configure ||
790 die "x11 check sed failed"
791}
792
741EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_postrm pkg_postinst 793EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install src_test pkg_postrm pkg_postinst

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.77

  ViewVC Help
Powered by ViewVC 1.1.20