[121560] trunk/dports/science/magicspp

takeshi at macports.org takeshi at macports.org
Mon Jun 30 00:28:20 PDT 2014


Revision: 121560
          https://trac.macports.org/changeset/121560
Author:   takeshi at macports.org
Date:     2014-06-30 00:28:20 -0700 (Mon, 30 Jun 2014)
Log Message:
-----------
magicspp: updated for 2.22.6. build with cmake. enabled build on Mavericks, closing #42958

Modified Paths:
--------------
    trunk/dports/science/magicspp/Portfile

Removed Paths:
-------------
    trunk/dports/science/magicspp/files/

Modified: trunk/dports/science/magicspp/Portfile
===================================================================
--- trunk/dports/science/magicspp/Portfile	2014-06-30 01:58:17 UTC (rev 121559)
+++ trunk/dports/science/magicspp/Portfile	2014-06-30 07:28:20 UTC (rev 121560)
@@ -2,10 +2,14 @@
 # $Id$
 
 PortSystem          1.0
+PortGroup cmake     1.0
+PortGroup compilers 1.0
 
+compilers.choose    fc
+compilers.setup     require_fortran -g95
+
 name                magicspp
-version             2.18.15
-revision            6
+version             2.22.6
 platforms           darwin
 maintainers         takeshi
 license             Apache-2
@@ -13,10 +17,10 @@
 description         ECMWF's Meteorological plotting software
 homepage            http://software.ecmwf.int/wiki/display/MAGP/Magics
 master_sites        https://software.ecmwf.int/wiki/download/attachments/3473464/
-distname            Magics-${version}
-checksums           md5     0ca95215415fba244ca49fb51d0b2342 \
-                    sha1    340683acbd80370a0b9c2f1ec22cf7201abb29db \
-                    rmd160  aa0bb635b50cfd8cc7ee102696a183fd8f81db7f
+distname            Magics-${version}-Source
+checksums           md5     99ac8a9b50861f4632ca3b96099dc14b \
+                    sha1    c61311413c396f74f04eecda3b51293cdfd9df48 \
+                    rmd160  847e8a16fcf17c83410e82bdfe99dafc62d85c08
 long_description \
     Magics++ is the latest generation of the ECMWF's Meteorological plotting \
     software MAGICS (Meteorological Applications Graphics Integrated Colour System) \
@@ -29,6 +33,8 @@
 
 fetch.ignore_sslcert    yes
 
+depends_build       port:cmake \
+                    port:flex
 depends_lib         port:emos \
                     port:grib_api \
                     port:netcdf-cxx \
@@ -42,117 +48,118 @@
                     port:boost \
                     port:proj47 \
                     port:swig-python
+require_active_variants cairo x11
 
-platform darwin {
-    if {${os.major} >= 13} {
-        depends_lib
-        depends_run
-        pre-fetch {
-            ui_error "$name does not build on Mavericks or later."
-            error "unsupported platform"
-        }
-    }
-}
-
 use_parallel_build  no
 universal_variant   no
+
+if {![fortran_variant_isset]} {
+    default_variants-append +gcc48
+}
 if {![variant_isset python25] && ![variant_isset python26]} {
     default_variants-append +python27
 }
 
