File tree 2 files changed +30
-0
lines changed
2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change
1
+ sym-db
2
+ sym-locatedb
Original file line number Diff line number Diff line change
1
+ # Find a symbol in all MSYS2 system object libraries
2
+ # Print files for find_package() or pkg_check_modules()
3
+
4
+ [[ ! -f sym-locatedb ]] && {
5
+ echo "Creating filesystem database ..."
6
+ updatedb --localpaths='/usr/lib /mingw64/lib' \
7
+ --output=sym-locatedb
8
+ }
9
+ [[ ! -f sym-db ]] && {
10
+ echo "Creating symbols database ..."
11
+ locate --database=sym-locatedb \*.a | \
12
+ parallel -j 8 nm --print-file-name --defined-only >>sym-db
13
+ }
14
+ echo "Searching symbol ..."
15
+ definitions=$(grep $1$ sym-db)
16
+ found=$(cut --delimiter=\ --fields=3 <<<"$definitions" | sort --unique)
17
+ echo "Found symbols:"
18
+ echo "$found"
19
+ files=$(cygpath --unix -f - <<<"$definitions")
20
+ files=$(cut --delimiter=: --fields=1 <<<"$files" |sort --unique)
21
+ echo "Files containing symbols:"
22
+ echo "$files"
23
+ packages=$(pacman --query --owns --quiet $files |sort --unique)
24
+ echo "Packages containing files:"
25
+ echo "$packages"
26
+ pfiles=$(pacman --query --list --quiet $packages)
27
+ echo "Useful files in packages:"
28
+ echo "$pfiles" |egrep 'pkgconfig|\.cmake'
You can’t perform that action at this time.
0 commit comments