| # Copyright 2023 Google LLC |
| # |
| # 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. |
| |
| cmake_minimum_required(VERSION 3.19) |
| |
| include(FetchContent) |
| |
| set(absl_URL https://github.com/abseil/abseil-cpp.git) |
| set(absl_TAG d04b964d82ed5146f7e5e34701a5ba69f9514c9a) |
| |
| set(re2_URL https://github.com/google/re2.git) |
| set(re2_TAG 2024-07-02) |
| |
| set(gtest_URL https://github.com/google/googletest.git) |
| set(gtest_TAG v1.16.0) |
| |
| # From https://www.antlr.org/download.html |
| set(antlr_cpp_URL https://www.antlr.org/download/antlr4-cpp-runtime-4.12.0-source.zip) |
| set(antlr_cpp_MD5 acf7371bd7562188712751266d8a7b90) |
| |
| set(proto_URL https://github.com/protocolbuffers/protobuf.git) |
| set(proto_TAG v30.2) |
| |
| set(nlohmann_json_URL https://github.com/nlohmann/json.git) |
| set(nlohmann_json_TAG v3.11.3) |
| |
| if(POLICY CMP0135) |
| cmake_policy(SET CMP0135 NEW) |
| set(CMAKE_POLICY_DEFAULT_CMP0135 NEW) |
| endif() |
| |
| FetchContent_Declare( |
| abseil-cpp |
| GIT_REPOSITORY ${absl_URL} |
| GIT_TAG ${absl_TAG} |
| ) |
| |
| FetchContent_Declare( |
| re2 |
| GIT_REPOSITORY ${re2_URL} |
| GIT_TAG ${re2_TAG} |
| ) |
| |
| FetchContent_Declare( |
| googletest |
| GIT_REPOSITORY ${gtest_URL} |
| GIT_TAG ${gtest_TAG} |
| ) |
| |
| FetchContent_Declare( |
| antlr_cpp |
| URL ${antlr_cpp_URL} |
| URL_HASH MD5=${antlr_cpp_MD5} |
| ) |
| |
| if (FUZZTEST_BUILD_TESTING) |
| |
| FetchContent_Declare( |
| protobuf |
| GIT_REPOSITORY ${proto_URL} |
| GIT_TAG ${proto_TAG} |
| ) |
| |
| FetchContent_Declare( |
| nlohmann_json |
| GIT_REPOSITORY ${nlohmann_json_URL} |
| GIT_TAG ${nlohmann_json_TAG} |
| ) |
| |
| endif () |
| |
| set(ABSL_PROPAGATE_CXX_STD ON) |
| set(ABSL_ENABLE_INSTALL ON) |
| FetchContent_MakeAvailable(abseil-cpp) |
| |
| set(RE2_BUILD_TESTING OFF) |
| FetchContent_MakeAvailable(re2) |
| |
| set(GTEST_HAS_ABSL ON) |
| FetchContent_MakeAvailable(googletest) |
| |
| FetchContent_MakeAvailable(antlr_cpp) |
| |
| if (FUZZTEST_BUILD_TESTING) |
| |
| set(protobuf_BUILD_TESTS OFF) |
| set(protobuf_INSTALL OFF) |
| FetchContent_MakeAvailable(protobuf) |
| |
| FetchContent_MakeAvailable(nlohmann_json) |
| |
| endif () |