Files
CMake/Modules/Internal/CMakeCUDAArchitecturesValidate.cmake
Brad King b3a1f17567 CUDA: Factor out helper to validate CMAKE_CUDA_ARCHITECTURES
Prepare to use it for other languages.
2023-09-21 15:34:28 -04:00

20 lines
910 B
CMake

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
function(cmake_cuda_architectures_validate lang)
if(DEFINED CMAKE_${lang}_ARCHITECTURES)
if(CMAKE_${lang}_ARCHITECTURES STREQUAL "")
message(FATAL_ERROR "CMAKE_${lang}_ARCHITECTURES must be non-empty if set.")
elseif(CMAKE_${lang}_ARCHITECTURES AND NOT CMAKE_${lang}_ARCHITECTURES MATCHES "^([0-9]+a?(-real|-virtual)?(;[0-9]+a?(-real|-virtual)?|;)*|all|all-major|native)$")
message(FATAL_ERROR
"CMAKE_${lang}_ARCHITECTURES:\n"
" ${CMAKE_${lang}_ARCHITECTURES}\n"
"is not one of the following:\n"
" * a semicolon-separated list of integers, each optionally\n"
" followed by '-real' or '-virtual'\n"
" * a special value: all, all-major, native\n"
)
endif()
endif()
endfunction()