jetbrains.clion: fix paths to patched binaries and fix gdb binary

This commit is contained in:
Jiri Danek 2018-07-28 15:55:19 +02:00
parent 47eb7ecd76
commit 435e663eae

View File

@ -29,36 +29,48 @@ let
( (
cd $out/clion-${version} cd $out/clion-${version}
# bundled cmake does not find libc # bundled cmake does not find libc
rm -rf bin/cmake rm -rf bin/cmake/linux
ln -s ${cmake} bin/cmake ln -s ${cmake} bin/cmake/linux
lldbLibPath=$out/clion-${version}/bin/lldb/lib lldbLibPath=$out/clion-${version}/bin/lldb/linux/lib
interp="$(cat $NIX_CC/nix-support/dynamic-linker)" interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
ln -s ${ncurses.out}/lib/libncurses.so $lldbLibPath/libtinfo.so.5 ln -s ${ncurses.out}/lib/libncurses.so $lldbLibPath/libtinfo.so.5
patchelf --set-interpreter $interp \ patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \
bin/lldb/bin/lldb-server bin/lldb/linux/bin/lldb-server
for i in LLDBFrontend lldb lldb-argdumper; do for i in LLDBFrontend lldb lldb-argdumper; do
patchelf --set-interpreter $interp \ patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
"bin/lldb/bin/$i" "bin/lldb/linux/bin/$i"
done done
patchelf \ patchelf \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
bin/lldb/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so bin/lldb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
patchelf \ patchelf \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \
bin/lldb/lib/liblldb.so bin/lldb/linux/lib/liblldb.so
patchelf --set-interpreter $interp bin/gdb/bin/gdb gdbLibPath=$out/clion-${version}/bin/gdb/linux/lib
patchelf --set-interpreter $interp bin/gdb/bin/gdbserver patchelf \
--set-rpath "$gdbLibPath" \
bin/gdb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
patchelf --set-interpreter $interp \ patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$gdbLibPath" \
bin/clang/clang-tidy bin/gdb/linux/bin/gdb
patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$gdbLibPath" \
bin/gdb/linux/bin/gdbserver
patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
bin/clang/linux/clangd
patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
bin/clang/linux/clang-tidy
wrapProgram $out/bin/clion \ wrapProgram $out/bin/clion \
--set CL_JDK "${jdk}" --set CL_JDK "${jdk}"