File: LocalGTest.cmake

package info (click to toggle)
libavif 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,956 kB
  • sloc: ansic: 29,303; cpp: 13,260; sh: 1,145; xml: 1,040; java: 307; makefile: 51
file content (52 lines) | stat: -rw-r--r-- 2,300 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
set(AVIF_GTEST_GIT_TAG v1.16.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
        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_populate_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()