diff options
Diffstat (limited to 'pkgs/development/tools/analysis/include-what-you-use/default.nix')
-rw-r--r-- | pkgs/development/tools/analysis/include-what-you-use/default.nix | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix new file mode 100644 index 00000000000..c3381186aa8 --- /dev/null +++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, cmake, llvmPackages_35 }: + +let version = "3.5"; in with llvmPackages_35; +stdenv.mkDerivation rec { + name = "include-what-you-use-${version}"; + + src = fetchurl { + sha256 = "1wfl78wkg8m2ssjnkb2rwcqy35nhc8fa63mk3sa60jrshpy7b15w"; + url = "${meta.homepage}/downloads/${name}.src.tar.gz"; + }; + + meta = with stdenv.lib; { + description = "Analyze #includes in C/C++ source files with clang"; + longDescription = '' + For every symbol (type, function variable, or macro) that you use in + foo.cc, either foo.cc or foo.h should #include a .h file that exports the + declaration of that symbol. The main goal of include-what-you-use is to + remove superfluous #includes, both by figuring out what #includes are not + actually needed for this file (for both .cc and .h files), and by + replacing #includes with forward-declares when possible. + ''; + homepage = http://include-what-you-use.com; + license = with licenses; bsd3; + platforms = with platforms; linux; + maintainers = with maintainers; [ nckx ]; + }; + + buildInputs = [ clang cmake llvm ]; + + cmakeFlags = [ "-DLLVM_PATH=${llvm}" ]; + enableParallelBuilding = true; +} |