Tests/CompileFeatures: Cover cuda_std_## meta-features

This commit is contained in:
Brad King 2024-04-17 12:05:29 -04:00
parent 011f3d1dd3
commit fb0990ef04
11 changed files with 35 additions and 1 deletions

View File

@ -1,3 +1,4 @@
set(CMake_TEST_CUDA "Clang" CACHE STRING "")
set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20;23" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -1,4 +1,5 @@
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -395,10 +395,12 @@ if(BUILD_TESTING)
string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_C "${CMake_TEST_C_STANDARDS}")
string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_CXX "${CMake_TEST_CXX_STANDARDS}")
string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_CUDA "${CMake_TEST_CUDA_STANDARDS}")
set(CompileFeatures_BUILD_OPTIONS
-DCMake_TEST_C_STANDARDS=${TEST_STDS_C}
-DCMake_TEST_CXX_STANDARDS=${TEST_STDS_CXX}
-DCMake_TEST_CUDA=${CMake_TEST_CUDA}
-DCMake_TEST_CUDA_STANDARDS=${TEST_STDS_CUDA}
)
ADD_TEST_MACRO(CompileFeatures CompileFeatures)
set_property(TEST CompileFeatures APPEND PROPERTY LABELS "CUDA")

View File

@ -9,7 +9,13 @@ set(ext_CXX cpp)
set(std_C 90 99 11 17 23)
set(std_CXX 98 11 14 17 20 23 26)
foreach(lang C CXX)
if(CMake_TEST_CUDA)
enable_language(CUDA)
set(ext_CUDA cu)
set(std_CUDA 03 11 14 17 20 23 26)
endif()
foreach(lang C CXX CUDA)
foreach(std IN LISTS std_${lang})
string(TOLOWER "${lang}_std_${std}" feature)
if("${std}" IN_LIST CMake_TEST_${lang}_STANDARDS

View File

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD < CXX_STD_11
# error "cuda_std_11 not honored"
#endif

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD <= CXX_STD_11
# error "cuda_std_14 not honored"
#endif

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD <= CXX_STD_14
# error "cuda_std_17 not honored"
#endif

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD <= CXX_STD_17
# error "cuda_std_20 not honored"
#endif

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD <= CXX_STD_20
# error "cuda_std_23 not honored"
#endif

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD <= CXX_STD_23
# error "cuda_std_26 not honored"
#endif