# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

# Synced with Fink, revision 1.25

PortSystem          1.0
PortGroup           conflicts_build 1.0

name                qt3
conflicts           qt3-mac
version             3.3.8
revision            16
categories          x11
license             {QPL-1 GPL-2}
maintainers         nomaintainer
description         Qt Tool Kit
long_description    Qt 3 is a multiplatform C++ application development framework.
platforms           darwin
homepage            http://www.qt.io/
master_sites        https://download.qt.io/archive/qt/3/:qt3 \
                    http://ranger.befunk.com/fink/:fink
distname            qt-x11-free-${version}
distfiles           ${distname}.tar.bz2:qt3 \
                    qt-upstream-patches-0004.tar.bz2:fink
use_bzip2           yes
checksums           ${distname}.tar.bz2 \
                    md5     cf3c43a7dfde5bfb76f8001102fe6e85 \
                    rmd160  7b8e4e35f49014eac4fcfe91b7ec0a45c5569cf4 \
                    sha256  e8c3f703d00a4e2ab9ba63fd474caa8a9d0aa3d7f1d5451dd162bec9d778a449 \
                    qt-upstream-patches-0004.tar.bz2 \
                    md5     1f27d5222813a0a29fe53fd8669e2239 \
                    rmd160  9c59caee3229d0cfe2a14a7e67f73a1c3b86a154 \
                    sha256  0db4fd5f314b1c93139f5d08305c1c25d75c4078289402d173f1dea24a43da66

depends_lib         port:libGLU \
                    port:mesa \
                    path:include/turbojpeg.h:libjpeg-turbo \
                    port:libpng \
                    path:bin/perl:perl5 \
                    port:Xft2 \
                    port:xrender \
                    port:xorg-libXcursor \
                    port:xorg-libXinerama \
                    port:xorg-libXrandr \
                    port:zlib

