-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
meta.yaml
83 lines (75 loc) · 3.62 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
{% set name = "cccl" %}
{% set version = "2.6.1" %}
# CUDA C++ Core Libraries (CCCL) includes thrust, cub, and libcudacxx. These are header-only libraries.
# The cccl package ships CCCL headers in the environment's include directory for use in downstream recipes that require CCCL. It follows CCCL upstream versioning. Use this package to say, "I want a specific version of CCCL headers when building my package (which may be newer than the versions shipped in the latest CUDA Toolkit)."
# The cuda-cccl_{{ target_platform }} package (e.g. cuda-cccl_linux-64) ships CCCL headers in 'targets/.../include' that can be used by nvcc, the CUDA compiler. It follows CUDA Toolkit versioning. This package should only be a dependency of the cuda-cudart / cuda-nvcc packages that require CCCL to function. It is target-specific to allow for cross-compilation, as a dependency of cuda-nvcc.
# The cuda-cccl package is a metapackage that depends on cccl and cuda-cccl_{{ target_platform }} to ensure that versions are consistent. Use this package to say, "I want to build with the thrust headers that shipped with CUDA Toolkit X.Y" by adding dependencies on `cuda-cccl` and `cuda-version X.Y`.
package:
name: {{ name|lower }}
version: {{ version }}
source:
url: https://github.com/NVIDIA/cccl/archive/refs/tags/v{{ version }}.tar.gz
sha256: 993f483a3f8134bd719dc61651c0a0db17ad6007ee22e97f4ac4a3c310834004
build:
number: 0
skip: true # [osx]
skip: true # [cuda_compiler_version != "11.8"]
ignore_run_exports_from:
- {{ stdlib("c") }}
- {{ compiler("c") }}
- {{ compiler("cxx") }}
- {{ compiler("cuda") }}
requirements:
build:
- {{ stdlib("c") }}
- {{ compiler("c") }}
- {{ compiler("cxx") }}
- {{ compiler("cuda") }}
- cmake
- ninja
test:
requires:
- {{ stdlib("c") }}
- {{ compiler("c") }}
- {{ compiler("cxx") }}
- {{ compiler("cuda") }}
- cmake
- ninja
files:
- test_cmake
- verify-version.cmake # [linux]
commands:
# Check CMake and header directories
- test -d $PREFIX/lib/cmake/cccl # [linux]
- test -d $PREFIX/lib/cmake/thrust # [linux]
- test -d $PREFIX/lib/cmake/cub # [linux]
- test -d $PREFIX/lib/cmake/libcudacxx # [linux]
- test -d $PREFIX/include/thrust # [linux]
- test -d $PREFIX/include/cub # [linux]
- test -d $PREFIX/include/cuda # [linux]
- test -d $PREFIX/include/nv # [linux]
- if not exist %LIBRARY_LIB%\cmake\cccl exit 1 # [win]
- if not exist %LIBRARY_LIB%\cmake\thrust exit 1 # [win]
- if not exist %LIBRARY_LIB%\cmake\cub exit 1 # [win]
- if not exist %LIBRARY_LIB%\cmake\libcudacxx exit 1 # [win]
- if not exist %LIBRARY_INC%\thrust exit 1 # [win]
- if not exist %LIBRARY_INC%\cub exit 1 # [win]
- if not exist %LIBRARY_INC%\cuda exit 1 # [win]
- if not exist %LIBRARY_INC%\nv exit 1 # [win]
# Extract the CCCL version and compare to the declared version
- '[[ "$(cmake -DCCCL_VERSION_FILE="$PREFIX/lib/cmake/cccl/cccl-config-version.cmake" -P verify-version.cmake)" == "{{ version }}" ]] || exit 1' # [linux]
# Test CMake build
- pushd test_cmake
- cmake -G "Ninja" .
- cmake --build . --config Release
- popd
about:
home: https://github.com/NVIDIA/cccl
license_file: LICENSE
license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause AND BSL-1.0 AND NCSA AND MIT AND LicenseRef-NVIDIA-Software-License
license_url: https://github.com/NVIDIA/cccl/blob/main/LICENSE
summary: CUDA C++ Core Libraries
doc_url: https://nvidia.github.io/cccl/
extra:
recipe-maintainers:
- conda-forge/cuda