Files
Recordly/scripts/windows-cmake-generators.mjs

37 lines
960 B
JavaScript

export const WINDOWS_CMAKE_GENERATORS = Object.freeze([
{ name: "Visual Studio 18 2026", label: "VS 2026", toolset: "v143" },
{ name: "Visual Studio 17 2022", label: "VS 2022" },
{ name: "Visual Studio 16 2019", label: "VS 2019" },
]);
export const WINDOWS_VISUAL_STUDIO_INSTALL_DIRS = Object.freeze(["18", "2022", "2019"]);
export function configureWithWindowsCmakeGenerator({
prefix,
configure,
clearCache,
log = console.log,
}) {
let lastError;
for (let index = 0; index < WINDOWS_CMAKE_GENERATORS.length; index += 1) {
const generator = WINDOWS_CMAKE_GENERATORS[index];
clearCache();
try {
configure(generator.name, generator.toolset);
return generator.name;
} catch (error) {
lastError = error;
const nextGenerator = WINDOWS_CMAKE_GENERATORS[index + 1];
if (nextGenerator) {
log(
`[${prefix}] ${generator.label} generator unavailable, trying ${nextGenerator.label}...`,
);
}
}
}
throw lastError;
}