Update the oss-fuzz build script to try to get it to work with cmake.

This commit is contained in:
Eric Haszlakiewicz
2020-04-09 02:34:59 +00:00
parent 95737df9d4
commit 0c60125211

View File

@@ -15,16 +15,38 @@
#
################################################################################
./autogen.sh
./configure --enable-static --disable-shared
make -j$(nproc) all
ar rc json_c.a *.o
# This should be run from the top of the json-c source tree.
cp $SRC/*.dict $OUT/
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
make -j$(nproc)
LIB=$(pwd)/libjson-c.a
cd ..
# These seem to be set externally, but let's assign defaults to
# make it possible to at least partially test this standalone.
: ${SRC:=$(dirname "$0")}
: ${OUT:=$SRC/out}
: ${CXX:=gcc}
: ${CXXFLAGS:=}
[ -d "$OUT" ] || mkdir "$OUT"
cp $SRC/*.dict $OUT/.
# XXX this doesn't seem to make much sense, since $SRC is presumably
# the "fuzz" directory, which is _inside_ the json-c repo, rather than
# the other way around, but I'm just preserving existing behavior. -erh
INCS=$SRC/json-c
# Compat when testing standalone
[ -e "${INCS}" ] || ln -s .. "${INCS}"
set -x
set -v
for f in $SRC/*_fuzzer.cc; do
fuzzer=$(basename "$f" _fuzzer.cc)
$CXX $CXXFLAGS -std=c++11 -I$SRC/json-c \
$CXX $CXXFLAGS -std=c++11 -I$INCS \
$SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \
-lFuzzingEngine $SRC/json-c/json_c.a
-lFuzzingEngine $LIB
done