Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEA] provide rapids_cpm_libcudacxx #97

Closed
robertmaynard opened this issue Oct 14, 2021 · 0 comments · Fixed by #111
Closed

[FEA] provide rapids_cpm_libcudacxx #97

robertmaynard opened this issue Oct 14, 2021 · 0 comments · Fixed by #111
Assignees
Labels
1 - On Deck To be worked on next feature request New feature or request

Comments

@robertmaynard
Copy link
Contributor

Is your feature request related to a problem? Please describe.

rapids-cmake should provide a rapids_cpm_libcudacxx function that allows for a unified version of libcudacxx across all rapids-cmake projects.

This is important as more RAPIDS projects start using newer versions of libcudacxx compared to the one provided by the CUDA Toolkit.

Describe the solution you'd like

rapids_cpm_libcudacxx would provide a consistent API to find an existing install of libcudacxx or download it from source.

Since currently libcudacxx doesn't provide a way to install just the headers, or a libcudacxx-config.cmake to allow find_package(libcudacxx) to work rapids_cpm_libcudacxx will need to do the following:

  • Specify custom install rules for libcudacxx
  • Generate a build directory libcudacxx-config.cmake
  • Generate an install directory libcudacxx-config.cmake

Like thrust, libcudacxx is provided as part of the CUDA Toolkit and therefore the issues outlined in #95 also apply. Primarily the generated libcudacxx-config.cmake needs to ensure that the include paths are brought in as non-imported.

@robertmaynard robertmaynard added feature request New feature or request 1 - On Deck To be worked on next labels Oct 14, 2021
@robertmaynard robertmaynard self-assigned this Oct 15, 2021
robertmaynard added a commit to robertmaynard/rapids-cmake that referenced this issue Oct 26, 2021
Provides an unified version of libcudacxx for all rapids-cmake based projects.

Since the libcudacxx is focused on building the project, we can't rely
on its install rules. Instead we manually produce install rules and a
libcudacxx-config.cmake to allow find_package(libcudacxx).

Like Thrust we also make sure the includes are namespaced and
always marked as user include so that consumers use this version
of libcudacxx instead of the one provided in the system cuda toolkit.

Fixes rapidsai#97
robertmaynard added a commit to robertmaynard/rapids-cmake that referenced this issue Oct 26, 2021
Provides an unified version of libcudacxx for all rapids-cmake based projects.

Since the libcudacxx is focused on building the project, we can't rely
on its install rules. Instead we manually produce install rules and a
libcudacxx-config.cmake to allow find_package(libcudacxx).

Like Thrust we also make sure the includes are namespaced and
always marked as user include so that consumers use this version
of libcudacxx instead of the one provided in the system cuda toolkit.

Fixes rapidsai#97
@rapids-bot rapids-bot bot closed this as completed in #111 Oct 28, 2021
rapids-bot bot pushed a commit that referenced this issue Oct 28, 2021
Provides an unified version of libcudacxx for all rapids-cmake based projects.

Since the libcudacxx is focused on building the project, we can't rely
on its install rules. Instead we manually produce install rules and a
libcudacxx-config.cmake to allow find_package(libcudacxx).

Like Thrust we also make sure the includes are namespaced and
always marked as user include so that consumers use this version
of libcudacxx instead of the one provided in the system cuda toolkit.

Fixes #97

Authors:
  - Robert Maynard (https://github.com/robertmaynard)

Approvers: None

URL: #111
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 - On Deck To be worked on next feature request New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant