summary refs log tree commit diff
path: root/pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@protonmail.com>2022-02-26 21:04:25 -0300
committerAndersonTorres <torres.anderson.85@protonmail.com>2022-02-26 21:04:25 -0300
commited2b1b4b909538716abb6378971ba75fae65b7d2 (patch)
tree25c9f8f505f3ad7d3955c556a50ef6c111e7c369 /pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh
parentf68dbdc7c39faa5f685e34b10da0b373ad6a7c22 (diff)
parent2970b27faf15840714feba50186e7e02d945569f (diff)
downloadnixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar.gz
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar.bz2
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar.lz
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar.xz
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.tar.zst
nixpkgs-ed2b1b4b909538716abb6378971ba75fae65b7d2.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh')
-rwxr-xr-xpkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh b/pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh
new file mode 100755
index 00000000000..f5eb08d78a5
--- /dev/null
+++ b/pkgs/applications/editors/vscode/extensions/cpptools/missing_elf_deps.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -p coreutils -i bash
+
+scriptDir=$(cd "`dirname "$0"`"; pwd)
+echo "scriptDir='$scriptDir'"
+
+function get_pkg_out() {
+  local pkg="$1"
+  local suffix="${2:-}"
+  local nixExp="with (import <nixpkgs> {}); ${pkg}"
+  echo "$(nix-build -E "$nixExp" --no-out-link)${suffix}"
+}
+
+interpreter="$(get_pkg_out "stdenv.glibc" "/lib/ld-linux-x86-64.so.2")"
+echo "interpreter='$interpreter'"
+
+# For clangformat dep on 'libtinfo.so.5'.
+ncursesLibDir="$(get_pkg_out "ncurses5.out" "/lib")"
+echo "ncursesLibDir='$ncursesLibDir'"
+
+# For clanformat dep on 'libstdc++.so.6'.
+stdcppLibDir="$(get_pkg_out "stdenv.cc.cc.lib" "/lib")"
+echo "stdcppLibDir='$stdcppLibDir'"
+
+# For clangformat dep on 'libz.so.1'.
+zlibLibDir="$(get_pkg_out "zlib.out" "/lib")"
+echo "zlibLibDir='$zlibLibDir'"
+
+function patchelf_mono() {
+  local exe="$1"
+  patchelf --set-interpreter "$interpreter" "$exe"
+}
+
+function patchelf_clangformat() {
+  local exe="$1"
+  patchelf --set-interpreter "$interpreter" "$exe"
+  local rpath="$ncursesLibDir:$stdcppLibDir:$zlibLibDir"
+  patchelf --set-rpath "$rpath" "$exe"
+}
+
+function print_nix_version_clangtools() {
+  nixClangToolsBin="$(get_pkg_out "clang-tools" "/bin")"
+  echo "nixClangToolsBin='$nixClangToolsBin'"
+  $nixClangToolsBin/clang-format --version
+}
+
+function print_nix_version_mono() {
+  nixMonoBin="$(get_pkg_out "mono" "/bin")"
+  echo "nixMonoBin='$nixMonoBin'"
+  $nixMonoBin/mono --version
+}
+