@@ -2,12 +2,32 @@ set(VCPKG_TARGET_ARCHITECTURE x64)
22set (VCPKG_CRT_LINKAGE static)
33set (VCPKG_LIBRARY_LINKAGE static)
44
5+ # Ensure LLVM and Ninja are in PATH for vcpkg and its sub-processes (like Meson)
6+ set (LLVM_BIN "C:/Program Files/LLVM/bin" )
7+ # Ninja is currently in a Winget path, we should ideally find it dynamically but let's use the known path for now
8+ # or better, find it and add its directory.
9+ find_program (NINJA_PATH ninja )
10+ if (NINJA_PATH)
11+ get_filename_component (NINJA_DIR "${NINJA_PATH} " DIRECTORY )
12+ set (ENV{PATH } "${LLVM_BIN} ;${NINJA_DIR} ;$ENV{PATH} " )
13+ else ()
14+ set (ENV{PATH } "${LLVM_BIN} ;$ENV{PATH} " )
15+ endif ()
16+
517# Dynamically find LLVM tools in PATH to get absolute paths required by vcpkg
6- find_program (LLVM_C_COMPILER clang-cl )
7- find_program (LLVM_CXX_COMPILER clang-cl )
8- find_program (LLVM_LINKER lld-link )
9- find_program (LLVM_AR llvm-lib )
10- find_program (LLVM_RC llvm-rc )
18+ # If not in PATH, try standard installation paths
19+ set (LLVM_HINTS "${LLVM_BIN} " "C:/Program Files (x86)/LLVM/bin" )
20+
21+ find_program (LLVM_C_COMPILER clang-cl HINTS ${LLVM_HINTS} )
22+ find_program (LLVM_CXX_COMPILER clang-cl HINTS ${LLVM_HINTS} )
23+ find_program (LLVM_LINKER lld-link HINTS ${LLVM_HINTS} )
24+ find_program (LLVM_AR llvm-lib HINTS ${LLVM_HINTS} )
25+ find_program (LLVM_RC llvm-rc HINTS ${LLVM_HINTS} )
26+ find_program (LLVM_MT llvm-mt HINTS ${LLVM_HINTS} )
27+
28+ if (NOT LLVM_C_COMPILER OR NOT LLVM_LINKER)
29+ message (FATAL_ERROR "Could not find LLVM tools (clang-cl, lld-link). Please ensure LLVM is installed and in PATH, or at ${LLVM_HINTS} " )
30+ endif ()
1131
1232# Toolchain paths
1333set (VCPKG_C_COMPILER "${LLVM_C_COMPILER} " )
@@ -48,6 +68,7 @@ set(VCPKG_CMAKE_CONFIGURE_OPTIONS
4868 "-DCMAKE_LINKER=${LLVM_LINKER} "
4969 "-DCMAKE_AR=${LLVM_AR} "
5070 "-DCMAKE_RC_COMPILER=${LLVM_RC} "
71+ "-DCMAKE_MT=${LLVM_MT} "
5172 "-DCMAKE_C_COMPILER_FRONTEND_VARIANT=MSVC"
5273 "-DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=MSVC"
5374 "-DJPEGXL_ENABLE_ENC=OFF"
0 commit comments