mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-11 22:55:59 +05:45
* Added `cc_binary` rule to allow executables. * Added `libFuzzer` as an external project that Firestore depends on. * LibFuzzer is checked out from its SVN repository. * LibFuzzer is built using its `build.sh` script to produce the library `libFuzzer.a`. * Added a `FindLibFuzzer.cmake` script that looks for `libFuzzer.a`. * Added a new cmake option `FUZZING` to enable fuzzing and adding the appropriate compiler flags. * Added `fuzzing_options.cmake` rules to check for compiler type and add the fuzzing flags accordingly. * Added a `firebase_firestore_fuzzing_serializer` target that depends on `libFuzzer` and `firebase_firestore_remote` to fuzz test the serializer.
56 lines
1.4 KiB
CMake
56 lines
1.4 KiB
CMake
# Copyright 2017 Google
|
|
#
|
|
# 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.
|
|
|
|
include(ExternalProject)
|
|
include(googletest)
|
|
include(grpc)
|
|
include(leveldb)
|
|
include(nanopb)
|
|
include(protobuf)
|
|
include(libfuzzer)
|
|
|
|
if(TARGET Firestore)
|
|
return()
|
|
endif()
|
|
|
|
ExternalProject_Add(
|
|
Firestore
|
|
DEPENDS
|
|
googletest
|
|
grpc
|
|
leveldb
|
|
nanopb
|
|
protobuf
|
|
libfuzzer
|
|
|
|
# Lay the binary directory out as if this were a subproject. This makes it
|
|
# possible to build and test in it directly.
|
|
PREFIX ${PROJECT_BINARY_DIR}
|
|
SOURCE_DIR ${PROJECT_SOURCE_DIR}/Firestore
|
|
BINARY_DIR ${PROJECT_BINARY_DIR}/Firestore
|
|
|
|
CMAKE_ARGS
|
|
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
|
|
-DCMAKE_INSTALL_PREFIX:PATH=${FIREBASE_INSTALL_DIR}
|
|
-DWITH_ASAN:BOOL=${WITH_ASAN}
|
|
-DWITH_TSAN:BOOL=${WITH_TSAN}
|
|
-DWITH_UBSAN:BOOL=${WITH_UBSAN}
|
|
-DFUZZING:BOOL=${FUZZING}
|
|
|
|
BUILD_ALWAYS ON
|
|
|
|
INSTALL_COMMAND ""
|
|
TEST_BEFORE_INSTALL ON
|
|
)
|