CMP0104
Добавлен в версии 3.18.
Инициализировать CMAKE_CUDA_ARCHITECTURES, когда CMAKE_CUDA_COMPILER_ID равно NVIDIA. Выдать ошибку, если CUDA_ARCHITECTURES пусто.
CMAKE_CUDA_ARCHITECTURES, представленный в CMake 3.18, используется для инициализации CUDA_ARCHITECTURES, который передаёт правильные флаги генерации кода компилятору CUDA.
Ранее пользователи должны были вручную указывать флаги генерации кода. Этот политический параметр предназначен для обратной совместимости со случаем ручного указания флагов генерации кода.
Поведение OLD для этой политики заключается в том, чтобы не инициализировать CMAKE_CUDA_ARCHITECTURES, когда CMAKE_CUDA_COMPILER_ID равно NVIDIA. Разрешено пустое значение CUDA_ARCHITECTURES.
Поведение NEW этой политики заключается в инициализации CMAKE_CUDA_ARCHITECTURES, когда CMAKE_CUDA_COMPILER_ID равно NVIDIA и выдать ошибку, если CUDA_ARCHITECTURES пусто во время генерации.
Если CUDA_ARCHITECTURES установлено в ложное значение, флаги архитектуры не передаются компилятору. Это предназначено для поддержки упаковщиков и редких случаев, когда требуется полный контроль над передаваемыми флагами.
Этот политический параметр был введён в CMake версии 3.18. Он может быть установлен с помощью cmake_policy() или cmake_minimum_required(). Если он не установлен, CMake предупреждает и использует поведение OLD.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущей версии CMake.
Примеры
set_target_properties(tgt PROPERTIES CUDA_ARCHITECTURES "35;50;72")
Генерирует код для реальных и виртуальных архитектур 30, 50 и 72.
set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
Генерирует код для реальной архитектуры 70 и виртуальной архитектуры 72.
set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
CMake не будет передавать никаких флагов архитектуры компилятору.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/policy/CMP0104.html