post-extract {
    copy {*}[glob ${filespath}/qt-copy/*] ${workpath}/patches/
}

patchfiles          qt3-tiger.patch \
                    dp01.patch \
                    macports-x11.patch \
                    patch-src_kernel_qpngio.cpp.diff

patch {
    foreach p ${patchfiles} {
        system "cd ${worksrcpath} && sed -e 's|@PREFIX@|${prefix}|g' < ${filespath}/${p} | patch -p1"
    }
    #system "perl -pi -e 's|cp \-P|/bin/cp \-RL|' ${worksrcpath}/qmake/Makefile.unix"

    foreach p { patches/qt-3.3.4-print-CJK.patch \
                patches/qt-3.0.5-nodebug.patch \
                patches/qt-x11-free-3.3.2-quiet.patch \
                patches/qt-uic-nostdlib.patch \
                patches/qt-x11-free-3.3.5-uic.patch \
                patches/qt-x11-free-3.3.4-qfontdatabase_x11.patch \
                patches/qt-3.3.3-gtkstyle.patch \
                patches/qt-x11-free-3.3.4-fullscreen.patch } {
                    system "cd ${worksrcpath} && patch -p1 --fuzz=4 < ${workpath}/${p}"
    }
    foreach p { patches/0001-dnd_optimization.patch \
                patches/0002-dnd_active_window_fix.patch \
                patches/0005-qpixmap_mitshm.patch \
                patches/0007-qpixmap_constants.patch \
                patches/0015-qiconview-finditem.patch \
                patches/0016-qiconview-rebuildcontainer.patch \
                patches/0017-qiconview-ctrl_rubber.patch \
                patches/0020-designer-deletetabs.patch \
                patches/0032-fix_rotated_randr.diff \
                patches/0035-qvaluelist-streaming-operator.patch \
                patches/0036-qprogressbar-optimization.patch \
                patches/0038-dragobject-dont-prefer-unknown.patch \
                patches/0044-qscrollview-windowactivate-fix.diff \
                patches/0046-qiconview-no-useless-scrollbar.diff \
                patches/0047-fix-kmenu-width.diff \
                patches/0048-qclipboard_hack_80072.patch \
                patches/0049-qiconview-rubber_on_move.diff \
                patches/0056-khotkeys_input_84434.patch \
                patches/0059-qpopup_has_mouse.patch \
                patches/0060-qpopup_ignore_mousepos.patch \
                patches/0061-qscrollview-propagate-horizontal-wheelevent.patch \
                patches/0073-xinerama-aware-qpopup.patch \
                patches/0076-fix-qprocess.diff \
                patches/0077-utf8-decoder-fixes.diff
                patches/0078-argb-visual-hack.patch
                patches/0079-compositing-types.patch
                patches/0080-net-wm-sync-request.patch
                patches/0082-fix-qdatetime-fromstring.diff
                patches/0083-CVE-2007-4137.diff
                patches/0084-compositing-properties.patch
                patches/0085-fix-buildkey.diff
                patches/0086-revert-qt-khmer-fix.diff
                patches/0087-use-xrandr-1.2.diff
                patches/0088-fix-xinput-clash.diff} {
                    system "cd ${worksrcpath} && patch -p0 --fuzz=4 < ${workpath}/${p}"
    }
}

post-patch {
    foreach file {CompileScript.sh InstallScript.sh} {
        copy ${filespath}/${file} ${worksrcpath}
        reinplace "s|%p|${prefix}|g" ${worksrcpath}/${file}
        reinplace "s|%N|${name}|g" ${worksrcpath}/${file}
        reinplace "s|%n|${name}|g" ${worksrcpath}/${file}
        reinplace "s|%v|${version}|g" ${worksrcpath}/${file}
        reinplace "s|%r|${revision}|g" ${worksrcpath}/${file}
        reinplace "s|%c|${configure.args}|g" ${worksrcpath}/${file}
        reinplace "s|%d|${destroot}|g" ${worksrcpath}/${file}
        reinplace "s|%i|${destroot}${prefix}|g" ${worksrcpath}/${file}
        reinplace "s|__MAKE__|${build.cmd}|g" ${worksrcpath}/${file}
        file attributes ${worksrcpath}/${file} -permissions 0755
    }
    if {${os.major} >= 10 && ${configure.build_arch} eq "x86_64"} {
        system "perl -pi -e \"s,\\(int\\)owner\\, \\(int\\),\\(long\\)owner\\, \\(long\\),g\" ${worksrcpath}/src/tools/qmutex_unix.cpp"
    }
    reinplace "s|pipe|pipe ${configure.cflags}|" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|gcc-4.0|${configure.cc}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|g++-4.0|${configure.cxx}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|\\.dylib$|.dylib ${configure.cc_archflags}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
}

conflicts_build     qt3-mac

configure.args      -v -buildkey qt3-jaguar \
                    -platform darwin-g++ -xplatform darwin-g++ \
                    -prefix '${prefix}/lib/qt3' -docdir '${prefix}/share/doc/qt3' \
                    -headerdir '${prefix}/include/qt3' -libdir '${prefix}/lib' \
                    -release -shared -no-exceptions -thread -cups -stl \
                    -qt-gif -plugin-imgfmt-png -plugin-imgfmt-jpeg -plugin-imgfmt-mng \
                    -system-libpng -system-libjpeg -system-zlib -largefile \
                    -sm -xinerama -xrender -xft -xkb \
                    -plugin-sql-sqlite -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql

use_configure       no

use_parallel_build  yes
build {
    system "cd ${worksrcpath} && ./CompileScript.sh"
}

destroot {
    system "cd ${worksrcpath} && ./InstallScript.sh"
}
post-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}
    foreach f {FAQ INSTALL LICENSE* MANIFEST PLATFORMS README* changes*} {
        xinstall -m 644 {*}[glob ${worksrcpath}/${f}] ${destroot}${prefix}/share/doc/${name}
    }
    foreach f {bin/findtr bin/qt20fix bin/qtrename140} {
        reinplace "s|#!/usr|#!${prefix}|" ${worksrcpath}/${f}
        xinstall -m 755 ${worksrcpath}/${f} ${destroot}${prefix}/share/doc/${name}
    }
}

post-activate {
    system "ranlib ${prefix}/lib/libqassistantclient.a"

    ui_msg "\nBefore using qt3 (qmake),"
    ui_msg "please make sure to set environment variable QTDIR.\n"
    ui_msg "  QTDIR=${prefix}/lib/qt3; export QTDIR\n"
}

universal_variant   no

variant mysql description {Enable MySQL 5 SQL Driver} {
    depends_lib-append      path:lib/mysql5:mysql5
    configure.args-delete   -no-sql-mysql
    configure.args-append   -qt-sql-mysql \
                            -L${prefix}/lib/mysql5/mysql \
                            -I${prefix}/include/mysql5/mysql \
                            -plugin-sql-mysql
}

variant odbc description {Enable unixODBC SQL Driver} {
    depends_lib-append      port:unixODBC
    configure.args-delete   -no-sql-odbc
    configure.args-append   -qt-sql-odbc \
                            -plugin-sql-odbc
}

livecheck.type      none
