import { isArch } from "../utils/env/isArch" // passing "" to a tool installed by a package manager (apt, brew, choco) will result in the default version of that package manager. // the directly downloaded tools require a given version ("" doesn't work). function getLLVMDefault() { switch (process.platform) { case "linux": // used for non-ubuntu (Fedora, Arch) return "15.0.6-ubuntu-18.04" case "darwin": return "15.0.3" default: return "15.0.4" } } export const DefaultVersions: Record = { llvm: getLLVMDefault(), // https://github.com/llvm/llvm-project/releases clangtidy: getLLVMDefault(), clangformat: getLLVMDefault(), ninja: "1.11.1", // https://github.com/ninja-build/ninja/releases cmake: "3.26.4", // https://github.com/Kitware/CMake/releases gcovr: "5.2", // https://pypi.org/project/gcovr/ conan: "1.60.0", // https://github.com/conan-io/conan/releases meson: "1.0.2", // https://github.com/mesonbuild/meson/releases kcov: "41", // https://github.com/SimonKagstrom/kcov/releases task: "3.25.0", // https://github.com/go-task/task/releases doxygen: isArch() ? "1.9.6-1" : "1.9.7", // https://www.doxygen.nl/download.html // https://packages.ubuntu.com/search?suite=all&arch=any&searchon=names&keywords=doxygen // https://formulae.brew.sh/formula/doxygen // https://archlinux.org/packages/extra/x86_64/doxygen/ gcc: isArch() ? "13.1.1-1" : "13", // https://github.com/brechtsanders/winlibs_mingw/releases and // https://packages.ubuntu.com/search?suite=all&arch=any&searchon=names&keywords=gcc } /// If an ubuntu versions is not in this map: // - the newer ubuntu versions use the first entry (e.g. v20), // - the older ones use "" export const DefaultLinuxVersion: Record> = { gcc: { 22: "13", 20: "11", 18: "11", 16: "11", 14: "11", }, llvm: { 22: "15.0.6-ubuntu-18.04", 20: "15.0.6-ubuntu-18.04", 18: "15.0.6-ubuntu-18.04", 16: "15.0.6-ubuntu-18.04", 14: "13.0.0-ubuntu-16.04", }, clangtidy: { 22: "15.0.6-ubuntu-18.04", 20: "15.0.6-ubuntu-18.04", 18: "15.0.6-ubuntu-18.04", 16: "15.0.6-ubuntu-18.04", 14: "13.0.0-ubuntu-16.04", }, clangformat: { 22: "15.0.6-ubuntu-18.04", 20: "15.0.6-ubuntu-18.04", 18: "15.0.6-ubuntu-18.04", 16: "15.0.6-ubuntu-18.04", 14: "13.0.0-ubuntu-16.04", }, gcovr: { 22: "5.2", 20: "5.2", 18: "5.0", }, meson: { 20: "1.0.0", 18: "0.61.4", }, nala: { 22: "", 21: "legacy", 20: "legacy", 18: "legacy", 16: "legacy", 14: "legacy", }, kcov: { 22: "40", 20: "40-binary", // https://github.com/SimonKagstrom/kcov/releases 18: "40", 16: "40", 14: "40", }, }