From 66a9b617411239b3d42efb775e9fcb294c30d72a Mon Sep 17 00:00:00 2001
From: Xingqiu Yuan <xyuan@anl.gov>
Date: Fri, 17 Nov 2023 18:40:35 +0000
Subject: [PATCH] add sycl support for sunspot/aurora

---
 physics/scream_cxx_interfaces/CMakeLists.txt | 13 +++++++++++++
 physics/scream_cxx_p3_shoc/CMakeLists.txt    | 13 +++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/physics/scream_cxx_interfaces/CMakeLists.txt b/physics/scream_cxx_interfaces/CMakeLists.txt
index 8b197e2e..35c437db 100644
--- a/physics/scream_cxx_interfaces/CMakeLists.txt
+++ b/physics/scream_cxx_interfaces/CMakeLists.txt
@@ -26,6 +26,19 @@ elseif ("${YAKL_ARCH}" STREQUAL "HIP")
   set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
   set($ENV{Kokkos_ARCH_HIP}                ON    CACHE BOOL "" FORCE)
   set(CMAKE_CXX_STANDARD 14)
+elseif ("${YAKL_ARCH}" STREQUAL "SYCL")
+  set(CMAKE_CXX_EXTENSIONS   FALSE CACHE BOOL "OFF")
+  set(CMAKE_VERBOSE_MAKEFILE TRUE  CACHE BOOL "ON")
+  set(DBUILD_SHARED_LIBS     TRUE  CACHE BOOL "ON")
+  #set(Kokkos_ARCH_INTEL_XEHP OFF CACHE BOOL "OFF") # for ATS and AoT compilation (**)
+  set(Kokkos_ARCH_INTEL_PVC  TRUE CACHE BOOL "ON") # for PVC and AoT compilation
+  set(Kokkos_ENABLE_OPENMP   FALSE CACHE BOOL "OFF")
+  set(Kokkos_ENABLE_SYCL     TRUE  CACHE BOOL "ON")
+  set(Kokkos_ENABLE_DEPRECATED_CODE_3 TRUE CACHE BOOL "ON") # (if not building Kokkos Kernels, this can be OFF)
+  set(EAMXX_ENABLE_GPU       TRUE  CACHE BOOL "" FORCE)
+  set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION TRUE  CACHE BOOL "")
+  set(SCREAM_SMALL_KERNELS   TRUE  CACHE BOOL "" FORCE)  
+  set(CMAKE_CXX_STANDARD 17)
 endif()
 
 if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Flang")
diff --git a/physics/scream_cxx_p3_shoc/CMakeLists.txt b/physics/scream_cxx_p3_shoc/CMakeLists.txt
index e95a3955..8271c40d 100644
--- a/physics/scream_cxx_p3_shoc/CMakeLists.txt
+++ b/physics/scream_cxx_p3_shoc/CMakeLists.txt
@@ -25,6 +25,19 @@ elseif ("${YAKL_ARCH}" STREQUAL "HIP")
   set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
   set($ENV{Kokkos_ARCH_HIP}                ON    CACHE BOOL "" FORCE)
   set(CMAKE_CXX_STANDARD 14)
+elseif ("${YAKL_ARCH}" STREQUAL "SYCL")
+  set(CMAKE_CXX_EXTENSIONS   FALSE CACHE BOOL "OFF")
+  set(CMAKE_VERBOSE_MAKEFILE TRUE  CACHE BOOL "ON")
+  set(DBUILD_SHARED_LIBS     TRUE  CACHE BOOL "ON")
+  #set(Kokkos_ARCH_INTEL_XEHP OFF CACHE BOOL "OFF") # for ATS and AoT compilation (**)
+  set(Kokkos_ARCH_INTEL_PVC  TRUE CACHE BOOL "ON") # for PVC and AoT compilation
+  set(Kokkos_ENABLE_OPENMP   FALSE CACHE BOOL "OFF")
+  set(Kokkos_ENABLE_SYCL     TRUE  CACHE BOOL "ON")
+  set(Kokkos_ENABLE_DEPRECATED_CODE_3 TRUE CACHE BOOL "ON") # (if not building Kokkos Kernels, this can be OFF)
+  set(EAMXX_ENABLE_GPU       TRUE  CACHE BOOL "" FORCE)
+  set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION TRUE  CACHE BOOL "")
+  set(SCREAM_SMALL_KERNELS   TRUE  CACHE BOOL "" FORCE)  
+  set(CMAKE_CXX_STANDARD 17)  
 endif()
 
 if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Flang")