# All the normal CUDA .cu source files
# OPENCL_CPP_SOURCE_FILES file1.cpp file2.cpp ...
# All the other C++ .cpp source files needed only with OpenCL
+# SYCL_CPP_SOURCE_FILES file1.cpp file2.cpp ...
+# All the C++ .cpp source files needed only with SYCL
# NON_GPU_CPP_SOURCE_FILES file1.cpp file2.cpp ...
-# All the other C++ .cpp source files needed only with neither OpenCL nor CUDA
+# All the other C++ .cpp source files needed only with neither OpenCL nor CUDA nor SYCL
function (gmx_add_gtest_executable EXENAME)
if (GMX_BUILD_UNITTESTS AND BUILD_TESTING)
set(_options MPI HARDWARE_DETECTION)
CUDA_CU_SOURCE_FILES
GPU_CPP_SOURCE_FILES
OPENCL_CPP_SOURCE_FILES
+ SYCL_CPP_SOURCE_FILES
NON_GPU_CPP_SOURCE_FILES
)
cmake_parse_arguments(ARG "${_options}" "" "${_multi_value_keywords}" ${ARGN})
if(ARG_OPENCL_CPP_SOURCE_FILES OR ARG_GPU_CPP_SOURCE_FILES)
target_link_libraries(${EXENAME} PRIVATE ${OpenCL_LIBRARIES})
endif()
+ elseif (GMX_GPU_SYCL)
+ target_sources(${EXENAME} PRIVATE ${ARG_SYCL_CPP_SOURCE_FILES} ${ARG_GPU_CPP_SOURCE_FILES})
+ set_source_files_properties(${ARG_GPU_CPP_SOURCE_FILES} PROPERTIES COMPILE_FLAGS "${SYCL_CXX_FLAGS}")
+ set_source_files_properties(${ARG_SYCL_CPP_SOURCE_FILES} PROPERTIES COMPILE_FLAGS "${SYCL_CXX_FLAGS}")
+ if(ARG_SYCL_CPP_SOURCE_FILES OR ARG_GPU_CPP_SOURCE_FILES)
+ target_link_libraries(${EXENAME} PRIVATE ${SYCL_CXX_FLAGS})
+ endif()
else()
target_sources(${EXENAME} PRIVATE ${ARG_NON_GPU_CPP_SOURCE_FILES} ${ARG_GPU_CPP_SOURCE_FILES})
endif()