Commit b1cd7ce2 authored by Andres Freund's avatar Andres Freund

Integrate cpluspluscheck into build system.

Previously cpluspluscheck wouldn't work in vpath builds, this commit
fixes that. To make it easier to invoke, there's a top-level
cpluspluscheck target.

Discussion: https://postgr.es/20190530220244.kiputcbl4gkl2oo6@alap3.anarazel.de
parent 72b6223f
......@@ -128,4 +128,7 @@ distcheck: dist
rm -rf $(distdir) $(dummy)
@echo "Distribution integrity checks out."
cpluspluscheck: submake-generated-headers
$(top_srcdir)/src/tools/pginclude/cpluspluscheck $(top_srcdir) $(abs_top_builddir)
.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world
#!/bin/sh
# Check all exported PostgreSQL include files for C++ compatibility.
# Run this from the top-level source directory after performing a build.
#
# Argument 1 is the top-level source directory, argument 2 the
# top-level build directory (they might be the same). If not set, they
# default to the current directory.
#
# Needs to be run after all generated headers are created.
#
# No output if everything is OK, else compiler errors.
if [ -z "$1" ];then
srcdir="."
else
srcdir="$1"
fi
if [ -z "$2" ];then
builddir="$."
else
builddir="$2"
fi
me=`basename $0`
tmp=`mktemp -d /tmp/$me.XXXXXX`
......@@ -22,7 +40,7 @@ trap 'rm -rf $tmp' 0 1 2 3 15
# which itself contains C++ code and so won't compile with a C++
# compiler under extern "C" linkage.
for f in `find src/include src/interfaces/libpq/libpq-fe.h src/interfaces/libpq/libpq-events.h -name '*.h' -print | \
for f in `cd "$srcdir" && find src/include src/interfaces/libpq/libpq-fe.h src/interfaces/libpq/libpq-events.h -name '*.h' -print | \
grep -v -e ^src/include/port/ \
-e ^src/include/rusagestub.h -e ^src/include/regex/regerrs.h \
-e ^src/include/access/rmgrlist.h \
......@@ -36,5 +54,7 @@ do
echo '};'
} >$tmp/test.cpp
${CXX:-g++} -I . -I src/interfaces/libpq -I src/include -fsyntax-only -Wall -c $tmp/test.cpp
${CXX:-g++} -I $srcdir -I $srcdir/src/interfaces/libpq -I $srcdir/src/include \
-I $builddir -I $builddir/src/interfaces/libpq -I $builddir/src/include \
-fsyntax-only -Wall -c $tmp/test.cpp
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment