package:
   name: numba
   version: {{ GIT_DESCRIBE_TAG }}

source:
   path: ../..

build:
  number: {{ GIT_DESCRIBE_NUMBER|int }}
  string: np{{ NPY_VER }}py{{ PY_VER }}h{{ PKG_HASH }}_{{GIT_DESCRIBE_HASH}}_{{ GIT_DESCRIBE_NUMBER }}
  entry_points:
    - numba = numba.misc.numba_entry:main
  script_env:
    - PY_VCRUNTIME_REDIST
  missing_dso_whitelist: # [osx]
    # optional dependency: required only when omp is chosen as the backend for
    # the threading layer
    - lib/libiomp5.dylib # [osx]
  ignore_run_exports:
    # tbb-devel triggers hard dependency on tbb, this is not the case.
    - tbb     # [not (aarch64 or ppc64le)]

requirements:
  # build and run dependencies are duplicated to avoid setuptools issues
  # when we also set install_requires in setup.py
  build:
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}
    # OpenMP headers from llvm needed for OSX.
    - llvm-openmp={{ c_compiler_version }}              # [osx]
  host:
    - python
    - numpy
    - setuptools
    # On channel https://anaconda.org/numba/
    - llvmlite >=0.47.0dev0,<0.47
    # TBB devel version is to match TBB libs.
    # NOTE: ppc64le and aarch64 are pending testing so excluded for now.
    - tbb-devel >=2021.6       # [not (aarch64 or ppc64le)]
  run:
    - python >=3.10
    - numpy >=1.22.3
    # On channel https://anaconda.org/numba/
    - llvmlite >=0.47.0dev0,<0.47
  run_constrained:
    # If TBB is present it must be at least version 2021.6
    - tbb >=2021.6    # [not (aarch64 or ppc64le)]
    # avoid confusion from openblas bugs
    - libopenblas !=0.3.6      # [x86_64]
    # 0.3.17 buggy on M1 silicon
    # https://github.com/xianyi/OpenBLAS/blob/v0.3.20/Changelog.txt#L118
    # https://github.com/numba/numba/issues/7822#issuecomment-1063229855
    # Exclude 0.3.20 too
    # https://github.com/numba/numba/issues/8096
    - libopenblas >=0.3.18, !=0.3.20     # [arm64]
    # CUDA 11.2 or later is required for CUDA support
    - cuda-version >=11.2
    - cudatoolkit >=11.2
    # scipy 1.0 or later
    - scipy >=1.0
    # CUDA Python 11.6 or later
    - cuda-python >=11.6

test:
  requires:
    - jinja2
    # Required to test optional Numba features
    - cffi
    - scipy
    - ipython                  # [not aarch64]
    # for pycc
    - setuptools
    - pyyaml
    - pygments
    - intel-cmplr-lib-rt       # [linux and x86_64]
    - tbb >=2021.6             # [not (aarch64 or ppc64le)]
    - llvm-openmp              # [osx]
    # This is for driving gdb tests
    - pexpect                  # [linux64]
    # For testing ipython. At the time of writing ipykernel was not available
    # for Python 3.12.
    - ipykernel                # [not py==312]
    # For memory monitoring
    - psutil
    # Need these for AOT. Do not init msvc as it may not be present
    - {{ compiler('c') }}      # [not (win or aarch64)]
    - {{ compiler('cxx') }}    # [not (win or aarch64)]

about:
  home: https://numba.pydata.org/
  license: BSD
  license_file: LICENSE
  summary: a just-in-time Python function compiler based on LLVM
