| set(AVIF_GTEST_GIT_TAG v1.17.0) | |
| set(GTest_FOUND ON CACHE BOOL "") | |
| set(GTEST_INCLUDE_DIRS ${AVIF_SOURCE_DIR}/ext/googletest/googletest/include) | |
| set(GTEST_LIB_FILENAME | |
| ${AVIF_SOURCE_DIR}/ext/googletest/build/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} | |
| ) | |
| set(GTEST_MAIN_LIB_FILENAME | |
| ${AVIF_SOURCE_DIR}/ext/googletest/build/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} | |
| ) | |
| if(EXISTS ${GTEST_INCLUDE_DIRS}/gtest/gtest.h AND EXISTS ${GTEST_LIB_FILENAME} AND EXISTS ${GTEST_MAIN_LIB_FILENAME}) | |
| message(STATUS "libavif(AVIF_GTEST=LOCAL): compiled library found in ext/googletest") | |
| add_library(GTest::GTest STATIC IMPORTED) | |
| set_target_properties(GTest::GTest PROPERTIES IMPORTED_LOCATION "${GTEST_LIB_FILENAME}" AVIF_LOCAL ON) | |
| if(TARGET Threads::Threads) | |
| target_link_libraries(GTest::GTest INTERFACE Threads::Threads) | |
| endif() | |
| target_include_directories(GTest::GTest INTERFACE "${GTEST_INCLUDE_DIRS}") | |
| add_library(GTest::Main STATIC IMPORTED) | |
| target_link_libraries(GTest::Main INTERFACE GTest::GTest) | |
| set_target_properties(GTest::Main PROPERTIES IMPORTED_LOCATION "${GTEST_MAIN_LIB_FILENAME}" AVIF_LOCAL ON) | |
| else() | |
| message(STATUS "libavif(AVIF_GTEST=LOCAL): compiled library not found in ext/googletest; using FetchContent") | |
| if(EXISTS "${AVIF_SOURCE_DIR}/ext/googletest") | |
| message(STATUS "libavif(AVIF_GTEST=LOCAL): ext/googletest found; using as FetchContent SOURCE_DIR") | |
| set(FETCHCONTENT_SOURCE_DIR_GOOGLETEST "${AVIF_SOURCE_DIR}/ext/googletest") | |
| message(CHECK_START "libavif(AVIF_GTEST=LOCAL): configuring googletest") | |
| else() | |
| message(CHECK_START "libavif(AVIF_GTEST=LOCAL): fetching and configuring googletest") | |
| endif() | |
| FetchContent_Declare( | |
| googletest | |
| EXCLUDE_FROM_ALL | |
| GIT_REPOSITORY https://github.com/google/googletest.git | |
| GIT_TAG ${AVIF_GTEST_GIT_TAG} | |
| GIT_SHALLOW ON | |
| ) | |
| set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) | |
| set(BUILD_GMOCK OFF CACHE BOOL "" FORCE) | |
| avif_fetchcontent_makeavailable_cmake(googletest) | |
| set_target_properties(gtest gtest_main PROPERTIES AVIF_LOCAL ON) | |
| add_library(GTest::GTest ALIAS gtest) | |
| add_library(GTest::Main ALIAS gtest_main) | |
| message(CHECK_PASS "complete") | |
| endif() |