about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/5/clang
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2018-01-21 11:35:10 +0100
committerVladimír Čunát <vcunat@gmail.com>2018-01-21 11:35:10 +0100
commit5fb5beb9294b715f73f7c4b2776546dda7dd7c8b (patch)
tree0c0c4c418b09f836010008b9509a75d7824e14ed /pkgs/development/compilers/llvm/5/clang
parent29deef012c4f77c83a6912521faf363d5d751979 (diff)
parent514f67e3a89d2dc98aba1761f75210a649f2cf6c (diff)
downloadnixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar.gz
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar.bz2
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar.lz
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar.xz
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.tar.zst
nixlib-5fb5beb9294b715f73f7c4b2776546dda7dd7c8b.zip
Merge #33948: {llvm,clang}-{4,5}: better man-pages
Don't rebuild entire projects just to get manpages.
Diffstat (limited to 'pkgs/development/compilers/llvm/5/clang')
-rw-r--r--pkgs/development/compilers/llvm/5/clang/default.nix37
1 files changed, 23 insertions, 14 deletions
diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix
index aaddd020a729..021971a45431 100644
--- a/pkgs/development/compilers/llvm/5/clang/default.nix
+++ b/pkgs/development/compilers/llvm/5/clang/default.nix
@@ -5,7 +5,7 @@
 
 let
   gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
-  self = stdenv.mkDerivation {
+  self = stdenv.mkDerivation ({
     name = "clang-${version}";
 
     unpackPhase = ''
@@ -37,9 +37,8 @@ let
 
     patches = [ ./purity.patch ];
 
-    postBuild = stdenv.lib.optionalString enableManpages ''
-      cmake --build . --target docs-clang-man
-    '';
+    # XXX: TODO: This should be removed on next rebuild
+    postBuild = "";
 
     postPatch = ''
       sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
@@ -50,8 +49,7 @@ let
       sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
     '';
 
-    outputs = [ "out" "lib" "python" ]
-      ++ stdenv.lib.optional enableManpages "man";
+    outputs = [ "out" "lib" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     # Clang expects to find sanitizer libraries in its own prefix
@@ -70,13 +68,6 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
-    ''
-    + stdenv.lib.optionalString enableManpages ''
-      # Manually install clang manpage
-      cp docs/man/*.1 $out/share/man/man1/
-
-      # Move it and other man pages to 'man' output
-      moveToOutput "share/man" "$man"
     '';
 
     enableParallelBuilding = true;
@@ -94,5 +85,23 @@ let
       license     = stdenv.lib.licenses.ncsa;
       platforms   = stdenv.lib.platforms.all;
     };
-  };
+  } // stdenv.lib.optionalAttrs enableManpages {
+    name = "clang-manpages-${version}";
+
+    buildPhase = ''
+      make docs-clang-man
+    '';
+
+    installPhase = ''
+      mkdir -p $out/share/man/man1
+      # Manually install clang manpage
+      cp docs/man/*.1 $out/share/man/man1/
+    '';
+
+    outputs = [ "out" ];
+
+    doCheck = false;
+
+    meta.description = "man page for Clang ${version}";
+  });
 in self