blob: 6855bb8291cb5702537b34e0142cc124bfe4f49b [file] [edit]
set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
enable_language(SYCL)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_BUILD_TYPE Debug)
# Select the active compiler's dialect without requiring the selected GPU SDKs.
if(CMAKE_SYCL_COMPILER_ID STREQUAL "Clang")
set(device_targets_selected spirv64-unknown-unknown)
set(device_targets_baseline spirv32-unknown-unknown)
elseif(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
set(device_targets_selected "spir64;intel_gpu_pvc")
set(device_targets_baseline spir64)
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "AdaptiveCpp")
set(device_targets_selected "cuda.explicit-multipass:sm_80,sm_86;hip.explicit-multipass:gfx90a")
set(device_targets_baseline omp.accelerated)
else()
message(FATAL_ERROR "Unknown SYCL device-target dialect: ${CMAKE_SYCL_COMPILER_ID}")
endif()
set(_CMAKE_SYCL_DEVICE_TARGETS "${device_targets_baseline}")
set(CMAKE_SYCL_DEVICE_TARGETS "${device_targets_baseline}")
add_library(initialized STATIC DeviceTargets.sycl)
get_property(initialized_targets TARGET initialized PROPERTY SYCL_DEVICE_TARGETS)
if(NOT initialized_targets STREQUAL device_targets_baseline)
message(FATAL_ERROR "SYCL_DEVICE_TARGETS was not initialized")
endif()
unset(CMAKE_SYCL_DEVICE_TARGETS)
add_library(selected STATIC DeviceTargets.sycl)
add_executable(selected_native DeviceTargets.sycl)
set_property(TARGET selected selected_native PROPERTY
SYCL_DEVICE_TARGETS "${device_targets_selected}")
add_library(disabled STATIC DeviceTargets.sycl)
set_property(TARGET disabled PROPERTY SYCL_DEVICE_TARGETS OFF)
unset(CMAKE_SYCL_DEVICE_TARGETS)
add_library(baseline STATIC DeviceTargets.sycl)
add_library(host OBJECT DeviceTargets.cxx)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/targets.cmake"
"set(expected_targets [==[${device_targets_selected}]==])\nset(compiler ${CMAKE_SYCL_COMPILER_ID})\n")