diff --git a/.gitlab/ci/configure_debian12_hip_radeon.cmake b/.gitlab/ci/configure_debian12_hip_radeon.cmake index c7d7004101..d12922aa6e 100644 --- a/.gitlab/ci/configure_debian12_hip_radeon.cmake +++ b/.gitlab/ci/configure_debian12_hip_radeon.cmake @@ -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") diff --git a/.gitlab/ci/configure_fedora39_hip_radeon.cmake b/.gitlab/ci/configure_fedora39_hip_radeon.cmake index c7d7004101..8271af3e14 100644 --- a/.gitlab/ci/configure_fedora39_hip_radeon.cmake +++ b/.gitlab/ci/configure_fedora39_hip_radeon.cmake @@ -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") diff --git a/.gitlab/ci/configure_hip5.5_nvidia.cmake b/.gitlab/ci/configure_hip5.5_nvidia.cmake index 4b3511ac48..036a2275b4 100644 --- a/.gitlab/ci/configure_hip5.5_nvidia.cmake +++ b/.gitlab/ci/configure_hip5.5_nvidia.cmake @@ -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") diff --git a/.gitlab/ci/configure_hip5.5_radeon.cmake b/.gitlab/ci/configure_hip5.5_radeon.cmake index c7d7004101..06e47c9fd8 100644 --- a/.gitlab/ci/configure_hip5.5_radeon.cmake +++ b/.gitlab/ci/configure_hip5.5_radeon.cmake @@ -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") diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index eefe2887d5..51e60fe901 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -391,14 +391,17 @@ if(BUILD_TESTING) string(REPLACE ";" "$" TEST_STDS_C "${CMake_TEST_C_STANDARDS}") string(REPLACE ";" "$" TEST_STDS_CXX "${CMake_TEST_CXX_STANDARDS}") string(REPLACE ";" "$" TEST_STDS_CUDA "${CMake_TEST_CUDA_STANDARDS}") + string(REPLACE ";" "$" 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) diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt index 469a08522a..614b721791 100644 --- a/Tests/CompileFeatures/CMakeLists.txt +++ b/Tests/CompileFeatures/CMakeLists.txt @@ -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 diff --git a/Tests/CompileFeatures/hip_std_11.hip b/Tests/CompileFeatures/hip_std_11.hip new file mode 100644 index 0000000000..835aebd91b --- /dev/null +++ b/Tests/CompileFeatures/hip_std_11.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD < CXX_STD_11 +# error "hip_std_11 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_14.hip b/Tests/CompileFeatures/hip_std_14.hip new file mode 100644 index 0000000000..9a605d1051 --- /dev/null +++ b/Tests/CompileFeatures/hip_std_14.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD <= CXX_STD_11 +# error "hip_std_14 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_17.hip b/Tests/CompileFeatures/hip_std_17.hip new file mode 100644 index 0000000000..b7f3c84b38 --- /dev/null +++ b/Tests/CompileFeatures/hip_std_17.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD <= CXX_STD_14 +# error "hip_std_17 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_20.hip b/Tests/CompileFeatures/hip_std_20.hip new file mode 100644 index 0000000000..7dfbe754e9 --- /dev/null +++ b/Tests/CompileFeatures/hip_std_20.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD <= CXX_STD_17 +# error "hip_std_20 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_23.hip b/Tests/CompileFeatures/hip_std_23.hip new file mode 100644 index 0000000000..aa1af72b23 --- /dev/null +++ b/Tests/CompileFeatures/hip_std_23.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD <= CXX_STD_20 +# error "hip_std_23 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_26.hip b/Tests/CompileFeatures/hip_std_26.hip new file mode 100644 index 0000000000..3c7a2f516a --- /dev/null +++ b/Tests/CompileFeatures/hip_std_26.hip @@ -0,0 +1,4 @@ +#include "cxx_std.h" +#if defined(CXX_STD) && CXX_STD <= CXX_STD_23 +# error "hip_std_26 not honored" +#endif diff --git a/Tests/CompileFeatures/hip_std_98.hip b/Tests/CompileFeatures/hip_std_98.hip new file mode 100644 index 0000000000..e69de29bb2