-
-
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.5.0" %}
# 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: dc548c33178f4bed1d63dfc6b3a39aa3bf6da22a2b46305ec86b9938222634d7
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