diff options
author | Thomas Haller <thaller@redhat.com> | 2018-10-25 10:20:33 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-10-25 11:08:39 +0200 |
commit | 168e8b9b6fccf0145dd2fac784612953d94285d4 (patch) | |
tree | b13087f59c4088e8072fba0d6a79f1af352a9db2 /tools | |
parent | cacd3be1a9dc335b429e21253ef27e2db0ef4e3f (diff) | |
download | NetworkManager-168e8b9b6fccf0145dd2fac784612953d94285d4.tar.gz |
build: fix check-docs.sh for out-of-tree builds
Fixes: 7a59cd274485e4c0345c563d48e516967630d7f0
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/check-docs.sh | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/tools/check-docs.sh b/tools/check-docs.sh index b7623fed88..b6fca6e0d9 100755 --- a/tools/check-docs.sh +++ b/tools/check-docs.sh @@ -2,6 +2,8 @@ set -e +export LANG=C + die() { printf '%s\n' "$@" >&2 exit 1 @@ -15,25 +17,48 @@ word_regex() { } same_lines() { - diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \ - <(printf "%s\n%s\n" "$2" "$3" | sed '/^$/d' | sort) >&2 + diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \ + <(printf "%s\n" "$2" | sed '/^$/d' | sort) >&2 +} + +libnm_headers() { + ( + ls -1 "$1"libnm/*.h "$1"libnm-core/*.h + if [ -n "$2" ]; then + ls -1 "$2"/libnm/*.h "$2"/libnm-core/*.h + fi + ) | sort | uniq } + SOURCEDIR="$1" +BUILDDIR="$2" +if test "$SOURCEDIR" == "$BUILDDIR"; then + BUILDDIR= +fi [ -n "$SOURCEDIR" ] && SOURCEDIR="$SOURCEDIR/" + # Check that the D-Bus API docs contain all known interfaces F1="$(sed -n 's,^ <xi:include href="dbus-\([^"]*\.xml\)"/>$,\1,p' "$SOURCEDIR"docs/api/network-manager-docs.xml)" +F1_EXTRA=" +org.freedesktop.NetworkManager.Device.WiMax.xml +org.freedesktop.NetworkManager.WiMax.Nsp.xml +" F2="$(cd "$SOURCEDIR"introspection; ls -1 *.xml)" -if ! same_lines "$F1" "$F2" ; then +if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2" ; then die "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***" fi + # Check that files that define types that are in public libnm API are included in libnm documentation. F1="$(sed -n 's/.*<xi:include href="xml\/\([^"]*\)\.xml".*/\1/p' "$SOURCEDIR"docs/libnm/libnm-docs.xml)" +F1_EXTRA=" +nm-core-enum-types +nm-enum-types +" F2="$(grep -l "$(sed -n 's/^[\t ]*\(.*_get_type\);/\1/p' "$SOURCEDIR"libnm/libnm.ver | word_regex)" \ - "$SOURCEDIR"libnm/*.h \ - "$SOURCEDIR"libnm-core/*.h \ + $(libnm_headers "$SOURCEDIR" "$BUILDDIR") \ | sed 's,.*/\([^/]\+\)\.h$,\1,')" F2_EXTRA=" annotation-glossary @@ -43,6 +68,6 @@ nm-errors nm-utils nm-version " -if ! same_lines "$F1" "$F2" "$F2_EXTRA"; then +if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2"$'\n'"$F2_EXTRA"; then die "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***" fi |