| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file LICENSE.rst or https://cmake.org/licensing for details. |
| |
| include(Platform/Windows-Clang) |
| set(_COMPILE_SYCL_MSVC " ${_CMAKE_SYCL_REQUIRED_FLAG}") |
| __windows_compiler_clang(SYCL) |
| if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "GNU" AND |
| CMAKE_SYCL_SIMULATE_ID STREQUAL "MSVC") |
| unset(CMAKE_INCLUDE_SYSTEM_FLAG_SYCL_WARNING) |
| if(CMAKE_SYCL_COMPILER_ID MATCHES "^(Clang|DPClang|IntelLLVM)$") |
| # Let the driver apply CRT defines to the host compilation only and select |
| # the matching libsycl dependency, including the debug runtime. |
| set(CMAKE_SYCL_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -fms-runtime-lib=static) |
| set(CMAKE_SYCL_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -fms-runtime-lib=dll) |
| set(CMAKE_SYCL_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -fms-runtime-lib=static_dbg) |
| set(CMAKE_SYCL_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -fms-runtime-lib=dll_dbg) |
| endif() |
| endif() |
| |
| if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "GNU") |
| foreach(rule CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE) |
| string(REPLACE "<CMAKE_SYCL_COMPILER>" "<CMAKE_SYCL_COMPILER> ${_CMAKE_SYCL_REQUIRED_FLAG}" |
| CMAKE_SYCL_${rule} "${CMAKE_SYCL_${rule}}") |
| # Let the SYCL driver add its runtime libraries. |
| string(REPLACE "-nostartfiles -nostdlib " "" |
| CMAKE_SYCL_${rule} "${CMAKE_SYCL_${rule}}") |
| endforeach() |
| unset(rule) |
| set(CMAKE_SYCL_VERBOSE_FLAG "-v") |
| else() |
| __windows_compiler_clang_msvc_offload_link(SYCL "${_CMAKE_SYCL_REQUIRED_FLAG}" "") |
| set(CMAKE_SYCL_VERBOSE_FLAG "-clang:-v") |
| endif() |
| unset(_COMPILE_SYCL_MSVC) |