# 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()