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

Last change on this file since 113329 was 113329, checked in by mojca@…, 6 years ago

revbump the wxWidgets dependents

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