@@ -27,6 +27,15 @@ file(GLOB   GGML_HEADERS_SYCL "*.hpp")
2727file (GLOB   GGML_SOURCES_SYCL "*.cpp" )
2828target_sources (ggml-sycl PRIVATE  ${GGML_HEADERS_SYCL}  ${GGML_SOURCES_SYCL} )
2929
30+ if  (WIN32 )
31+     # To generate a Visual Studio solution, using Intel C++ Compiler for ggml-sycl is mandatory 
32+     if ( ${CMAKE_GENERATOR}  MATCHES  "Visual Studio"  AND  NOT  (${CMAKE_GENERATOR_TOOLSET}  MATCHES  "Intel C" ))
33+         set_target_properties (ggml-sycl PROPERTIES VS_PLATFORM_TOOLSET "Intel C++ Compiler 2025" )
34+         set (CMAKE_CXX_COMPILER "icx" )
35+         set (CMAKE_CXX_COMPILER_ID "IntelLLVM" )
36+     endif ()
37+ endif ()
38+ 
3039find_package (IntelSYCL)
3140if  (IntelSYCL_FOUND)
3241    # Use oneAPI CMake when possible 
@@ -95,19 +104,10 @@ if (GGML_SYCL_GRAPH)
95104    target_compile_definitions (ggml-sycl PRIVATE  GGML_SYCL_GRAPH)
96105endif ()
97106
98- if  (WIN32 )
99-     if ( ${CMAKE_GENERATOR}  MATCHES  "Visual Studio"  AND  NOT  (${CMAKE_GENERATOR_TOOLSET}  MATCHES  "Intel C" ))
100-         set_target_properties (ggml-sycl PROPERTIES VS_PLATFORM_TOOLSET "Intel C++ Compiler 2025" )
101-         set (CMAKE_CXX_COMPILER "icx" )
102-         set (CMAKE_CXX_COMPILER_ID "IntelLLVM" )
103-     endif ()
104- endif ()
105- 
106107# Link against Intel oneMKL or oneMath 
107108if  (GGML_SYCL_TARGET STREQUAL  "INTEL" )
108109    # Intel devices use Intel oneMKL directly instead of oneMath to avoid the limitation of linking Intel oneMKL statically 
109110    # See https://github.com/uxlfoundation/oneMath/issues/654 
110-     find_package (IntelSYCL REQUIRED)
111111    find_package (MKL REQUIRED)
112112    target_link_libraries (ggml-sycl PRIVATE  MKL::MKL_SYCL::BLAS)
113113    target_compile_definitions (ggml-sycl PRIVATE  GGML_SYCL_USE_INTEL_ONEMKL)
0 commit comments