mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 03:26:17 +00:00
67 lines
1.7 KiB
Nix
67 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
fetchFromGitLab,
|
|
boost,
|
|
libargs,
|
|
cmake,
|
|
}:
|
|
let
|
|
cpmCacheDir = ".cpm";
|
|
format = rec {
|
|
repo = "Format.cmake";
|
|
src = fetchFromGitHub {
|
|
owner = "TheLartians";
|
|
inherit repo;
|
|
rev = "v1.7.2";
|
|
hash = "sha256-MFUwJrL0N2wJfj2vkQdKdStPkNJ6AJIYvBhCY6aVpsc=";
|
|
};
|
|
originHash = "23e9a6cadcf1af689dbf4cd8e9a7edf67ddb0009";
|
|
cacheDir = "${lib.toLower repo}/${originHash}";
|
|
};
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "gccdiag";
|
|
version = "0.2.6";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "andrejr";
|
|
repo = "gccdiag";
|
|
rev = version;
|
|
hash = "sha256-Oa4JGHCMnTW9uwxUw/+XCfQCElTAD1ifGQJ3ZFl5mys=";
|
|
};
|
|
|
|
preConfigure = ''
|
|
export CPM_SOURCE_CACHE=$sourceRoot/${cpmCacheDir}
|
|
mkdir -p "$CPM_SOURCE_CACHE/${format.cacheDir}"
|
|
cp -R --no-preserve=mode,ownership "${format.src}" "$CPM_SOURCE_CACHE/${format.cacheDir}"
|
|
'';
|
|
|
|
nativeBuildInputs = [ cmake ];
|
|
|
|
buildInputs = [
|
|
boost
|
|
libargs
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-Dgccdiag_USE_CONAN=off"
|
|
"-Dgccdiag_SOURCE_DIST=on"
|
|
"-DGIT_TAG=v${version}"
|
|
"-DSEMVER=${version}"
|
|
"-DVERSION=${version}"
|
|
"-DPROJECT_VERSION=${version}"
|
|
"-DVERSON_MAJOR=${builtins.elemAt (lib.strings.splitString "." version) 0}"
|
|
"-DVERSON_MINOR=${builtins.elemAt (lib.strings.splitString "." version) 1}"
|
|
"-DVERSON_PATCH=${builtins.elemAt (lib.strings.splitString "." version) 2}"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "A utility to get gcc (or other compiler) diagnostics for a source file, with appropriate flags extracted from a compilation database";
|
|
homepage = "https://gitlab.com/andrejr/gccdiag";
|
|
license = licenses.gpl3Plus;
|
|
maintainers = with maintainers; [ theaninova ];
|
|
};
|
|
}
|