# -*- 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

PortSystem          1.0

# broken compatibility with libpng, see:
# * https://trac.macports.org/ticket/39249

name                qt3-mac
conflicts           qt3
version             3.3.8b
revision            5
categories          aqua
license             {QPL-1 GPL-2 GPL-3}
maintainers         nomaintainer
description         Qt Tool Kit (Native Aqua Version)
long_description    This is Qt, TrollTech's C++ toolkit for writing \
                    cross-platform GUI applications.
homepage            http://www.qt.io/
master_sites        https://download.qt.io/archive/qt/3/
distname            qt-mac-free-${version}
checksums           rmd160  a71ec4140371c88bf5e29c1c2886f02d643a4a57 \
                    sha256  32a2945995c672b221b0e3431748850a575a4620abd2cc26ba98e188b1282922
platforms           darwin
supported_archs     i386 ppc
destroot.violate_mtree \
                    yes

depends_lib         port:libmng \
                    port:libpng \
                    port:zlib

variant mysql4 conflicts mysql5 description "add MySQL 4 support" {
    depends_lib-append      port:mysql4
    configure.args-delete   -no-sql-mysql
    configure.args-append   -qt-sql-mysql \
                            -L${prefix}/lib/mysql \
                            -I${prefix}/include/mysql \
                            -plugin-sql-mysql
}

variant mysql5 conflicts mysql4 description "add MySQL 5 support" {
    depends_lib-append      path:bin/mysql_config5: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
}

configure.cmd       "echo yes | ./configure"
configure.env       DYLD_LIBRARY_PATH= \
                    QMAKESPEC= \
                    QTDIR=
configure.args      -v -prefix '${prefix}' \
                    -docdir '${prefix}/share/doc/${name}/html' \
                    -datadir '${prefix}/share/qt3' \
                    -headerdir '${prefix}/include/qt3' \
                    -plugindir '${prefix}/lib/qt3-plugins' \
                    -release -shared -fast -thread -stl \
                    -qt-gif -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng \
                    -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql \
                    -no-sql-sqlite -no-nis -no-cups -ipv6 \
                    -largefile \
                    -system-zlib -system-libpng -system-libjpeg \
                    -system-libmng \
                    '-I${prefix}/include' \
                    '-L${prefix}/lib'

build.env           DYLD_LIBRARY_PATH=${worksrcpath}/lib \
                    QMAKESPEC= \
                    QTDIR=
build.target        symlinks src-qmake src-moc sub-src sub-tools

destroot.destdir    INSTALL_ROOT='${destroot}'
post-destroot {
    system "ranlib -s ${destroot}${prefix}/lib/libdesignercore.a"
    system "ranlib -s ${destroot}${prefix}/lib/libeditor.a"
    system "ranlib -s ${destroot}${prefix}/lib/libqassistantclient.a"
}

platform darwin {
    if {${os.major} > 10} {
        known_fail  yes
        pre-fetch {
            ui_error "${name} requires Mac OS X 10.6 or older."
            return -code error "incompatible OS version"
        }
    }

    patchfiles      patch-src-qt_install.pri \
                    patch-mkspecs-qmake.conf \
                    patch-qmake_Makefile.unix.diff \
                    qt3-leopard.diff \
                    reinplace_support.diff \
                    patch-src-kernel_qpngio.cpp.diff \
                    dlcompat.diff
    configure.args-append -ldl
    post-patch {
        reinplace s|__CC__|${configure.cc}|   ${worksrcpath}/mkspecs/macx-g++/qmake.conf
        reinplace s|__CXX__|${configure.cxx}| ${worksrcpath}/mkspecs/macx-g++/qmake.conf \
                                              ${worksrcpath}/config.tests/mac/mac_version.test
        if {[variant_isset universal]} {
            set archflags ${configure.universal_cflags}
        } else {
            set archflags ${configure.cc_archflags}
        }
        reinplace s/__ARCHFLAGS__/${archflags}/ ${worksrcpath}/mkspecs/macx-g++/qmake.conf \
                                                ${worksrcpath}/config.tests/mac/mac_version.test
        if {!${configure.pipe}} {
            reinplace s/-pipe// ${worksrcpath}/mkspecs/macx-g++/qmake.conf
        }
    }
    post-destroot {
        system "sh ${filespath}/fix_install_names.sh '${prefix}' '${destroot}' '${frameworks_dir}'"
        set appPath ${destroot}${applications_dir}/Qt3
        xinstall -d -m 0755 ${appPath}
        foreach app {assistant designer linguist qtconfig} {
            system "mv -v ${destroot}${prefix}/bin/${app}.app \
                ${appPath}/${app}.app"
        }
        regexp {[0-9.]+} $version baseversion
        set majorver [lindex [split ${baseversion} .] 0]
        set minorver [join [lrange [split ${baseversion} .] 0 1] .]
        foreach libname "libqt libqt.${majorver} libqt.${minorver}" {
            if {![file exists "${destroot}${prefix}/lib/${libname}.dylib"]} {
                ln -s libqt-mt.${baseversion}.dylib "${destroot}${prefix}/lib/${libname}.dylib"
            }
        }
    }
}

configure.universal_args-delete \
                    --disable-dependency-tracking

livecheck.type      none