feat: add support for cpplint

This commit is contained in:
Amin Yahyaabadi 2024-09-18 21:33:02 -07:00
parent c60a5ed965
commit aae4991f09
No known key found for this signature in database
GPG Key ID: F52AF77F636088F0
10 changed files with 37 additions and 14 deletions

View File

@ -14,15 +14,15 @@ Setting up a **cross-platform** environment for building and testing C++/C proje
`setup-cpp` is **modular** and you can choose to install any of these tools: `setup-cpp` is **modular** and you can choose to install any of these tools:
| category | tools | | category | tools |
| --------------------- | --------------------------------------------------------------------------- | | --------------------- | ------------------------------------------------------------------------------------ |
| compiler and analyzer | llvm, gcc, msvc, apple-clang, vcvarsall, cppcheck, clang-tidy, clang-format | | compiler and analyzer | llvm, gcc, msvc, apple-clang, vcvarsall, cppcheck, clang-tidy, clang-format, cpplint |
| build system | cmake, ninja, meson, make, task, bazel, cmakelang, cmake-format, cmake-lint | | build system | cmake, ninja, meson, make, task, bazel, cmakelang, cmake-format, cmake-lint |
| package manager | vcpkg, conan, choco, brew, nala | | package manager | vcpkg, conan, choco, brew, nala |
| cache | ccache, sccache | | cache | ccache, sccache |
| documentation | doxygen, graphviz | | documentation | doxygen, graphviz |
| coverage | gcovr, opencppcoverage, kcov | | coverage | gcovr, opencppcoverage, kcov |
| other | python, powershell, sevenzip | | other | python, powershell, sevenzip |
`setup-cpp` automatically handles the dependencies of the selected tool (e.g., `python` is required for `conan`). `setup-cpp` automatically handles the dependencies of the selected tool (e.g., `python` is required for `conan`).

View File

@ -55,6 +55,9 @@ inputs:
cppcheck: cppcheck:
description: "Wether to install cppcheck (true/false) or the specific version to install." description: "Wether to install cppcheck (true/false) or the specific version to install."
required: false required: false
cpplint:
description: "Wether to install cpplint (true/false) or the specific version to install."
required: false
clang-tidy: clang-tidy:
description: "Wether to install clang-tidy (true/false) or the specific version to install." description: "Wether to install clang-tidy (true/false) or the specific version to install."
required: false required: false

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -33,7 +33,7 @@ All the available tools:
console.table( console.table(
{ {
"compiler and analyzer": { "compiler and analyzer": {
tools: "--llvm, --gcc, --msvc, --apple-clang, --vcvarsall, --cppcheck, --clang-tidy, --clang-format", tools: "--llvm, --gcc, --msvc, --apple-clang, --vcvarsall, --cppcheck, --clang-tidy, --clang-format, --cpplint",
}, },
"build system": { "build system": {
tools: "--cmake, --ninja, --meson, --make, --task, --bazel, --cmakelang, --cmake-lint, --cmake-format", tools: "--cmake, --ninja, --meson, --make, --task, --bazel, --cmakelang, --cmake-lint, --cmake-format",

View File

@ -0,0 +1,12 @@
import { ubuntuVersion } from "../../utils/env/ubuntu_version.js"
import { testBin } from "../../utils/tests/test-helpers.js"
import { getVersion } from "../../versions/versions.js"
import { setupCpplint } from "../cpplint.js"
jest.setTimeout(300000)
describe("setup-cpplint", () => {
it("should setup cpplint", async () => {
const installInfo = await setupCpplint(getVersion("cpplint", "true", await ubuntuVersion()), "", process.arch)
await testBin("cpplint", ["--version"], installInfo.binDir)
})
})

6
src/cpplint/cpplint.ts Normal file
View File

@ -0,0 +1,6 @@
import { setupPipPack } from "../utils/setup/setupPipPack.js"
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function setupCpplint(version: string | undefined, _setupDir: string, _arch: string) {
return setupPipPack("cpplint", version)
}

View File

@ -26,6 +26,7 @@ import { setupSevenZip } from "./sevenzip/sevenzip.js"
import { setupTask } from "./task/task.js" import { setupTask } from "./task/task.js"
import { setupVcpkg } from "./vcpkg/vcpkg.js" import { setupVcpkg } from "./vcpkg/vcpkg.js"
import { setupVCVarsall } from "./vcvarsall/vcvarsall.js" import { setupVCVarsall } from "./vcvarsall/vcvarsall.js"
import { setupCpplint } from "./cpplint/cpplint.js"
export const llvmSetups = { llvm: setupLLVM, clang: setupLLVM, "clang++": setupLLVM } as const export const llvmSetups = { llvm: setupLLVM, clang: setupLLVM, "clang++": setupLLVM } as const
export const gccSetups = { gcc: setupGcc, "g++": setupGcc } as const export const gccSetups = { gcc: setupGcc, "g++": setupGcc } as const
@ -81,6 +82,7 @@ export const setups = {
doxygen: setupDoxygen, doxygen: setupDoxygen,
graphviz: setupGraphviz, graphviz: setupGraphviz,
cppcheck: setupCppcheck, cppcheck: setupCppcheck,
cpplint: setupCpplint,
"clang-tidy": setupClangTools, "clang-tidy": setupClangTools,
clangtidy: setupClangTools, clangtidy: setupClangTools,
"clang-format": setupClangFormat, "clang-format": setupClangFormat,