# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name poco version 1.3.5 categories devel maintainers nox openmaintainer platforms darwin description POCO C++ Libraries long_description \ POCO aims to be for network-centric, cross-platform C++ software development \ what Apple's Cocoa is for Mac development, or Ruby on Rails is for Web \ development -- a powerful, yet easy to use platform to build your applications upon. homepage http://pocoproject.org/ master_sites sourceforge use_bzip2 yes distname ${name}-${version}-all set docdistname ${name}-[strsed ${version} {s/[a-z].*$//}]-doc checksums [suffix ${distname}] \ md5 b36fc66e39560dd985d4ae4bc8011be8 \ sha1 e7901adbd29b8c194b67ee476b0ace27772e5c4e \ rmd160 5e40706ce786127517649c3693d39777ad620eb4 \ ${docdistname}.tar.gz \ md5 357fbbb4f31921ebe7dc49a1b6b5742c \ sha1 0d0af652752e7cb584900313afc1e2e57bea68f9 \ rmd160 a43b7a77ee3a9eb6e7736786f7808ef5fd22202c patchfiles patch-rules-deps.diff set config Darwin set omit {NetSSL_OpenSSL Data/ODBC Data/MySQL Crypto} configure.args --no-samples pre-configure { configure.args-append --omit=[join ${omit} ,] reinplace -E "/^C(XX)?FLAGS +=/s|\$| ${configure.cppflags} ${configure.cflags}|" \ ${worksrcpath}/build/config/${config} reinplace -E "/^((SH|DY)LIB|LINKFLAGS) +=/s|\$| -L\$(LIBPATH) ${configure.ldflags}|" \ ${worksrcpath}/build/config/${config} } use_parallel_build yes build.target poco test.run yes test { proc luniq {list} { set x() {}; unset x foreach {item} ${list} { set x(${item}) "" } return [array names x] } set file [open ${worksrcpath}/components] set components {} while {[gets ${file} component] != -1} { lappend components ${component} } close ${file} foreach {component} [luniq ${components}] { foreach {testrunner} [glob -nocomplain ${worksrcpath}/${component}/testsuite/bin/*/*/testrunner{,d}] { catch {system "${testrunner} -all -print"} } } } set docdir ${prefix}/share/doc/${name}-${version} post-destroot { xinstall -d ${destroot}${docdir} xinstall -m 0644 -W ${worksrcpath} CHANGELOG CONTRIBUTORS LICENSE NEWS README VERSION \ ${destroot}${docdir} if {![variant_isset doc]} { xinstall -d ${destroot}${docdir}/html xinstall -m 0644 -W ${worksrcpath}/doc Acknowledgements.html ${destroot}${docdir}/html } set libdir ${prefix}/lib foreach {dylib} [glob -types f -tails -directory ${destroot}${libdir} *.dylib] { system "install_name_tool -id ${libdir}/${dylib} ${destroot}${libdir}/${dylib}" set otool [lrange [split [exec otool -L ${destroot}${libdir}/${dylib}] \n] 2 end] foreach {otoolentry} ${otool} { set lib [lindex ${otoolentry} 0] if {! [string match ${worksrcpath}/* ${lib}]} { continue } system "install_name_tool -change ${lib} ${libdir}/[file tail ${lib}] \ ${destroot}${libdir}/${dylib}" } } } variant ssl description {Build NetSSL and Crypto library} { depends_lib-append port:openssl set omit [ldelete [ldelete ${omit} NetSSL_OpenSSL] Crypto] } variant odbc description {Build ODBC backend for Data library} { patchfiles-append patch-Data-ODBC-Makefile.diff depends_lib-append lib:libiodbc:unixODBC set omit [ldelete ${omit} Data/ODBC] } variant mysql description {Build MySQL backend for Data library} { patchfiles-append patch-Data-MySQL-Makefile.diff depends_lib-append path:bin/mysql_config5:mysql5 post-configure { reinplace -E "/^C(XX)?FLAGS +=/s|\$| -I${prefix}/include/mysql5/mysql|" \ ${worksrcpath}/build/config/${config} reinplace -E "/^((SH|DY)LIB|LINKFLAGS) +=/s|\$| -L${prefix}/lib/mysql5/mysql|" \ ${worksrcpath}/build/config/${config} } set omit [ldelete ${omit} Data/MySQL] } variant doc description {Install extra documentation} { extract.only ${distfiles} distfiles-append ${docdistname}.tar.gz post-extract { system "tar xzf ${distpath}/${docdistname}.tar.gz -C ${workpath}" } post-destroot { set workdocpath ${workpath}/${docdistname} xinstall -d ${destroot}${docdir}/html/CppUnit eval xinstall -m 0644 [glob -directory ${workdocpath} *.html] ${destroot}${docdir}/html eval xinstall -m 0644 [glob -directory ${worksrcpath}/CppUnit/doc *] ${destroot}${docdir}/html/CppUnit foreach {dir} {images css} { xinstall -d ${destroot}${docdir}/html/${dir} eval xinstall -m 0644 [glob -directory ${workdocpath}/${dir} *] ${destroot}${docdir}/html/${dir} } } } platform darwin 7 { set config Darwin7 configure.args-append --config=${config} } livecheck.regex "sources ${name}-(.*) released.*"