Skip to content

[Windows] CMake preset llm-debug-vulkan selects MSVC instead of Clang, causing XNNPACK compilation failures#22084

Description

@mtavenrath

馃悰 Describe the bug

When compiling the parakeet-vulkan target using make parakeet-vulkan I am getting a compilation error during XNNPack compilation:

  (compiling source file '../../../../../backends/xnnpack/third-party/XNNPACK/src/subgraph.c')

C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(2663,3): error C2143: syntax error: missing ')' before 'string' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]
C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(2663,3): error C2059: syntax error: ')' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]
C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(2918,5): error C2143: syntax error: missing ')' before 'string' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]
C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(2918,5): error C2059: syntax error: ')' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]
C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(3500,5): error C2143: syntax error: missing ')' before 'string' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]
C:\git\executorch\backends\xnnpack\third-party\XNNPACK\src\subgraph.c(3500,5): error C2059: syntax error: ')' [C:\git\executorch\cmake-out\backends\xnnpack\third-party\XNNPACK\xnnpack-subgraph.vcxproj]

Looking at the first lines of the make output it looks like make is using my installed msvc compiler instead of my installed clang compiler which then fails to compile XNNPACK.

D:\git\executorch>make parakeet-vulkan
"==> Building and installing ExecuTorch with Vulkan..."
cmake --workflow --preset llm-debug-vulkan
Executing workflow step 1 of 2: configure preset "llm-debug-vulkan"

-- Building for: Visual Studio 18 2026
-- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.26200.
-- The C compiler identification is MSVC 19.51.36256.0
-- The CXX compiler identification is MSVC 19.51.36256.0
-- Detecting C compiler ABI info                                                 -- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/18/Professional/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/18/Professional/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ExecuTorch version: 1.5.0

Is this expected behavior or this is a configuration issue?

My local Visual Studio environment has Clang installed, yet it is not being found by the collect_env.py script. Ideally Windows this Clang version would be detected to give developers a better experience

Image

Versions

c:\git\executorch>python collect_env.py
Collecting environment information...
PyTorch version: 2.13.0+cpu
Is debug build: False
CUDA used to build PyTorch: Could not collect
ROCM used to build PyTorch: N/A

OS: Microsoft Windows 11 Enterprise (10.0.26200 64-bit)
GCC version: Could not collect
Clang version: Could not collect
CMake version: version 4.4.1
Libc version: N/A

cc @SS-JIA @manuelcandales @digantdesai @cbilgin

Metadata

Metadata

Assignees

Labels

module: vulkanIssues related to the Vulkan delegate and code under backends/vulkan/

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions