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
commit e66a5f8862
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 23 additions and 11 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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;

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; [