From 04157dedd15d2c43f744899c5daa6774198d30e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com>
Date: Tue, 25 Feb 2025 11:22:22 +0100
Subject: [PATCH] Deactivate Kokkos mdspan impl if standard header is not found

---
 CMakeLists.txt | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c0f69fcf..2b82d3068 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,9 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 # Forbids in-source builds
 include(CheckNotInSources)
 
+# Check for some headers
+include(CheckIncludeFileCXX)
+
 # use PkgConfig to find packages
 find_package(PkgConfig REQUIRED)
 
@@ -404,6 +407,13 @@ set(CMAKE_CXX_STANDARD "20")
 set(KOKKOS_SOURCE_DIR "${PUGS_SOURCE_DIR}/packages/kokkos")
 set(KOKKOS_BINARY_DIR "${PUGS_BINARY_DIR}/packages/kokkos")
 
+# test since mdspan is not supported by g++-10 and clang-11 (used in CI)
+check_include_file_cxx("mdspan" CXX_MDSPAN_SUPPORT)
+if (NOT DEFINED ${CXX_MDSPAN_SUPPORT})
+  message(STATUS "Kokkos_ENABLE_IMPL_MDSPAN is deactivated since standard library does not support mdspan")
+  set(Kokkos_ENABLE_IMPL_MDSPAN OFF CACHE BOOL "")
+endif()
+
 # disable Kokkos deprecation warnings by default
 set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "")
 
-- 
GitLab