Tests/CompileFeatures: Cover hip_std_## meta-features

This commit is contained in:
Brad King 2024-05-28 13:12:36 -04:00
parent 5d93c421f1
commit c299fd8266
13 changed files with 39 additions and 2 deletions

View File

@ -1,3 +1,4 @@
set(CMake_TEST_HIP "amd" CACHE BOOL "")
set(CMake_TEST_HIP_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -1,3 +1,4 @@
set(CMake_TEST_HIP "amd" CACHE BOOL "")
set(CMake_TEST_HIP_STANDARDS "98;11;14;17;20;23;26" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -1,3 +1,4 @@
set(CMake_TEST_HIP "nvidia" CACHE BOOL "")
set(CMake_TEST_HIP_STANDARDS "98;11;14;17" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -1,3 +1,4 @@
set(CMake_TEST_HIP "amd" CACHE BOOL "")
set(CMake_TEST_CUDA_STANDARDS "98;11;14;17;20;23;26" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@ -391,14 +391,17 @@ 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}")
string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_HIP "${CMake_TEST_HIP_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}
-DCMake_TEST_HIP=${CMake_TEST_HIP}
-DCMake_TEST_HIP_STANDARDS=${TEST_STDS_HIP}
)
ADD_TEST_MACRO(CompileFeatures CompileFeatures)
set_property(TEST CompileFeatures APPEND PROPERTY LABELS "CUDA")
set_property(TEST CompileFeatures APPEND PROPERTY LABELS "CUDA" "HIP")
ADD_TEST_MACRO(CMakeCommands.target_compile_features)

View File

@ -15,7 +15,13 @@ if(CMake_TEST_CUDA)
set(std_CUDA 03 11 14 17 20 23 26)
endif()
foreach(lang C CXX CUDA)
if(CMake_TEST_HIP)
enable_language(HIP)
set(ext_HIP hip)
set(std_HIP 98 11 14 17 20 23 26)
endif()
foreach(lang C CXX CUDA HIP)
foreach(std IN LISTS std_${lang})
string(TOLOWER "${lang}_std_${std}" feature)
if("${std}" IN_LIST CMake_TEST_${lang}_STANDARDS

View File

@ -0,0 +1,4 @@
#include "cxx_std.h"
#if defined(CXX_STD) && CXX_STD < CXX_STD_11
# error "hip_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 "hip_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 "hip_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 "hip_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 "hip_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 "hip_std_26 not honored"
#endif

View File