Skip to content

Commit c2520a4

Browse files
committed
feat: add x64-windows-static-clang custom vcpkg triplet with Clang-cl toolchain support
1 parent bfb7d94 commit c2520a4

1 file changed

Lines changed: 26 additions & 5 deletions

File tree

custom-triplet/x64-windows-static-clang.cmake

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,32 @@ set(VCPKG_TARGET_ARCHITECTURE x64)
22
set(VCPKG_CRT_LINKAGE static)
33
set(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
1333
set(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

Comments
 (0)