# -*- 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 133428 2015-03-01 13:18:57Z takeshi@macports.org $ PortSystem 1.0 PortGroup cmake 1.0 PortGroup compilers 1.0 PortGroup wxWidgets 1.0 name plplot version 5.10.0 revision 3 platforms darwin maintainers takeshi openmaintainer categories science license LGPL description Scientific plotting package, double precision version master_sites sourceforge checksums rmd160 16e353cf410232da700d5f2edd1533006f2dc4c4 \ sha256 d4e930b8b9d43cd1663408986218d61f166de7cbc9ef5bed111b0bdea934f9d5 homepage http://plplot.sourceforge.net/ set description_base "PLplot is a cross-platform software package for \ creating scientific plots. To help accomplish that task it is organized as a \ core C library, language bindings for that library, and device drivers which \ control how the plots are presented in non-interactive and interactive \ plotting contexts." long_description ${description_base} This port uses double precision. compilers.choose fc f90 compilers.setup # depends_build-append \ # port:pkgconfig depends_lib port:qhull \ port:fontconfig \ port:freefont-ttf \ port:freetype \ port:libLASi \ port:swig-tcl \ port:tcl patchfiles patch-CMakeLists.txt.diff \ patch-plConfig.h.in.diff \ patch-cmake-modules-pkg-config.cmake.diff post-patch { reinplace "s|-ObjC|-ObjC -framework AquaTerm|" ${worksrcpath}/cmake/modules/aqt.cmake reinplace "s|-framework AquaTerm|-F${frameworks_dir} -framework AquaTerm|" ${worksrcpath}/cmake/modules/aqt.cmake if {[variant_isset python26]} { reinplace "s|\${CMAKE_INSTALL_EXEC_PREFIX}|${frameworks_dir}/Python.framework/Versions/2.6|" \ ${worksrcpath}/cmake/modules/python.cmake } elseif {[variant_isset python27]} { reinplace "s|\${CMAKE_INSTALL_EXEC_PREFIX}|${frameworks_dir}/Python.framework/Versions/2.7|" \ ${worksrcpath}/cmake/modules/python.cmake } } configure.cppflags-append -DUSE_INTERP_RESULT \ -DTcl_Import_TCL_DECLARED if {[variant_isset universal]} { set cflags "${configure.cppflags} ${configure.cflags} ${configure.universal_cflags}" set cxxflags "${configure.cppflags} ${configure.cxxflags} ${configure.universal_cxxflags}" } else { set cflags "${configure.cppflags} ${configure.cflags}" set cxxflags "${configure.cppflags} ${configure.cxxflags}" } cmake.out_of_source yes configure.env HOME=${workpath} configure.args-append -DTCL_INCLUDE_PATH=${prefix}/include \ -DTCL_LIBRARY=${prefix}/lib/libtcl.dylib \ -DFREETYPE_INCLUDE_DIR=${prefix}/include/freetype2 \ -DFREETYPE_LIBRARY=${prefix}/lib/libfreetype.dylib \ -DPL_FREETYPE_FONT_PATH=${prefix}/share/fonts/freefont-ttf \ -DWITH_FREETYPE=ON \ -DQHULL_INCLUDE_DIR=${prefix}/include \ -DPLD_aqt=OFF \ -DPLD_extcairo=ON \ -DPLD_memcairo=ON \ -DPLD_ps=ON \ -DPLD_psttf=ON \ -DPLD_pscairo=ON \ -DPLD_pdfcairo=ON \ -DPLD_pngcairo=ON \ -DPLD_svgcairo=ON \ -DPLD_tk=OFF \ -DPLD_wxwidgets=OFF \ -DPLD_wxpng=OFF \ -DPLD_xcairo=OFF \ -DPLD_xwin=OFF \ -DPLD_xfig=OFF \ -DPLD_tkwin=OFF \ -DPLD_bmpqt=OFF \ -DPLD_jpgqt=OFF \ -DPLD_pngqt=OFF \ -DPLD_ppmqt=OFF \ -DPLD_epsqt=OFF \ -DPLD_pdfqt=OFF \ -DPLD_tiffqt=OFF \ -DPLD_qtwidget=OFF \ -DPLD_svgqt=OFF \ -DPLD_extqt=OFF \ -DPLD_memqt=OFF \ -DPLD_qtwidget=OFF \ -DENABLE_ada=OFF \ -DENABLE_d=OFF \ -DENABLE_f95=OFF \ -DENABLE_itcl=OFF \ -DENABLE_itk=OFF \ -DENABLE_java=OFF \ -DENABLE_lua=OFF \ -DENABLE_ocaml=OFF \ -DENABLE_octave=OFF \ -DENABLE_pdl=OFF \ -DENABLE_pyqt4=OFF \ -DENABLE_python=OFF \ -DENABLE_qt=OFF \ -DENABLE_tcl=ON \ -DENABLE_tk=OFF \ -DENABLE_wxwidgets=OFF \ -DBUILD_TEST=OFF \ -DHAVE_AGG=OFF \ -DSWIG_DIR=${prefix}/bin \ -DPLPLOT_HAVE_CONFIG_H=ON # if {[variant_isset universal]} { # configure.args-append -DCMAKE_OSX_ARCHITECTURES=\"[strsed ${configure.universal_archs} "g| |;|"]\" -DENABLE_f95:BOOL=OFF # } else { # # Adhoc fix # # cmake passes -arch to Fortran compiler # # g95 ignores -arch but gfortran fails with it # if {[variant_isset g95]} { # configure.args-append -DCMAKE_OSX_ARCHITECTURES=\"[strsed ${build_arch} "g| |;|"]\" # } # } pre-destroot { set mods "${workpath}/build/bindings/f95/plplot.mod ${workpath}/build/bindings/f95/plplotp.mod ${workpath}/build/bindings/f95/plplot_flt.mod" foreach m $mods { if {[file exists $m]} { file copy $m ${workpath}/build/ } } } #platform i386 { # configure.args-append -DCMAKE_MODULE_LINKER_FLAGS=\"-undefined dynamic_lookup\" \ # -DCMAKE_EXE_LINKER_FLAGS=\"-undefined dynamic_lookup\" #} if {${os.platform} eq "darwin"} { default_variants +aquaterm } default_variants-append +x11 subport ${name}-single { description Scientific plotting package, single precision version long_description ${description_base} This port uses single precision. configure.pre_args -DCMAKE_INSTALL_PREFIX=${prefix}/lib/${subport} configure.args-append -DPL_DOUBLE=OFF } if {[variant_isset py27_pyqt4]} { default_variants +qt4 } # variant gcw is deleted since it has been deprecated # gd driver (gif, jpeg, png, svg) has been deprecated # Fortran notes: # * In build/language_tests/Fortran, FC and LDFLAGS are used. # * CMAKE_Fortran_COMPILER is used later in build. # * To avoid -arch ${build_arch} to be passed configure.ld_archflags is unset. if {[fortran_variant_isset]} { configure.ld_archflags "" configure.args-delete -DENABLE_f95=OFF configure.args-append -DCMAKE_Fortran_COMPILER=\"${configure.fc}\" if {[variant_isset g95]} { configure.args-append -DCMAKE_Fortran_FLAGS=\"${configure.fflags} -fno-second-underscore\" } else { configure.args-append -DCMAKE_Fortran_FLAGS=\"${configure.fflags}\" } } if {[variant_isset g95]} { # Ad hoc fix to enable build of f95 binding by disabling some features if {${os.major}<10} { patchfiles-append patch-sfstubsf95.f90.diff } # configure.args-append -DCMAKE_OSX_DEPLOYMENT_TARGET=\"\" } variant octave description {Add support for Octave} { depends_lib-append port:swig-octave configure.args-delete -DENABLE_octave=OFF configure.args-append -DENABLE_octave=ON license-append GPL-2+ } variant java description {Add support for Java} { depends_lib-append port:swig-java configure.args-delete -DENABLE_java=OFF configure.args-append -DENABLE_java=ON } # TODO: Remove after 2015-12-27. variant python25 requires python27 description {Legacy variant} {} variant python26 conflicts python27 description {Add support for python26} { depends_lib-append port:python26 \ port:py26-numpy \ port:swig-python configure.args-delete -DENABLE_python=OFF configure.args-append -DENABLE_python=ON \ -DHAVE_NUMPY:BOOL=ON \ -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/2.6/Headers } variant python27 conflicts python26 description {Add support for python27} { depends_lib-append port:python27 \ port:py27-numpy \ port:swig-python configure.args-delete -DENABLE_python=OFF configure.args-append -DENABLE_python=ON \ -DHAVE_NUMPY:BOOL=ON \ -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/2.7/Headers } # TODO: Remove after 2015-12-27. variant py25_pyqt4 requires py27_pyqt4 description {Legacy variant} {} variant py26_pyqt4 requires py27_pyqt4 description {Legacy variant} {} variant py27_pyqt4 requires python27 description {Add support for pyQT4 using python27} { # Can use either py*-pyqt4 or py*-pyqt4-devel. depends_lib-append path:share/py27-sip/PyQt4:py27-pyqt4 configure.args-delete -DENABLE_pyqt4=OFF configure.args-append -DENABLE_pyqt4=ON } variant gdc description {Add support for D} { depends_lib-append port:gdc configure.args-delete -DENABLE_d=OFF configure.args-append -DENABLE_d=ON } variant aquaterm description {Add support for Aquaterm} { depends_lib-append port:aquaterm configure.args-delete -DPLD_aqt=OFF configure.args-append -DPLD_aqt=ON \ -DAQT_FRAMEWORK=${frameworks_dir}/AquaTerm.framework } variant qt4 description {Add support for Qt4} { depends_lib-append bin:qmake:qt4-mac configure.args-delete -DENABLE_qt=OFF \ -DPLD_bmpqt=OFF \ -DPLD_jpgqt=OFF \ -DPLD_pngqt=OFF \ -DPLD_ppmqt=OFF \ -DPLD_epsqt=OFF \ -DPLD_pdfqt=OFF \ -DPLD_tiffqt=OFF \ -DPLD_qtwidget=OFF \ -DPLD_svgqt=OFF \ -DPLD_extqt=OFF \ -DPLD_memqt=OFF \ -DPLD_qtwidget=OFF configure.args-append -DENABLE_qt=ON \ -DPLD_bmpqt=ON \ -DPLD_jpgqt=ON \ -DPLD_pngqt=ON \ -DPLD_ppmqt=ON \ -DPLD_epsqt=ON \ -DPLD_pdfqt=ON \ -DPLD_tiffqt=ON \ -DPLD_qtwidget=ON \ -DPLD_svgqt=ON \ -DPLD_extqt=ON \ -DPLD_memqt=ON \ -DPLD_qtwidget=ON } variant wxwidgets description {Add support for wxWidgets} { wxWidgets.use wxWidgets-3.0 depends_lib-append port:${wxWidgets.port} configure.args-delete -DPLD_wxwidgets=OFF \ -DPLD_wxpng=OFF \ -DENABLE_wxwidgets=OFF configure.args-append -DPLD_wxwidgets=ON \ -DPLD_wxpng=ON \ -DENABLE_wxwidgets=ON \ -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets.wxconfig} \ -DwxWidgets_wxrc_EXECUTABLE=${wxWidgets.wxrc} \ -Dwxwidgets_LINK_FLAGS=-lplplotd } variant x11 { depends_lib-append path:lib/pkgconfig/pango.pc:pango \ port:tk configure.args-append -DPLD_xcairo=ON \ -DPLD_xwin=ON \ -DPLD_xfig=ON \ -DPLD_tk=ON \ -DENABLE_tk=ON \ -DTK_INCLUDE_PATH=${prefix}/include \ -DTK_LIBRARY=${prefix}/lib/libtk.dylib configure.args-delete -DPLD_xcairo=OFF \ -DPLD_xwin=OFF \ -DPLD_xfig=OFF \ -DENABLE_tk=OFF } livecheck.type regex livecheck.url http://sourceforge.net/p/${name}/news/ livecheck.regex {PLplot-([0-9]+\.[0-9]+\.[0-9]+)}