| 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") |