File: make-cpp-ver

package info (click to toggle)
hdf5 1.8.13%2Bdocs-15
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 171,520 kB
  • sloc: ansic: 387,158; f90: 35,195; sh: 20,035; xml: 17,780; cpp: 13,516; makefile: 1,487; perl: 1,299; yacc: 327; lex: 178; ruby: 37
file content (34 lines) | stat: -rwxr-xr-x 1,039 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# This script was used to generate the version script for CPP symbols

set -e

declare -A versions=()
declare -A c=()
declare -A cpp=()

while read ligne; do
  symbol="$(echo "$ligne" | awk -F'@' '{print $1}')"
  version="$(echo "$ligne" | awk -F'@' '{print $2}')"
  if [ ! ${versions[$version]+_} ]; then
    versions[$version]=""
  fi
  if [[ "$symbol" =~ ^[^\ :]*$ ]]; then
    c[$version]="${c[$version]}${symbol}\n"
  else
    cpp[$version]="${cpp[$version]}${symbol}\n"
  fi
done < <(grep -Ev '^(lib|\s*#)' debian/libhdf5-cpp-7.symbols | sed 's/([^)]*)//' | sed 's/^ "\?\([^@]*\)@Base"\? \(.*\)$/\1@\2/')

prev_version=""
for version in $(echo "${!versions[@]}" | sed 's/ /\n/g' | sort -V); do
  echo "HDF5_CPP_$version {"
  echo "    global:"
  echo '        extern "C++" {'
  echo -e "${cpp[$version]}" | sed '/^$/d;s/^/            "/;s/$/"\;/'
  echo '        };'
  echo -e "${c[$version]}" | sed '/^$/d;s/^/        /;s/$/\;/'
  echo "}${prev_version:+ HDF5_CPP_$prev_version};"
  echo ""
  prev_version=$version
done