Luke Granger-Brown
57725ef3ec
git-subtree-dir: third_party/nixpkgs git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
124 lines
3 KiB
Nix
124 lines
3 KiB
Nix
{
|
|
lib,
|
|
python3,
|
|
fetchPypi,
|
|
fetchFromGitHub,
|
|
clang,
|
|
clang-tools,
|
|
cppcheck,
|
|
gcc,
|
|
makeWrapper,
|
|
withClang ? false,
|
|
withClangTools ? false,
|
|
withCppcheck ? false,
|
|
withGcc ? false,
|
|
}:
|
|
let
|
|
python = python3.override {
|
|
packageOverrides = self: super: rec {
|
|
# codechecker is incompatible with SQLAlchemy greater than 1.3
|
|
sqlalchemy = super.sqlalchemy_1_4.overridePythonAttrs (oldAttrs: rec {
|
|
version = "1.3.23";
|
|
pname = oldAttrs.pname;
|
|
src = fetchFromGitHub {
|
|
owner = "sqlalchemy";
|
|
repo = "sqlalchemy";
|
|
rev = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
|
|
hash = "sha256-hWA0/f7rQpEfYTg10i0rBK3qeJbw3p6HW7S59rLnD0Q=";
|
|
};
|
|
doCheck = false;
|
|
# That test does not exist in the 1.3 branch so we get an error for disabling it
|
|
disabledTestPaths = builtins.filter (
|
|
testPath: testPath != "test/ext/mypy"
|
|
) oldAttrs.disabledTestPaths;
|
|
});
|
|
sqlalchemy_1_4 = sqlalchemy;
|
|
|
|
# The current alembic version is not compatible with SQLAlchemy 1.3 so we need to downgrade it
|
|
alembic = super.alembic.overridePythonAttrs (oldAttrs: rec {
|
|
pname = "alembic";
|
|
version = "1.5.5";
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
hash = "sha256-3wAowZJ1os/xN+OWF6Oc3NvRFzczuHtr+iV7fAhgITs=";
|
|
};
|
|
doCheck = false;
|
|
dependencies = oldAttrs.dependencies ++ [
|
|
super.python-dateutil
|
|
super.python-editor
|
|
];
|
|
});
|
|
};
|
|
};
|
|
python3Packages = python.pkgs;
|
|
in
|
|
python3Packages.buildPythonApplication rec {
|
|
pname = "codechecker";
|
|
version = "6.24.0";
|
|
pyproject = true;
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
hash = "sha256-ftZACUf2lAHokcUXj45LRA7/3goOcIy521cGl6qhR98=";
|
|
};
|
|
|
|
nativeBuildInputs = with python3Packages; [
|
|
setuptools
|
|
pythonRelaxDepsHook
|
|
];
|
|
|
|
propagatedBuildInputs = with python3Packages; [
|
|
lxml
|
|
sqlalchemy
|
|
alembic
|
|
portalocker
|
|
psutil
|
|
multiprocess
|
|
thrift
|
|
gitpython
|
|
types-pyyaml
|
|
sarif-tools
|
|
pytest
|
|
pycodestyle
|
|
pylint
|
|
mkdocs
|
|
coverage
|
|
];
|
|
|
|
pythonRelaxDeps = [
|
|
"thrift"
|
|
"portalocker"
|
|
"types-pyyaml"
|
|
"lxml"
|
|
"psutil"
|
|
"multiprocess"
|
|
"gitpython"
|
|
"sarif-tools"
|
|
"pyyaml"
|
|
];
|
|
|
|
postInstall = ''
|
|
wrapProgram "$out/bin/CodeChecker" --prefix PATH : ${
|
|
lib.makeBinPath (
|
|
[ ]
|
|
++ lib.optional withClang clang
|
|
++ lib.optional withClangTools clang-tools
|
|
++ lib.optional withCppcheck cppcheck
|
|
++ lib.optional withGcc gcc
|
|
)
|
|
}
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/Ericsson/codechecker";
|
|
changelog = "https://github.com/Ericsson/codechecker/releases/tag/v${version}";
|
|
description = "Analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy";
|
|
license = licenses.asl20-llvm;
|
|
maintainers = with maintainers; [
|
|
zebreus
|
|
felixsinger
|
|
];
|
|
mainProgram = "CodeChecker";
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|