# -*- 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
# $Id: Portfile 96976 2012-08-23 18:07:35Z pixilla@macports.org $

PortSystem          1.0
PortGroup           cmake 1.0

name                mysql55-connector-cpp
set name_package    mysql-connector-c++
version             1.1.1
set branch          [join [lrange [split ${version} .] 0 1] .]
categories          databases
platforms           darwin
maintainers         pixilla openmaintainer
license             GPL-2

set mirror_dir      Downloads/Connector-C++
homepage            http://www.mysql.com/products/connector/
master_sites        http://mysql.mirrors.pair.com/${mirror_dir} \
                    http://mysql.he.net/${mirror_dir} \
                    http://mirrors.sunsite.dk/mysql/${mirror_dir} \
                    http://sunsite.informatik.rwth-aachen.de/mysql/${mirror_dir} \
                    http://ftp.plusline.de/mysql/${mirror_dir}

distname            ${name_package}-${version}
checksums           rmd160  6415ae385effabb482b12cb9e39186d838d70d74 \
                    sha256  31c3e4f637153bd270812dffc6a50708dfc686a8afa7ea1c88a9dfda0d8af52e

depends_build-append \
                    port:boost

patch.pre_args      -p1
patchfiles          patch-CMakeLists.txt.diff \
                    patch-cppconn-CMakeLists.txt.diff \
                    patch-driver-CMakeLists.txt.diff \
                    patch-examples-examples.h.diff \
                    patch-examples-pthreads.cpp.diff \
                    patch-examples-standalone_example.cpp.diff \
                    patch-examples-standalone_example_docs1.cpp.diff \
                    patch-examples-standalone_example_docs2.cpp.diff

post-patch {

    reinplace "s,@NAME@,/${subport},g" \
        ${worksrcpath}/cppconn/CMakeLists.txt \
        ${worksrcpath}/driver/CMakeLists.txt
}

configure.args-append \
                    -DCMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/${subport}

post-destroot {
    xinstall -d ${destroot}${prefix}/share/${subport}
    copy ${worksrcpath}/examples \
        ${destroot}${prefix}/share/${subport}/

    foreach lib [glob -directory ${destroot}${prefix}/lib/${subport} -type f *.dylib] {

        system "install_name_tool -id ${prefix}/lib/${subport}/[strsed ${lib} /^.*\\///] ${lib}"
    }
}

set mp.ports {
    mysql5
    mysql51
    mysql55
    mariadb
    percona
}
set mp.names {}
foreach mp.port ${mp.ports} {

    lappend mp.names "${mp.port}-connector-cpp"
}
foreach mp.name ${mp.names} {

    set idx             [lsearch ${mp.names} ${mp.name}]
    set mp.port     [lindex ${mp.ports} $idx]
    set mp.conflicts  [lreplace ${mp.names} $idx $idx]

    if {[string compare ${mp.name} ${name}] == 0 && [string compare ${mp.name} ${subport}] == 0} {

        description         The MySQL Connector/C++ for ${mp.port}.
        long_description    ${description} \
                            Standardized MySQL database driver for C++ development.
        depends_lib-append  port:${mp.port}
        configure.args-append \
                            -DMYSQLCPPCONN_DYNLOAD_MYSQL_LIB:FILEPATH=${prefix}/lib/${mp.port}/mysql/libmysqlclient.dylib \
                            -DMYSQL_CONFIG_EXECUTABLE:FILEPATH=${prefix}/lib/${mp.port}/bin/mysql_config
    } else {

        subport ${mp.name} {
        
            description         The MySQL Connector/C++ for ${mp.port}.
            long_description    ${description} \
                                Standardized MySQL database driver for C++ development.
            depends_lib-append  port:${mp.port}
            configure.args-append \
                                -DMYSQLCPPCONN_DYNLOAD_MYSQL_LIB:FILEPATH=${prefix}/lib/${mp.port}/mysql/libmysqlclient.dylib \
                                -DMYSQL_CONFIG_EXECUTABLE:FILEPATH=${prefix}/lib/${mp.port}/bin/mysql_config
        }
    }
}

subport mysql-connector-cpp {

    replaced_by         mysql5-connector-cpp
    PortGroup           obsolete 1.0
}

livecheck.type      regex
livecheck.url       [lindex ${master_sites} 0]
livecheck.regex     "\"mysql-connector-c\\+\\+-(\\d\[\\d\\.\]*)\\${extract.suffix}\""
