Merge pull request #33342 from LnL7/clang-outputs

clang: add lib output
This commit is contained in:
Daiderd Jordan
2018-01-07 09:43:38 +01:00
committed by GitHub
9 changed files with 23 additions and 11 deletions
@@ -29,7 +29,7 @@ let
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp
''; '';
outputs = [ "out" "python" ]; outputs = [ "out" "lib" "python" ];
# Clang expects to find LLVMgold in its own prefix # Clang expects to find LLVMgold in its own prefix
# Clang expects to find sanitizer libraries in its own prefix # Clang expects to find sanitizer libraries in its own prefix
@@ -38,6 +38,9 @@ let
ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/ ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/
ln -sv $out/bin/clang $out/bin/cpp ln -sv $out/bin/clang $out/bin/cpp
# Move libclang to 'lib' output
moveToOutput "lib/libclang.*" "$lib"
mkdir -p $python/bin $python/share/clang/ mkdir -p $python/bin $python/share/clang/
mv $out/bin/{git-clang-format,scan-view} $python/bin mv $out/bin/{git-clang-format,scan-view} $python/bin
if [ -e $out/bin/set-xcode-analyzer ]; then if [ -e $out/bin/set-xcode-analyzer ]; then
@@ -51,7 +54,6 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
passthru = { passthru = {
lib = self; # compatibility with gcc, so that `stdenv.cc.cc.lib` works on both
isClang = true; isClang = true;
inherit llvm; inherit llvm;
} // stdenv.lib.optionalAttrs stdenv.isLinux { } // stdenv.lib.optionalAttrs stdenv.isLinux {
@@ -22,6 +22,8 @@ let
inherit clang-tools-extra_src stdenv; inherit clang-tools-extra_src stdenv;
}; };
libclang = self.clang-unwrapped.lib;
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = ccWrapperFun {
@@ -31,7 +31,7 @@ let
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp
''; '';
outputs = [ "out" "python" ]; outputs = [ "out" "lib" "python" ];
# Clang expects to find LLVMgold in its own prefix # Clang expects to find LLVMgold in its own prefix
# Clang expects to find sanitizer libraries in its own prefix # Clang expects to find sanitizer libraries in its own prefix
@@ -40,6 +40,9 @@ let
ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/ ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/
ln -sv $out/bin/clang $out/bin/cpp ln -sv $out/bin/clang $out/bin/cpp
# Move libclang to 'lib' output
moveToOutput "lib/libclang.*" "$lib"
mkdir -p $python/bin $python/share/clang/ mkdir -p $python/bin $python/share/clang/
mv $out/bin/{git-clang-format,scan-view} $python/bin mv $out/bin/{git-clang-format,scan-view} $python/bin
if [ -e $out/bin/set-xcode-analyzer ]; then if [ -e $out/bin/set-xcode-analyzer ]; then
@@ -53,7 +56,6 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
passthru = { passthru = {
lib = self; # compatibility with gcc, so that `stdenv.cc.cc.lib` works on both
isClang = true; isClang = true;
inherit llvm; inherit llvm;
} // stdenv.lib.optionalAttrs stdenv.isLinux { } // stdenv.lib.optionalAttrs stdenv.isLinux {
@@ -22,6 +22,8 @@ let
inherit clang-tools-extra_src stdenv; inherit clang-tools-extra_src stdenv;
}; };
libclang = self.clang-unwrapped.lib;
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = ccWrapperFun {
@@ -49,7 +49,7 @@ let
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
''; '';
outputs = [ "out" "python" ] outputs = [ "out" "lib" "python" ]
++ stdenv.lib.optional enableManpages "man"; ++ stdenv.lib.optional enableManpages "man";
# Clang expects to find LLVMgold in its own prefix # Clang expects to find LLVMgold in its own prefix
@@ -59,13 +59,15 @@ let
ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/ ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/
ln -sv $out/bin/clang $out/bin/cpp ln -sv $out/bin/clang $out/bin/cpp
# Move libclang to 'lib' output
moveToOutput "lib/libclang.*" "$lib"
mkdir -p $python/bin $python/share/clang/ mkdir -p $python/bin $python/share/clang/
mv $out/bin/{git-clang-format,scan-view} $python/bin mv $out/bin/{git-clang-format,scan-view} $python/bin
if [ -e $out/bin/set-xcode-analyzer ]; then if [ -e $out/bin/set-xcode-analyzer ]; then
mv $out/bin/set-xcode-analyzer $python/bin mv $out/bin/set-xcode-analyzer $python/bin
fi fi
mv $out/share/clang/*.py $python/share/clang mv $out/share/clang/*.py $python/share/clang
rm $out/bin/c-index-test rm $out/bin/c-index-test
'' ''
+ stdenv.lib.optionalString enableManpages '' + stdenv.lib.optionalString enableManpages ''
@@ -79,7 +81,6 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
passthru = { passthru = {
lib = self; # compatibility with gcc, so that `stdenv.cc.cc.lib` works on both
isClang = true; isClang = true;
inherit llvm; inherit llvm;
} // stdenv.lib.optionalAttrs stdenv.isLinux { } // stdenv.lib.optionalAttrs stdenv.isLinux {
@@ -34,6 +34,7 @@ let
llvm = overrideManOutput llvm; llvm = overrideManOutput llvm;
clang-unwrapped = overrideManOutput clang-unwrapped; clang-unwrapped = overrideManOutput clang-unwrapped;
libclang = self.clang-unwrapped.lib;
llvm-manpages = lowPrio self.llvm.man; llvm-manpages = lowPrio self.llvm.man;
clang-manpages = lowPrio self.clang-unwrapped.man; clang-manpages = lowPrio self.clang-unwrapped.man;
@@ -50,7 +50,7 @@ let
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
''; '';
outputs = [ "out" "python" ] outputs = [ "out" "lib" "python" ]
++ stdenv.lib.optional enableManpages "man"; ++ stdenv.lib.optional enableManpages "man";
# Clang expects to find LLVMgold in its own prefix # Clang expects to find LLVMgold in its own prefix
@@ -60,13 +60,15 @@ let
ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/ ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/
ln -sv $out/bin/clang $out/bin/cpp ln -sv $out/bin/clang $out/bin/cpp
# Move libclang to 'lib' output
moveToOutput "lib/libclang.*" "$lib"
mkdir -p $python/bin $python/share/clang/ mkdir -p $python/bin $python/share/clang/
mv $out/bin/{git-clang-format,scan-view} $python/bin mv $out/bin/{git-clang-format,scan-view} $python/bin
if [ -e $out/bin/set-xcode-analyzer ]; then if [ -e $out/bin/set-xcode-analyzer ]; then
mv $out/bin/set-xcode-analyzer $python/bin mv $out/bin/set-xcode-analyzer $python/bin
fi fi
mv $out/share/clang/*.py $python/share/clang mv $out/share/clang/*.py $python/share/clang
rm $out/bin/c-index-test rm $out/bin/c-index-test
'' ''
+ stdenv.lib.optionalString enableManpages '' + stdenv.lib.optionalString enableManpages ''
@@ -80,7 +82,6 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
passthru = { passthru = {
lib = self; # compatibility with gcc, so that `stdenv.cc.cc.lib` works on both
isClang = true; isClang = true;
inherit llvm; inherit llvm;
} // stdenv.lib.optionalAttrs stdenv.isLinux { } // stdenv.lib.optionalAttrs stdenv.isLinux {
@@ -34,6 +34,7 @@ let
llvm = overrideManOutput llvm; llvm = overrideManOutput llvm;
clang-unwrapped = overrideManOutput clang-unwrapped; clang-unwrapped = overrideManOutput clang-unwrapped;
libclang = self.clang-unwrapped.lib;
llvm-manpages = lowPrio self.llvm.man; llvm-manpages = lowPrio self.llvm.man;
clang-manpages = lowPrio self.clang-unwrapped.man; clang-manpages = lowPrio self.clang-unwrapped.man;
+1 -1
View File
@@ -375,7 +375,7 @@ in rec {
xz.out xz.bin libcxx libcxxabi gmp.out gnumake findutils bzip2.out xz.out xz.bin libcxx libcxxabi gmp.out gnumake findutils bzip2.out
bzip2.bin llvmPackages.llvm llvmPackages.llvm.lib zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar bzip2.bin llvmPackages.llvm llvmPackages.llvm.lib zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
gnugrep llvmPackages.clang-unwrapped patch pcre.out gettext gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
binutils-raw.bintools binutils binutils.bintools binutils-raw.bintools binutils binutils.bintools
cc.expand-response-params cc.expand-response-params
]) ++ (with pkgs.darwin; [ ]) ++ (with pkgs.darwin; [