#!/bin/bash -eu
# Copyright 2018 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
################################################################################

cd $WORK

# Disable UBSan vptr since Firestore depends on other libraries that are built
# with -fno-rtti.
export CFLAGS="$CFLAGS -fno-sanitize=vptr"
export CXXFLAGS="$CXXFLAGS -fno-sanitize=vptr"

# Build the project using cmake with FUZZING option enabled to link to OSS Fuzz
# fuzzing library defined in ${LIB_FUZZING_ENGINE}.
cd $SRC/firebase-ios-sdk
mkdir build && cd build
cmake -DFUZZING=ON ..
make -j$(nproc)

# Copy fuzzing targets, dictionaries, and zipped corpora to $OUT.
FUZZERS_DIR=Firestore/fuzzing
find ${FUZZERS_DIR} -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
find ${FUZZERS_DIR} -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'
find ${FUZZERS_DIR} -name "*_fuzzer_seed_corpus" -type d -execdir zip -r ${OUT}/{}.zip {} ';'
