-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
meta.yaml
133 lines (126 loc) · 3.78 KB
/
meta.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{% set name = "pymeep" %}
{% set version = "1.29.0" %}
{% set sha256 = "68279f862cf9342a6e0f2023667d6a6ac7c1eafe46663705519772f312412194" %}
{% set buildnumber = 1 %}
# recipe-lint fails if mpi is undefined
{% set mpi = mpi or "nompi" %}
{% if mpi == "nompi" %}
# prioritize nompi via build number
{% set buildnumber = buildnumber + 100 %}
{% set mpi_prefix = "nompi" %}
{% else %}
{% set mpi_prefix = "mpi_" + mpi %}
{% endif %}
package:
name: pymeep
version: {{ version }}
source:
fn: meep-{{ version }}.tar.gz
url: https://github.com/NanoComp/meep/releases/download/v{{ version }}/meep-{{ version }}.tar.gz
sha256: {{ sha256 }}
build:
number: {{ buildnumber }}
skip: true # [win or py<36 or python_impl == "pypy"]
outputs:
# Define the base package for pymeep.
- name: pymeep
# Add build string so packages can depend on mpi or nompi variants of dependencies:
# `pymeep * mpi_mpich_*` for mpich
# `pymeep * mpi_*` for any mpi
# `pymeep * nompi_*` for no mpi
script: pymeep_build.sh
build:
string: {{ mpi_prefix }}_py{{ py }}h{{ PKG_HASH }}_{{ buildnumber }}
requirements:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- {{ compiler('fortran') }}
- {{ stdlib("c") }}
host:
- make
- libblas
- libcblas
- liblapack
- libgdsii >=0.21
- {{ mpi }} # [mpi != 'nompi']
- mpi4py >=3.0 # [mpi != 'nompi']
- python
- libctl >=4.5.0
- harminv >=1.4.1
- mpb >=1.11 {{ mpi_prefix }}_*
# We need to list hdf5 twice to get version pinning from
# conda_build_config.yaml, (which falls back to the one from conda-forge,)
# and build pinning from {{ mpi_prefix }}
- hdf5
- hdf5 * {{ mpi_prefix }}_*
- fftw * {{ mpi_prefix }}_*
- numpy
- gsl
run:
# more or less a copy of the specs above
- libblas
- libcblas
- liblapack
- libgdsii >=0.21
- {{ mpi }} # [mpi != 'nompi']
- mpi4py >=3.0 # [mpi != 'nompi']
- python
- libctl >=4.5.0
- harminv >=1.4.1
- mpb >=1.11 {{ mpi_prefix }}_*
- hdf5 * {{ mpi_prefix }}_*
- fftw * {{ mpi_prefix }}_*
- {{ pin_compatible('numpy') }}
- h5py * {{ mpi_prefix }}_*
- zlib
- libopenblas
- _openmp_mutex # [linux]
- matplotlib-base
- scipy
test:
requires:
- parallel
- matplotlib-base
- autograd
- scipy
- ffmpeg
imports:
- meep
- meep.mpb
script: pymeep_run_test.sh
source_files:
- tests/cyl-ellipsoid-eps-ref.h5
- python/tests/*.py
- python/tests/data/*
# Define a metapackage with extras needed for the tutorials/tests.
- name: pymeep-extras
# add build string so packages can depend on mpi or nompi variants
# dependencies:
# `pymeep * mpi_mpich_*` for mpich
# `pymeep * mpi_*` for any mpi
# `pymeep * nompi_*` for no mpi
build:
string: {{ mpi_prefix }}_py{{ py }}h{{ PKG_HASH }}_{{ buildnumber }}
requirements:
run:
- {{ pin_subpackage("pymeep", exact=True) }}
# Extras typically used at runtime
- autograd
- ffmpeg
- h5utils * {{ mpi_prefix }}_*
# - mayavi ## disabled until conda-forge/mayavi-feedstock#56 is merged
test:
imports:
- meep
- meep.mpb
about:
home: https://github.com/NanoComp/meep
license: GPL-2.0-or-later
license_file: LICENSE
summary: Free finite-difference time-domain (FDTD) software for electromagnetic simulations
doc_url: https://meep.readthedocs.io
dev_url: https://github.com/NanoComp/meep
extra:
recipe-maintainers:
- oskooi