source: trunk/dports/science/plplot/Portfile @ 121952

Last change on this file since 121952 was 121952, checked in by sean@…, 5 years ago

compilers-1.0: move setup call in all ports to after setting of name

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 13.9 KB
Line 
1# -*- 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
2# $Id: Portfile 121952 2014-07-12 05:25:04Z sean@macports.org $
3
4PortSystem      1.0
5PortGroup       compilers 1.0
6PortGroup       wxWidgets 1.0
7
8name            plplot
9version         5.10.0
10revision        2
11platforms       darwin
12maintainers     takeshi openmaintainer
13categories      science
14license         LGPL
15description     Scientific plotting package, double precision version
16master_sites    sourceforge
17checksums       rmd160  16e353cf410232da700d5f2edd1533006f2dc4c4 \
18                sha256  d4e930b8b9d43cd1663408986218d61f166de7cbc9ef5bed111b0bdea934f9d5
19homepage        http://plplot.sourceforge.net/
20set description_base "PLplot is a cross-platform software package for \
21creating scientific plots. To help accomplish that task it is organized as a \
22core C library, language bindings for that library, and device drivers which \
23control how the plots are presented in non-interactive and interactive \
24plotting contexts."
25
26long_description    ${description_base} This port uses double precision.
27
28compilers.choose    fc f90
29compilers.setup
30
31depends_build   port:cmake \
32                port:pkgconfig
33depends_lib     port:qhull \
34                port:fontconfig \
35                port:freefont-ttf \
36                port:freetype \
37                port:libLASi \
38                port:swig-tcl \
39                port:tcl
40
41patchfiles      patch-CMakeLists.txt.diff \
42                patch-plConfig.h.in.diff
43post-patch {
44    reinplace "s|-ObjC|-ObjC -framework AquaTerm|" ${worksrcpath}/cmake/modules/aqt.cmake
45    reinplace "s|-framework AquaTerm|-F${frameworks_dir} -framework AquaTerm|" ${worksrcpath}/cmake/modules/aqt.cmake
46    if {[variant_isset python26]} {
47        reinplace "s|\${CMAKE_INSTALL_EXEC_PREFIX}|${frameworks_dir}/Python.framework/Versions/2.6|" \
48                            ${worksrcpath}/cmake/modules/python.cmake
49    } elseif {[variant_isset python27]} {
50        reinplace "s|\${CMAKE_INSTALL_EXEC_PREFIX}|${frameworks_dir}/Python.framework/Versions/2.7|" \
51                            ${worksrcpath}/cmake/modules/python.cmake
52    }
53}
54
55configure.cppflags-append   -DUSE_INTERP_RESULT \
56                            -DTcl_Import_TCL_DECLARED
57if {[variant_isset universal]} {
58    set cflags "${configure.cppflags} ${configure.cflags} ${configure.universal_cflags}"
59    set cxxflags "${configure.cppflags} ${configure.cxxflags} ${configure.universal_cxxflags}"
60} else {
61    set cflags "${configure.cppflags} ${configure.cflags}"
62    set cxxflags "${configure.cppflags} ${configure.cxxflags}"
63}
64
65configure.dir           ${workpath}/build
66configure.cmd           cmake
67configure.env           HOME=${workpath}
68configure.pre_args      -DCMAKE_INSTALL_PREFIX=${prefix}
69configure.args          -DCMAKE_VERBOSE_MAKEFILE=ON \
70                        -DCMAKE_C_COMPILER=${configure.cc} \
71                        -DCMAKE_C_FLAGS=\"${cflags}\" \
72                        -DCMAKE_CXX_COMPILER=${configure.cxx} \
73                        -DCMAKE_CXX_FLAGS=\"${cxxflags}\" \
74                        -DCMAKE_INCLUDE_PATH=${prefix}/include \
75                        -DCMAKE_LIBRARY_PATH=${prefix}/lib \
76                        -DTCL_INCLUDE_PATH=${prefix}/include \
77                        -DTCL_LIBRARY=${prefix}/lib/libtcl.dylib \
78                        -DFREETYPE_INCLUDE_DIR=${prefix}/include/freetype2 \
79                        -DFREETYPE_LIBRARY=${prefix}/lib/libfreetype.dylib \
80                        -DPL_FREETYPE_FONT_PATH=${prefix}/share/fonts/freefont-ttf \
81                        -DWITH_FREETYPE=ON \
82                        -DQHULL_INCLUDE_DIR=${prefix}/include \
83                        -DPLD_aqt=OFF \
84                        -DPLD_extcairo=ON \
85                        -DPLD_memcairo=ON \
86                        -DPLD_ps=ON \
87                        -DPLD_psttf=ON \
88                        -DPLD_pscairo=ON  \
89                        -DPLD_pdfcairo=ON \
90                        -DPLD_pngcairo=ON \
91                        -DPLD_svgcairo=ON \
92                        -DPLD_tk=OFF \
93                        -DPLD_wxwidgets=OFF \
94                        -DPLD_wxpng=OFF \
95                        -DPLD_xcairo=OFF  \
96                        -DPLD_xwin=OFF \
97                        -DPLD_xfig=OFF \
98                        -DPLD_tkwin=OFF \
99                        -DPLD_bmpqt=OFF \
100                        -DPLD_jpgqt=OFF \
101                        -DPLD_pngqt=OFF \
102                        -DPLD_ppmqt=OFF \
103                        -DPLD_epsqt=OFF \
104                        -DPLD_pdfqt=OFF \
105                        -DPLD_tiffqt=OFF \
106                        -DPLD_qtwidget=OFF \
107                        -DPLD_svgqt=OFF \
108                        -DPLD_extqt=OFF \
109                        -DPLD_memqt=OFF \
110                        -DPLD_qtwidget=OFF \
111                        -DENABLE_ada=OFF \
112                        -DENABLE_d=OFF \
113                        -DENABLE_f95=OFF \
114                        -DENABLE_itcl=OFF \
115                        -DENABLE_itk=OFF \
116                        -DENABLE_java=OFF \
117                        -DENABLE_lua=OFF \
118                        -DENABLE_ocaml=OFF \
119                        -DENABLE_octave=OFF \
120                        -DENABLE_pdl=OFF \
121                        -DENABLE_pyqt4=OFF \
122                        -DENABLE_python=OFF \
123                        -DENABLE_qt=OFF \
124                        -DENABLE_tcl=ON \
125                        -DENABLE_tk=OFF \
126                        -DENABLE_wxwidgets=OFF \
127                        -DBUILD_TEST=OFF \
128                        -DHAVE_AGG=OFF \
129                        -DSWIG_DIR=${prefix}/bin \
130                        -DPLPLOT_HAVE_CONFIG_H=ON
131configure.post_args     ../${distname}
132
133pre-configure {
134    file mkdir ${workpath}/build
135}
136
137if {[variant_isset universal]} {
138    configure.args-append -DCMAKE_OSX_ARCHITECTURES=\"[strsed ${configure.universal_archs} "g| |;|"]\" -DENABLE_f95:BOOL=OFF
139} else {
140# Adhoc fix
141# cmake passes -arch to Fortran compiler
142# g95 ignores -arch but gfortran fails with it
143    if {[variant_isset g95]} {
144        configure.args-append -DCMAKE_OSX_ARCHITECTURES=\"[strsed ${build_arch} "g| |;|"]\"
145    }
146}
147
148build.dir               ${workpath}/build
149
150pre-destroot {
151    set mods "${workpath}/build/bindings/f95/plplot.mod
152              ${workpath}/build/bindings/f95/plplotp.mod
153              ${workpath}/build/bindings/f95/plplot_flt.mod"
154    foreach m $mods {
155        if {[file exists $m]} {
156            file copy $m ${workpath}/build/
157        }
158    }
159}
160
161#platform i386 {
162#    configure.args-append   -DCMAKE_MODULE_LINKER_FLAGS=\"-undefined dynamic_lookup\" \
163#                            -DCMAKE_EXE_LINKER_FLAGS=\"-undefined dynamic_lookup\"
164#}
165
166if {${os.platform} eq "darwin"} {
167    default_variants    +aquaterm
168}
169default_variants-append +x11
170
171subport ${name}-single {
172    description     Scientific plotting package, single precision version
173    long_description    ${description_base} This port uses single precision.
174
175    configure.pre_args      -DCMAKE_INSTALL_PREFIX=${prefix}/lib/${subport}
176    configure.args-append   -DPL_DOUBLE=OFF
177}
178
179if {[variant_isset py25_pyqt4] || [variant_isset py26_pyqt4] ||  [variant_isset py27_pyqt4]} {
180    default_variants +qt4
181}
182
183# variant gcw is deleted since it has been deprecated
184# gd driver (gif, jpeg, png, svg) has been deprecated
185
186# Fortran notes:
187# * In build/language_tests/Fortran, FC and LDFLAGS are used.
188# * CMAKE_Fortran_COMPILER is used later in build.
189# * To avoid -arch ${build_arch} to be passed configure.ld_archflags is unset.
190
191if {[fortran_variant_isset]} {
192    configure.ld_archflags  ""
193    configure.args-delete   -DENABLE_f95=OFF
194    configure.args-append   -DCMAKE_Fortran_COMPILER=\"${configure.fc}\"
195    if {[variant_isset g95]} {
196        configure.args-append   -DCMAKE_Fortran_FLAGS=\"${configure.fflags} -fno-second-underscore\"
197    } else {
198        configure.args-append   -DCMAKE_Fortran_FLAGS=\"${configure.fflags}\"
199    }
200}
201
202if {[variant_isset g95]} {
203# Ad hoc fix to enable build of f95 binding by disabling some features
204    if {${os.major}<10} {
205        patchfiles-append       patch-sfstubsf95.f90.diff
206    }
207    configure.args-append   -DCMAKE_OSX_DEPLOYMENT_TARGET=\"\"
208}
209
210variant octave description {Add support for Octave} {
211    depends_lib-append       port:swig-octave
212    configure.args-delete   -DENABLE_octave=OFF
213    configure.args-append   -DENABLE_octave=ON
214    license-append  GPL-2+
215}
216
217variant java description {Add support for Java} {
218    depends_lib-append       port:swig-java
219    configure.args-delete   -DENABLE_java=OFF
220    configure.args-append   -DENABLE_java=ON
221}
222
223variant python25 conflicts python26 python27 description {Add support for python25} {
224    depends_lib-append      port:python25 \
225                            port:py25-numpy \
226                            port:swig-python
227    configure.args-delete   -DENABLE_python=OFF
228    configure.args-append   -DENABLE_python=ON \
229                            -DHAVE_NUMPY:BOOL=ON \
230                            -DPYTHON_INCLUDE_PATH=${prefix}/include/python2.5
231}
232variant python26 conflicts python25 python27 description {Add support for python26} {
233    depends_lib-append      port:python26 \
234                            port:py26-numpy \
235                            port:swig-python
236    configure.args-delete   -DENABLE_python=OFF
237    configure.args-append   -DENABLE_python=ON \
238                            -DHAVE_NUMPY:BOOL=ON \
239                            -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/2.6/Headers
240}
241variant python27 conflicts python25 python26 description {Add support for python27} {
242    depends_lib-append      port:python27 \
243                            port:py27-numpy \
244                            port:swig-python
245    configure.args-delete   -DENABLE_python=OFF
246    configure.args-append   -DENABLE_python=ON \
247                            -DHAVE_NUMPY:BOOL=ON \
248                            -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/2.7/Headers
249}
250
251variant py25_pyqt4 requires python25 description {Add support for pyQT4 using python25} {
252    # Can use either py*-pyqt4 or py*-pyqt4-devel.
253    depends_lib-append     path:share/py25-sip/PyQt4:py25-pyqt4
254    configure.args-delete   -DENABLE_pyqt4=OFF
255    configure.args-append   -DENABLE_pyqt4=ON
256}
257variant py26_pyqt4 requires python26 description {Add support for pyQT4 using python26} {
258    # Can use either py*-pyqt4 or py*-pyqt4-devel.
259    depends_lib-append     path:share/py26-sip/PyQt4:py26-pyqt4
260    configure.args-delete   -DENABLE_pyqt4=OFF
261    configure.args-append   -DENABLE_pyqt4=ON
262}
263variant py27_pyqt4 requires python27 description {Add support for pyQT4 using python27} {
264    # Can use either py*-pyqt4 or py*-pyqt4-devel.
265    depends_lib-append     path:share/py27-sip/PyQt4:py27-pyqt4
266    configure.args-delete   -DENABLE_pyqt4=OFF
267    configure.args-append   -DENABLE_pyqt4=ON
268}
269
270variant gdc description {Add support for D} {
271    depends_lib-append      port:gdc
272    configure.args-delete   -DENABLE_d=OFF
273    configure.args-append   -DENABLE_d=ON
274}
275
276variant aquaterm description {Add support for Aquaterm} {
277    depends_lib-append      port:aquaterm
278    configure.args-delete   -DPLD_aqt=OFF
279    configure.args-append   -DPLD_aqt=ON \
280                            -DAQT_FRAMEWORK=${frameworks_dir}/AquaTerm.framework
281}
282
283variant qt4 description {Add support for Qt4} {
284    depends_lib-append      bin:qmake:qt4-mac
285    configure.args-delete   -DENABLE_qt=OFF \
286                            -DPLD_bmpqt=OFF \
287                            -DPLD_jpgqt=OFF \
288                            -DPLD_pngqt=OFF \
289                            -DPLD_ppmqt=OFF \
290                            -DPLD_epsqt=OFF \
291                            -DPLD_pdfqt=OFF \
292                            -DPLD_tiffqt=OFF \
293                            -DPLD_qtwidget=OFF \
294                            -DPLD_svgqt=OFF \
295                            -DPLD_extqt=OFF \
296                            -DPLD_memqt=OFF \
297                            -DPLD_qtwidget=OFF
298    configure.args-append   -DENABLE_qt=ON \
299                            -DPLD_bmpqt=ON \
300                            -DPLD_jpgqt=ON \
301                            -DPLD_pngqt=ON \
302                            -DPLD_ppmqt=ON \
303                            -DPLD_epsqt=ON \
304                            -DPLD_pdfqt=ON \
305                            -DPLD_tiffqt=ON \
306                            -DPLD_qtwidget=ON \
307                            -DPLD_svgqt=ON \
308                            -DPLD_extqt=ON \
309                            -DPLD_memqt=ON \
310                            -DPLD_qtwidget=ON
311}
312
313variant wxwidgets description {Add support for wxWidgets} {
314    wxWidgets.use           wxWidgets-3.0
315    depends_lib-append      port:${wxWidgets.port}
316    configure.args-delete   -DPLD_wxwidgets=OFF \
317                            -DPLD_wxpng=OFF \
318                            -DENABLE_wxwidgets=OFF
319    configure.args-append   -DPLD_wxwidgets=ON \
320                            -DPLD_wxpng=ON \
321                            -DENABLE_wxwidgets=ON \
322                            -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets.wxconfig} \
323                            -DwxWidgets_wxrc_EXECUTABLE=${wxWidgets.wxrc} \
324                            -Dwxwidgets_LINK_FLAGS=-lplplotd
325}
326
327
328variant x11 {
329    depends_lib-append      path:lib/pkgconfig/pango.pc:pango \
330                            port:tk
331    configure.args-append   -DPLD_xcairo=ON  \
332                            -DPLD_xwin=ON \
333                            -DPLD_xfig=ON \
334                            -DPLD_tk=ON \
335                            -DENABLE_tk=ON \
336                            -DTK_INCLUDE_PATH=${prefix}/include \
337                            -DTK_LIBRARY=${prefix}/lib/libtk.dylib
338    configure.args-delete   -DPLD_xcairo=OFF \
339                            -DPLD_xwin=OFF \
340                            -DPLD_xfig=OFF \
341                            -DENABLE_tk=OFF
342}
343
344livecheck.type              regex
345livecheck.url               http://sourceforge.net/p/${name}/news/
346livecheck.regex             {PLplot-([0-9]+\.[0-9]+\.[0-9]+)}
Note: See TracBrowser for help on using the repository browser.