include(Compiler/IntelLLVM)
__compiler_intel_llvm(SYCL)

set(_CMAKE_SYCL_REQUIRED_FLAG "-fsycl")

if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2026.0)
  include(Compiler/IntelLLVM-SYCL-DeviceLink)
endif()

set(CMAKE_SYCL_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN
  "-fvisibility-inlines-hidden")

set(CMAKE_SYCL_COMPILER_PREDEFINES_COMMAND "${CMAKE_SYCL_COMPILER}")
if(CMAKE_SYCL_COMPILER_ARG1)
  separate_arguments(_COMPILER_ARGS NATIVE_COMMAND "${CMAKE_SYCL_COMPILER_ARG1}")
  list(APPEND CMAKE_SYCL_COMPILER_PREDEFINES_COMMAND ${_COMPILER_ARGS})
  unset(_COMPILER_ARGS)
endif()
list(APPEND CMAKE_SYCL_COMPILER_PREDEFINES_COMMAND
  ${_CMAKE_SYCL_REQUIRED_FLAG} "-x" "c++" "-w" "-dM" "-E"
  "${CMAKE_ROOT}/Modules/CMakeSYCLCompilerABI.sycl")
if(CMAKE_SYCL_COMPILER_TARGET)
  list(APPEND CMAKE_SYCL_COMPILER_PREDEFINES_COMMAND
    "--target=${CMAKE_SYCL_COMPILER_TARGET}")
endif()

if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "GNU")
  set(CMAKE_SYCL17_STANDARD_COMPILE_OPTION  "-std=c++17")
  set(CMAKE_SYCL17_EXTENSION_COMPILE_OPTION "-std=gnu++17")

  set(CMAKE_SYCL20_STANDARD_COMPILE_OPTION  "-std=c++20")
  set(CMAKE_SYCL20_EXTENSION_COMPILE_OPTION "-std=gnu++20")

  set(CMAKE_SYCL_STANDARD_LATEST 20)

  if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2024.0.0)
    set(CMAKE_SYCL23_STANDARD_COMPILE_OPTION "-std=c++23")
    set(CMAKE_SYCL23_EXTENSION_COMPILE_OPTION "-std=gnu++23")
    set(CMAKE_SYCL_STANDARD_LATEST 23)
  elseif(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2021.2.0)
    set(CMAKE_SYCL23_STANDARD_COMPILE_OPTION  "-std=c++2b")
    set(CMAKE_SYCL23_EXTENSION_COMPILE_OPTION "-std=gnu++2b")
    set(CMAKE_SYCL_STANDARD_LATEST 23)
  endif()

  if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2024.0.0)
    set(CMAKE_SYCL26_STANDARD_COMPILE_OPTION "-std=c++26")
    set(CMAKE_SYCL26_EXTENSION_COMPILE_OPTION "-std=gnu++26")
    set(CMAKE_SYCL_STANDARD_LATEST 26)
  endif()
else()
  set(CMAKE_SYCL17_STANDARD_COMPILE_OPTION  "-Qstd:c++17")
  set(CMAKE_SYCL17_EXTENSION_COMPILE_OPTION "-Qstd:c++17")

  set(CMAKE_SYCL20_STANDARD_COMPILE_OPTION  "-Qstd:c++20")
  set(CMAKE_SYCL20_EXTENSION_COMPILE_OPTION "-Qstd:c++20")

  set(CMAKE_SYCL_STANDARD_LATEST 20)

  if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2024.0.0)
    set(CMAKE_SYCL23_STANDARD_COMPILE_OPTION "-Qstd=c++23")
    set(CMAKE_SYCL23_EXTENSION_COMPILE_OPTION "-Qstd=c++23")
    set(CMAKE_SYCL_STANDARD_LATEST 23)
  elseif(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2021.2.0)
    set(CMAKE_SYCL23_STANDARD_COMPILE_OPTION  "-Qstd:c++2b")
    set(CMAKE_SYCL23_EXTENSION_COMPILE_OPTION "-Qstd:c++2b")
    set(CMAKE_SYCL_STANDARD_LATEST 23)
  endif()

  if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2024.0.0)
    set(CMAKE_SYCL26_STANDARD_COMPILE_OPTION "-Qstd=c++26")
    set(CMAKE_SYCL26_EXTENSION_COMPILE_OPTION "-Qstd=c++26")
    set(CMAKE_SYCL_STANDARD_LATEST 26)
  endif()
endif()

if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
  set(_CMAKE_SYCL_NDEBUG_FLAG " /DNDEBUG")
else()
  set(_CMAKE_SYCL_NDEBUG_FLAG " -DNDEBUG")
endif()
string(APPEND CMAKE_SYCL_FLAGS_MINSIZEREL_INIT "${_CMAKE_SYCL_NDEBUG_FLAG}")
string(APPEND CMAKE_SYCL_FLAGS_RELEASE_INIT "${_CMAKE_SYCL_NDEBUG_FLAG}")
string(APPEND CMAKE_SYCL_FLAGS_RELWITHDEBINFO_INIT "${_CMAKE_SYCL_NDEBUG_FLAG}")
unset(_CMAKE_SYCL_NDEBUG_FLAG)

__compiler_check_default_language_standard(SYCL 2020 17)
