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