diff --git a/CHANGELOG.md b/CHANGELOG.md index fc8439ba57..7f2183ab38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # What's New? +## 1.22 + +Features: + + +Improvements: + +- Added support for clang-cl vendor detection: `${buildKitVendor}`, `${buildKitVersionMajor}`, etc. now expand correctly when using clang-cl on Windows [#4524](https://github.com/microsoft/vscode-cmake-tools/pull/4524) [@wchou158](https://github.com/wchou158) + ## 1.21 Features: diff --git a/src/kits/kit.ts b/src/kits/kit.ts index e95715af03..bc8158f75d 100644 --- a/src/kits/kit.ts +++ b/src/kits/kit.ts @@ -61,7 +61,7 @@ export interface CMakeGenerator { platform?: string; } -type CompilerVendorEnum = 'Clang' | 'GCC' | 'MSVC'; +type CompilerVendorEnum = 'Clang' | 'ClangCl' | 'GCC' | 'MSVC'; export interface KitDetect { /** @@ -176,7 +176,7 @@ export async function getCompilerVersion(vendor: CompilerVendorEnum, binPath: st } let version_re: RegExp; let version_match_index; - if (vendor === 'Clang') { + if (vendor === 'Clang' || vendor === 'ClangCl') { version_re = /^(?:Apple LLVM|.*clang) version ([^\s-]+)(?:[\s-]|$)/mgi; version_match_index = 1; } else { @@ -268,6 +268,8 @@ export async function getKitDetect(kit: Kit): Promise { vendor = 'GCC'; } else if (kit.name.startsWith('Clang ')) { vendor = 'Clang'; + } else if (kit.name.startsWith('Clang-cl')) { + vendor = 'ClangCl'; } if (vendor === undefined) { return kit;