Skip to content

Update CUDA dependency management after CMP0146 #1824

@ldrumm

Description

@ldrumm
$ cmake --help-policy CMP0146
CMP0146
-------

.. versionadded:: 3.27

The ``FindCUDA`` module is removed.

The ``FindCUDA`` module has been deprecated since CMake 3.10.
CMake 3.27 and above prefer to not provide the module.
This policy provides compatibility for projects that have not been
ported away from it.

Projects using the ``FindCUDA`` module should be updated to use
CMake's first-class ``CUDA`` language support.  List ``CUDA`` among the
languages named in the top-level call to the ``project()`` command,
or call the ``enable_language()`` command with ``CUDA``.
Then one can add CUDA (``.cu``) sources directly to targets,
similar to other languages.

The ``OLD`` behavior of this policy is for ``find_package(CUDA)`` to
load the deprecated module.  The ``NEW`` behavior is for uses of the
module to fail as if it does not exist.

This policy was introduced in CMake version 3.27.
It may be set by ``cmake_policy()`` or ``cmake_minimum_required()``.
If it is not set, CMake warns, and uses ``OLD`` behavior.

.. note::
  The ``OLD`` behavior of a policy is
  ``deprecated by definition``
  and may be removed in a future version of CMake.

We should work out whether we should simply set the policy to OLD, or upgrade the CUDA adaptor to use the new cmake functionality

Metadata

Metadata

Assignees

Labels

buildbuild system and configurationcudaCUDA adapter specific issues

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions