source: trunk/dports/science/Gyoto/Portfile

Last change on this file was 154020, checked in by thibaut@…, 13 months ago

Gyoto: fix py??-gyoto post-destroot when gmake is not available

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.4 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 154020 2016-10-18 12:04:07Z ryandesign@macports.org $
3
4PortSystem          1.0
5PortGroup           github 1.0
6PortGroup           active_variants 1.1
7PortGroup           compilers 1.0
8
9github.setup        gyoto Gyoto 1.1.0
10revision            2
11license             GPL-3+
12categories          science yorick
13platforms           darwin
14maintainers         thibaut openmaintainer
15description         General relativistic geodesic integration and ray-tracing
16long_description    Gyoto aims at providing a framework for computing orbits \
17                    and ray-traced images in General relativity. It consists \
18                    in a C++ shared library (libgyoto), utility programs \
19                    (gyoto, gyotoy), and a plug-in for the Yorick programming \
20                    language. Gyoto can be extended with plug-ins.
21homepage            http://gyoto.obspm.fr
22
23checksums           rmd160  28458c6dc0827b2f859f8cb05906f36835775b09 \
24                    sha256  dfa04cc9ccffc2b20c51784af097b574c844837440d4563d10b3f45e5a4798bf
25
26depends_build       port:LORENE \
27                    port:pkgconfig
28
29depends_lib         port:cfitsio \
30                    port:xercesc3 \
31                    port:udunits2 \
32                    path:bin/yorick:yorick
33
34depends_run         port:yorick-yutils \
35                    port:yorick-gy
36
37# yorick is not universal
38universal_variant   no
39
40configure.args      --with-yorick=${prefix}/bin/yorick \
41                    --with-lorene=${prefix}/lib/lorene \
42                    --with-xerces \
43                    --disable-doc \
44                    --with-cfitsio \
45                    --with-udunits-inc=${prefix}/include/udunits2/ \
46                    --with-udunits-lib=-L${prefix}/lib/ \
47                    --enable-release \
48                    --without-mpi \
49                    --without-python
50
51build.args-append   Y_CFLAGS="${configure.cxxflags}" Y_CPPFLAGS="${configure.cppflags}" CC="${configure.cc}" COPT_DEFAULT="" Y_LDFLAGS="${configure.ldflags}"
52
53
54test.target         check check-lorene
55test.run            yes
56
57compilers.setup     -gcc -dragonegg
58compilers.enforce_c lorene
59
60if {![catch {set result [active_variants boost openmpi {}]}]} {
61  if {$result} {
62    default_variants +openmpi
63  } else {
64      if {[active_variants boost mpich {}]} {
65          default_variants +mpich
66      }
67  }
68}
69
70foreach nodot [list 27 33 34 35] wdot [list 2.7 3.3 3.4 3.5] {
71    subport py${nodot}-gyoto {
72        depends_build-append port:doxygen port:swig-python
73        depends_lib-append   port:python${nodot} port:py${nodot}-numpy \
74                             port:Gyoto
75        compilers.enforce_c  Gyoto
76        categories    python science
77        configure.args-delete --without-python
78        configure.args-append PYTHON=${prefix}/bin/python${wdot}
79        use_parallel_build no
80        build.target  python plugins/python
81        destroot.cmd  PYTHONPATH=${frameworks_dir}/Python.framework/Versions/${wdot}:\$PYHTONPATH make
82        destroot.args -C python INSTALL_DATA=true prefix=${frameworks_dir}/Python.framework/Versions/${wdot}
83        post-destroot {
84            system "cd ${worksrcpath}/plugins/python && ${build.cmd} install DESTDIR=${destroot}"
85            xinstall -d ${destroot}/${prefix}/share/doc/${subport}/examples
86            xinstall {*}[glob ${worksrcpath}/plugins/python/doc/examples/*] \
87                ${destroot}/${prefix}/share/doc/${subport}/examples/
88            xinstall {*}[glob ${worksrcpath}/python/example*.py] \
89                ${destroot}/${prefix}/share/doc/${subport}/examples/
90        }
91        test.run no
92    }
93}
94
95subport Gyoto {
96    post-destroot {
97        xinstall -W ${worksrcpath}/python \
98            gyoto.i gyoto_std.i gyoto_lorene.i numpy.i \
99            ${destroot}/${prefix}/include/Gyoto/
100        xinstall -d ${destroot}/${prefix}/share/doc/${subport}/examples
101        xinstall {*}[glob ${worksrcpath}/doc/examples/*] \
102            ${destroot}/${prefix}/share/doc/${subport}/examples/
103    }
104}
105
106if {[string match libc++ ${configure.cxx_stdlib}]} {
107
108    depends_lib-append port:boost
109    compilers.enforce_c boost
110
111    variant openmpi conflicts mpich \
112        description {Add MPI parallelization using OpenMPI} {
113        set c_variant [c_variant_name]
114        if {${c_variant} == ""} {
115            set mpi_port openmpi
116            set mpi_suffix mp
117        } {
118            set mpi_port openmpi-${c_variant}
119            set mpi_suffix ${c_variant}
120        }
121        require_active_variants boost openmpi {}
122            depends_lib-append port:${mpi_port}
123        configure.args-delete --without-mpi
124        configure.args-append --with-mpi \
125            MPICC="mpicc-openmpi-${mpi_suffix}" \
126            MPICXX="mpicxx-openmpi-${mpi_suffix}" \
127            CC="mpicc-openmpi-${mpi_suffix}" \
128            CXX="mpicxx-openmpi-${mpi_suffix}"
129        build.args-delete CC="${configure.cc}"
130        build.args-append CC="mpicc-openmpi-${mpi_suffix}"
131        notes "
132+-- Gyoto Usage note ------------------------------------------------------
133| For multi-processing, wrap gyoto in mpirun-openmpi-${mpi_suffix}, e.g.:
134|   $ mpirun-openmpi-${mpi_suffix} gyoto -P4 in.xml out.fits
135+--------------------------------------------------------------------------
136"   
137    }
138
139    variant mpich conflicts openmpi \
140        description {Add MPI parallelization using MPICH} {
141        set c_variant [c_variant_name]
142        if {${c_variant} == ""} {
143            set mpi_port mpich
144            set mpi_suffix mp
145        } {
146            set mpi_port mpich-${c_variant}
147            set mpi_suffix ${c_variant}
148        }
149        require_active_variants boost mpich {}
150        depends_lib-append port:${mpi_port}
151        configure.args-delete --without-mpi
152        configure.args-append --with-mpi \
153            MPICC="mpicc-mpich-${mpi_suffix}" \
154            MPICXX="mpicxx-mpich-${mpi_suffix}" \
155            CC="mpicc-mpich-${mpi_suffix}" \
156            CXX="mpicxx-mpich-${mpi_suffix}"
157        build.args-delete CC="${configure.cc}"
158        build.args-append CC="mpicc-mpich-${mpi_suffix}"
159        notes "
160+-- Gyoto Usage note ------------------------------------------------------
161| For multi-processing, wrap gyoto in mpirun-mpich-${mpi_suffix}, e.g.:
162|   $ mpirun-mpich-${mpi_suffix} gyoto -P4 in.xml out.fits
163+--------------------------------------------------------------------------
164"   
165    }
166
167} else {
168    configure.args-append --disable-c++11
169}
Note: See TracBrowser for help on using the repository browser.