-patchfiles          patch-src-Makefile.in.diff \
-                    patch-configure.diff
-post-patch {
-    reinplace "s|pdir = \$(libdir)|pdir = ${frameworks_dir}/Python.framework/Versions/\$(PYTHON_VERSION)/lib|" \
-        ${worksrcpath}/python/Magics/Makefile.in
+configure.cmd           cmake
+configure.dir           ${workpath}/build
+configure.args-append   -DBOOST_ROOT=${prefix} \
+                        -DCMAKE_Fortran_COMPILER=${configure.fc} \
+                        -DENABLE_BUFR=ON \
+                        -DENABLE_CAIRO=ON \
+                        -DENABLE_FORTRAN=OFF \
+                        -DENABLE_GRIB=ON \
+                        -DENABLE_LARGE_FILE_SUPPORT=ON \
+                        -DENABLE_NETCDF=ON \
+                        -DENABLE_PYTHON=ON \
+                        -DEXPAT_INCLUDE_DIR=${prefix}/include \
+                        -DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib \
+                        -DFLEX_EXECUTABLE=${prefix}/bin/flex \
+                        -DFLEX_INCLUDE_DIR=${prefix}/include \
+                        -DFL_LIBRARY=${prefix}/lib/libfl.a \
+                        -DGRIB_API_PATH=${prefix} \
+                        -DGRIB_API_INCLUDE_DIR=${prefix}/include \
+                        -DGRIB_API_INFO=${prefix}/bin/grib_info \
+                        -DGRIB_API_JPG=ON \
+                        -DGRIB_API_LIBRARY=${prefix}/lib/libgrib_api.dylib \
+                        -DGRIB_API_PNG=ON \
+                        -DGS_LIBRARIES=${prefix}/lib/libgs.dylib \
+                        -DHDF5_CXX_COMPILER_EXECUTABLE=${prefix}/bin/h5c++ \
+                        -DHDF5_CXX_INCLUDE_DIR=${prefix}/include \
+                        -DHDF5_C_COMPILER_EXECUTABLE=${prefix}/bin/h5cc \
+                        -DHDF5_C_INCLUDE_DIR=${prefix}/include \
+                        -DHDF5_DIFF_EXECUTABLE=${prefix}/bin/h5diff \
+                        -DHDF5_hdf5_cpp_LIBRARY_RELEASE=${prefix}/lib/libhdf5.dylib \
+                        -DHDF5_hdf5_hl_LIBRARY_RELEASE=${prefix}/lib/libhdf5_hl.dylib \
+                        -DJASPER_INCLUDE_DIR=${prefix}/include \
+                        -DJASPER_LIBRARY_RELEASE=${prefix}/lib/libjasper.dylib \
+                        -DJPEG_INCLUDE_DIR=${prefix}/include \
+                        -DJPEG_LIBRARY=${prefix}/lib/libjpeg.dylib \
+                        -DNETCDF_CONFIG_EXECUTABLE=${prefix}/bin/nc-config \
+                        -DNETCDF_netcdf.h_INCLUDE_DIR=${prefix}/include \
+                        -DNETCDF_netcdf_LIBRARY_RELEASE=${prefix}/lib/libnetcdf.dylib \
+                        -DNETCDF_netcdf_c++_LIBRARY_RELEASE=${prefix}/lib/libnetcdf_c++.dylib \
+                        -DNETCDF_netcdfcpp.h_INCLUDE_DIR=${prefix}/include \
+                        -DOPENJPEG_INCLUDE_DIR=${prefix}/include \
+                        -DOPENJPEG_LIBRARY=${prefix}/lib/libopenjpeg.dylib \
+                        -DPERL_EXECUTABLE=${prefix}/bin/perl \
+                        -DPKG_CONFIG_EXECUTABLE=${prefix}/bin/pkg-config \
+                        -DPNG_LIBRARY_RELEASE=${prefix}/lib/libpng.dylib \
+                        -DPNG_PNG_INCLUDE_DIR=${prefix}/include \
+                        -DPROJ4_INCLUDE_DIR=${prefix}/include \
+                        -DPROJ4_LIBRARY=${prefix}/lib/libproj.dylib \
+                        -DSWIG_EXECUTABLE=${prefix}/bin/swig \
+                        -DZLIB_INCLUDE_DIR=${prefix}/include \
+                        -DZLIB_LIBRARY=${prefix}/lib/libz.dylib
+configure.post_args     ../${distname}
+post-configure {
+    reinplace "s|Magics-${version}-Source/python/Magics/Magics.i$|build/python/Magics/Magics.i|g" ${workpath}/build/python/Magics/CMakeFiles/_Magics.dir/build.make
+    reinplace "s|-lcairo|-lcairo -lX11|" ${workpath}/build/src/CMakeFiles/MagPlusShared.dir/link.txt
+    foreach d {bufr grib} {
+        reinplace "s|${configure.fc}|${configure.cxx}|" ${workpath}/build/test/CMakeFiles/${d}_fortran.dir/link.txt
+    reinplace "s|-I/opt/local/include||g" ${workpath}/build/src/magics.pc
+    }
 }
 
-configure.libs-append       -lemosR64 -lX11
-configure.cppflags-append   -I${prefix}/include/freetype2
-configure.args-append       --disable-dependency-tracking \
-                            --disable-qt \
-                            --with-gd=${prefix} \
-                            --enable-cairo \
-                            --enable-bufr \
-                            --disable-python \
-                            --enable-proj4 \
-                            --with-proj4=${prefix}/lib/proj47 \
-                            --with-grib-api=${prefix} \
-                            --with-netcdf=${prefix} \
-                            --with-emos-libraries=${prefix}/lib \
-                            --with-gs-font-dir=${prefix}/share/ghostscript/fonts \
-                            --with-boost \
-                            --with-boost-libdir=${prefix}/lib
+build.dir               ${workpath}/build
 
-# fatal error: 'bits/stream_iterator.h' file not found
-compiler.blacklist *clang*
-
-set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
-set default_fortran_variant +gcc48
-
-foreach ver ${gcc_versions} {
-    set ver_no_dot [join [split ${ver} "."] ""]
-
-    set variant_line {variant gcc${ver_no_dot} description "build with gfortran from gcc${ver_no_dot}"}
-
-    foreach over ${gcc_versions} {
-        if {${ver} == ${over}} {
-            continue
-        }
-
-        set over_no_dot [join [split ${over} "."] ""]
-        append variant_line " conflicts gcc${over_no_dot}"
+post-destroot {
+    file rename ${destroot}${prefix}/share/templates ${destroot}${prefix}/share/magics
+    if {[variant_isset python25] || [variant_isset python26] || [variant_isset python27]} {
+        file mkdir ${destroot}${frameworks_dir}/Python.framework/Versions/${pyver}/lib/python${pyver}/site-packages
+        file rename ${destroot}${prefix}/lib/python${pyver}/site-packages/Magics ${destroot}${frameworks_dir}/Python.framework/Versions/${pyver}/lib/python${pyver}/site-packages
     }
-    append variant_line { {}}
-
-    eval $variant_line
-
-    if {[variant_isset gcc${ver_no_dot}]} {
-        if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
-            set default_fortran_variant ""
-        }
-    }
 }
 
-if {${default_fortran_variant} != ""} {
-    default_variants-append "${default_fortran_variant}"
+if {[fortran_variant_isset]} {
+    configure.args-delete   -DENABLE_FORTRAN=OFF
+    configure.args-append   -DGFORTRAN_EXECUTABLE=${configure.fc} \
+                            -DGFORTRAN_LIB=${prefix}/lib/[fortran_variant_name]/libgfortran.dylib
 }
 
-foreach ver ${gcc_versions} {
-    set ver_no_dot [join [split ${ver} "."] ""]
-
-    if {[variant_isset gcc${ver_no_dot}]} {
-        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
-        depends_build-append port:gcc${ver_no_dot}
-
-        configure.fc  ${prefix}/bin/gfortran-mp-${ver}
-        configure.f77 ${prefix}/bin/gfortran-mp-${ver}
-        configure.f90 ${prefix}/bin/gfortran-mp-${ver}
-
-        configure.args-append --with-fortran-libraries=${prefix}/lib/gcc${ver_no_dot}
-    }
+if {[variant_isset python25]} {
+    set pyver 2.5
 }
+if {[variant_isset python26]} {
+    set pyver 2.6
+}
+if {[variant_isset python27]} {
+    set pyver 2.7
+}
+if {[variant_isset python25] || [variant_isset python26] || [variant_isset python27]} {
+    configure.args-delete   -DENABLE_PYTHON=OFF
+    configure.args-append   -DENABLE_PYTHON=ON
+    configure.args-append   -DPYTHON_EXECUTABLE=${prefix}/bin/python${pyver} \
+                            -DPYTHON_CONFIG=${prefix}/bin/python${pyver}-config
+}
 
 variant python25 description {Add support for python25} {
     depends_lib-append      port:py25-numpy
-    configure.args-delete   --disable-python
-    configure.args-append   --enable-python
-    configure.env-append    PYTHON=${prefix}/bin/python2.5 \
-                            PYTHON_VERSION=2.5
 }
 
 variant python26 description {Add support for python26} {
     depends_lib-append      port:py26-numpy
-    configure.args-delete   --disable-python
-    configure.args-append   --enable-python
-    configure.env-append    PYTHON=${prefix}/bin/python2.6 \
-                            PYTHON_VERSION=2.6
 }
 
 variant python27 description {Add support for python27} {
     depends_lib-append      port:py27-numpy
-    configure.args-delete   --disable-python
-    configure.args-append   --enable-python
-    configure.env-append    PYTHON=${prefix}/bin/python2.7 \
-                            PYTHON_VERSION=2.7
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140630/c021d72e/attachment.html>


More information about the macports-changes mailing list