mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-19 04:40:39 -05:00
Simplifies CUDA target architecture handling. Required for Clang support as Clang doesn't automatically select a supported architecture. We detect a supported architecture during compiler identification and set CMAKE_CUDA_ARCHITECTURES to it. Introduces CMP0104 for backwards compatibility with manually setting code generation flags with NVCC. Implements #17963.
32 lines
1.3 KiB
ReStructuredText
32 lines
1.3 KiB
ReStructuredText
CMP0104
|
|
-------
|
|
|
|
Initialize :variable:`CMAKE_CUDA_ARCHITECTURES` when
|
|
:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
|
|
Raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty.
|
|
|
|
:variable:`CMAKE_CUDA_ARCHITECTURES` introduced in CMake 3.18 is used to
|
|
initialize :prop_tgt:`CUDA_ARCHITECTURES`, which passes correct code generation
|
|
flags to the CUDA compiler.
|
|
|
|
Previous to this users had to manually specify the code generation flags. This
|
|
policy is for backwards compatibility with manually specifying code generation
|
|
flags.
|
|
|
|
The ``OLD`` behavior for this policy is to not initialize
|
|
:variable:`CMAKE_CUDA_ARCHITECTURES` when
|
|
:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
|
|
Empty :prop_tgt:`CUDA_ARCHITECTURES` is allowed.
|
|
|
|
The ``NEW`` behavior of this policy is to initialize
|
|
:variable:`CMAKE_CUDA_ARCHITECTURES` when
|
|
:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``
|
|
and raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty during generation.
|
|
|
|
This policy was introduced in CMake version 3.18. CMake version
|
|
|release| warns when the policy is not set and uses ``OLD`` behavior.
|
|
Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
|
|
explicitly.
|
|
|
|
.. include:: DEPRECATED.txt
|