# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/wxlib.eclass,v 1.14 2006/04/21 20:36:17 flameeyes Exp $ # Author Diego Pettenò # Maintained by wxwidgets herd # This eclass is used by wxlib-based packages (wxGTK, wxMotif, wxBase, wxMac) to share code between # them. inherit flag-o-matic eutils multilib toolchain-funcs IUSE="debug doc odbc unicode" LICENSE="wxWinLL-3" # Note 1: Gettext is not runtime dependency even if nls? because wxWidgets # has its own implementation of it # Note 2: PCX support is enabled if the correct libraries are detected. # There is no USE flag for this. DEPEND="${RDEPEND} sys-libs/zlib sys-apps/sed" HOMEPAGE="http://www.wxwindows.org" SRC_URI="mirror://sourceforge/wxwindows/wxWidgets-${PV}.tar.bz2 doc? ( mirror://sourceforge/wxwindows/wxWidgets-${PV}-HTML.tar.gz )" S=${WORKDIR}/wxWidgets-${PV} # Configure a build. # It takes three parameters; # $1: prefix for the build directory (used for wxGTK which has two # builds needed. # $2: "unicode" if it must be build with else "" # $3: all the extra parameters to pass to configure script configure_build() { export LANG='C' mkdir ${S}/$1_build cd ${S}/$1_build # odbc works with ansi only: subconfigure $3 $(use_with odbc) emake -j1 CXX="$(tc-getCXX)" CC="$(tc-getCC)" || die "emake failed" #wxbase has no contrib: if [[ -e contrib/src ]]; then cd contrib/src emake -j1 CXX="$(tc-getCXX)" CC="$(tc-getCC)" || die "emake contrib failed" fi if [[ "$2" == "unicode" ]] && use unicode; then mkdir ${S}/$1_build_unicode cd ${S}/$1_build_unicode subconfigure $3 --enable-unicode emake -j1 CXX="$(tc-getCXX)" CC="$(tc-getCC)" || die "Unicode emake failed" if [[ -e contrib/src ]]; then cd contrib/src emake -j1 CXX="$(tc-getCXX)" CC="$(tc-getCC)" || die "Unicode emake contrib failed" fi fi } # This is a commodity function which calls configure script # with the default parameters plus extra parameters. It's used # as building the unicode version required redoing it. # It takes all the params and passes them to the script subconfigure() { local ldver=$( $(tc-getLD) --version | head -n 1 | \ sed -e 's:.*version \([0-9.]\+\) .*:\1:') local ldmaj=$(echo $ldver | cut -f1 -d.) local ldmin=$(echo $ldver | cut -f2 -d.) local ldmicro=$(echo $ldver | cut -f3 -d.) [[ $ldmaj -lt 1 || ( $ldmaj == 2 && $ldmin < 16 && $ldmicro < 92 ) ]] && filter-ldflags -Wl,--as-needed --as-needed ECONF_SOURCE="${S}" \ econf \ --disable-precomp-headers \ --disable-debugreport \ --with-zlib \ $(use_enable debug) $(use_enable debug debug_gdb) \ $* || die "./configure failed" } # Installs a build # It takes only a parameter: the prefix for the build directory # see configure_build function install_build() { cd ${S}/$1_build einstall libdir="${D}/usr/$(get_libdir)" || die "Install failed" if [[ -e contrib ]]; then cd contrib/src einstall libdir="${D}/usr/$(get_libdir)" || die "Install contrib failed" fi if [[ -e ${S}/$1_build_unicode ]]; then cd ${S}/$1_build_unicode einstall libdir="${D}/usr/$(get_libdir)" || die "Unicode install failed" cd contrib/src einstall libdir="${D}/usr/$(get_libdir)" || die "Unicode install contrib failed" fi } # To be called at the end of src_install to perform common cleanup tasks wxlib_src_install() { cp ${D}/usr/bin/wx-config ${D}/usr/bin/wx-config-2.6 || die "Failed to cp wx-config" # In 2.6 all wx-config*'s go in/usr/lib/wx/config not # /usr/bin where 2.4 keeps theirs. # Only install wx-config if 2.4 is not installed: if [ -e "/usr/bin/wx-config" ]; then if [ "$(/usr/bin/wx-config --release)" = "2.4" ]; then rm ${D}/usr/bin/wx-config fi fi if use doc; then dodir /usr/share/doc/${PF}/{demos,samples,utils} dohtml ${S}/contrib/docs/html/ogl/* dohtml ${S}/docs/html/* cp -R ${S}/demos/* ${D}/usr/share/doc/${PF}/demos/ cp -R ${S}/utils/* ${D}/usr/share/doc/${PF}/utils/ cp -R ${S}/samples/* ${D}/usr/share/doc/${PF}/samples/ dodoc ${S}/*.txt fi } EXPORT_FUNCTIONS src_install