# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; truncate-lines: t -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4 # $Id: Portfile 145254 2016-01-29 21:13:15Z michaelld@macports.org $ PortSystem 1.0 name qwt categories graphics science # actually a little more permissive than the standard LGPL, but the # distinction doesn't matter to us. license LGPL-2.1 maintainers michaelld openmaintainer homepage http://qwt.sourceforge.net master_sites sourceforge:qwt use_bzip2 yes use_parallel_build no platforms darwin if {${subport} eq ${name}} { version 5.1.2 distname qwt-${version} revision 3 conflicts qwt52 qwt60 qwt61 checksums sha1 2fc04b78c438635a78e41a22fea6f9e016f7ca17 \ rmd160 a5a94aa3870a631f9605e6370c4d04fb1c79347e patchfiles patch-qwtconfig.pri.51.diff livecheck.url http://sourceforge.net/api/file/index/project-id/13693/mtime/desc/rss livecheck.regex \\/qwt\\/(5\\.1\\.\\d+)\\/ } subport qwt52 { version 5.2.3 revision 1 distname qwt-${version} conflicts qwt qwt60 qwt61 checksums sha1 ff81595a1641a8b431f98d6091bb134bc94e0003 \ rmd160 9b2128ad2b53a65678f9ea57d34cdc73a3674d21 patchfiles patch-qwtconfig.pri.52.diff livecheck.url http://sourceforge.net/api/file/index/project-id/13693/mtime/desc/rss livecheck.regex \\/qwt\\/(5\\.2\\.\\d+)\\/ } subport qwt60 { version 6.0.2 revision 1 distname qwt-${version} conflicts qwt qwt52 qwt61 checksums sha1 cbdd00b29521987c9e7bc6aa51092f0474b9428d \ rmd160 c9d31f40b6001f09c59dbf4c0628ddd860474821 patchfiles patch-qwtconfig.pri.60.diff \ patch-qwtbuild.pri.60.diff \ patch-qwtfunctions.pri.60.diff \ patch-designer_designer.pro.60.diff livecheck.url http://sourceforge.net/api/file/index/project-id/13693/mtime/desc/rss livecheck.regex \\/qwt\\/(6\\.0\\.\\d+)\\/ } subport qwt61 { version 6.1.2 revision 1 distname qwt-${version} conflicts qwt qwt52 qwt60 checksums sha1 6af82b6ee4132f779d1c8c2db872f01463b0d61c \ sha256 2b08f18d1d3970e7c3c6096d850f17aea6b54459389731d3ce715d193e243d0c patchfiles patch-designer_designer.pro.61.diff \ patch-qwtconfig.pri.61.diff \ patch-qwtbuild.pri.61.diff livecheck.url http://sourceforge.net/api/file/index/project-id/13693/mtime/desc/rss livecheck.regex \\/qwt\\/(6\\.1\\.\\d+)\\/ } # get qwt's version numbers global qwt_major, qwt_minor, qwt_patch set qwt_vers [split ${version} "."] set qwt_major [lindex ${qwt_vers} 0] set qwt_minor [lindex ${qwt_vers} 1] set qwt_patch [lindex ${qwt_vers} 2] set qwt_maj_min ${qwt_major}.${qwt_minor} description QWT: Qt Widgets for Technical Applications, \ Version ${qwt_maj_min} long_description ${description}\nThe Qwt library contains GUI \ Components and utility classes which are primarily useful for \ programs with a technical background. Beside a 2D plot widget it \ provides scales, sliders, dials, compasses, thermometers, wheels \ and knobs to control or display values, arrays, or ranges of type \ double. QWT version ${qwt_maj_min} contains source incompatible \ changes versus other versions of QWT. post-patch { # setup for debug, if selected if {[variant_isset debug]} { if {${qwt_major} == 5} { reinplace "/CONFIG/s@release@debug_and_release build_all@" \ ${worksrcpath}/qwtconfig.pri } else { reinplace "/CONFIG/s@release@debug_and_release build_all@" \ ${worksrcpath}/qwtbuild.pri } } # set arch type(s) if {${qwt_major} == 5} { reinplace "s/@ARCHES@/${qt_arch_types}/" \ ${worksrcpath}/qwtconfig.pri } else { reinplace "s/@ARCHES@/${qt_arch_types}/" \ ${worksrcpath}/qwtbuild.pri } # setup for examples, if selected if {![variant_isset examples]} { reinplace "s@QwtExamples@@" \ ${worksrcpath}/qwtconfig.pri } } if {${qwt_major} < 6} { # QWT version 5 can work with Qt3 or Qt4 variant qt3 conflicts qt4 description {Use qt3-mac} {} variant qt4 conflicts qt3 description {Use qt4-mac} {} # move setting of 'qt_qmake_cmd' outside variants, since 'if' # statements are processed in-order while variants are processed after # everything else. set qt_qmake_cmd "" if {[variant_isset qt3]} { depends_lib-append port:qt3-mac set qt_qmake_cmd ${prefix}/libexec/qt3-mac/bin/qmake } else { # when variant 'qt3' is not set, use qt4 whether by default or via # the user's variant choice if {![variant_isset qt4]} { default_variants +qt4 } PortGroup qt4 1.0 } } else { variant qt5 conflicts qt4 description "Build with Qt5" {} variant qt4 conflicts qt5 description "Build with Qt4" {} # QWT 6+ uses Qt4+ only if {![variant_isset qt5]} { PortGroup qt4 1.0 } else { PortGroup qt5 1.0 set qt_arch_types "x86_64" post-patch { reinplace "s|QT_STATIC_CONST|static const|" \ ${worksrcpath}/src/qwt_scale_map.cpp \ ${worksrcpath}/src/qwt_scale_map.h } } } configure.cmd ${qt_qmake_cmd} configure.pre_args INSTALLBASE="${prefix}" # qmake does not handle these flags configure.universal_args-delete --disable-dependency-tracking configure.args-delete --disable-dependency-tracking # allow ccache, if specified by the user pre-build { if {[tbool configure.ccache]} { build.post_args "CCACHE=ccache" } } post-destroot { # if qwt is installed as a framework, # link in as libraries and headers too if {[file exists ${destroot}${qt_frameworks_dir}/qwt.framework/qwt]} { global qwt_major, qwt_minor, qwt_patch foreach fixfile [exec find ${destroot}${qt_frameworks_dir} \ -name "*.framework" | \ sed -e "s@${destroot}@@g"] { set tf_full [strsed ${fixfile} {s@\\.framework@@}] set tf [strsed ${tf_full} {g@.*\/@@}] # link headers into ${qt_includes_dir}, removing # directories if they are already there first file mkdir ${destroot}${qt_includes_dir} file mkdir ${destroot}${qt_libs_dir} set inc_file ${destroot}${qt_includes_dir}/${tf} if {[file exists ${inc_file}]} { file delete -force ${inc_file} } ln -s ${tf_full}.framework/Headers ${inc_file} # link libraries into ${qt_libs_dir} set libs_dir ${destroot}${qt_libs_dir} ln -s ${tf_full}.framework/${tf} \ ${libs_dir}/lib${tf}.dylib ln -s ${tf_full}.framework/${tf} \ ${libs_dir}/lib${tf}.${qwt_major}.dylib ln -s ${tf_full}.framework/${tf} \ ${libs_dir}/lib${tf}.${qwt_major}.${qwt_minor}.dylib ln -s ${tf_full}.framework/${tf} \ ${libs_dir}/lib${tf}.${qwt_major}.${qwt_minor}.${qwt_patch}.dylib if {[variant_isset debug]} { # link debug libraries into ${qt_libs_dir} ln -s ${tf_full}.framework/${tf}_debug \ ${libs_dir}/lib${tf}_debug.dylib ln -s ${tf_full}.framework/${tf}_debug \ ${libs_dir}/lib${tf}_debug.${qwt_major}.dylib ln -s ${tf_full}.framework/${tf}_debug \ ${libs_dir}/lib${tf}_debug.${qwt_major}.${qwt_minor}.dylib ln -s ${tf_full}.framework/${tf}_debug \ ${libs_dir}/lib${tf}_debug.${qwt_major}.${qwt_minor}.${qwt_patch}.dylib } } } } variant debug description "Build release and debug versions" {} variant examples description "Build examples" {}