File: LocalLibgav1.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 (54 lines) | stat: -rw-r--r-- 2,289 bytes parent folder | download | duplicates (3)
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
53
54
set(AVIF_LIBGAV1_GIT_TAG "v0.19.0")

set(AVIF_LIBGAV1_BUILD_DIR "${AVIF_SOURCE_DIR}/ext/libgav1/build")
# If ${ANDROID_ABI} is set, look for the library under that subdirectory.
if(DEFINED ANDROID_ABI)
    set(AVIF_LIBGAV1_BUILD_DIR "${AVIF_LIBGAV1_BUILD_DIR}/${ANDROID_ABI}")
endif()
set(LIB_FILENAME "${AVIF_LIBGAV1_BUILD_DIR}/libgav1${CMAKE_STATIC_LIBRARY_SUFFIX}")

if(EXISTS "${LIB_FILENAME}")
    message(STATUS "libavif(AVIF_CODEC_LIBGAV1=LOCAL): compiled library found at ${LIB_FILENAME}")
    add_library(libgav1_static STATIC IMPORTED GLOBAL)
    set_target_properties(libgav1_static PROPERTIES IMPORTED_LOCATION "${LIB_FILENAME}")
    target_include_directories(libgav1_static INTERFACE "${AVIF_SOURCE_DIR}/ext/libgav1/src")
else()
    message(STATUS "libavif(AVIF_CODEC_LIBGAV1=LOCAL): compiled library not found at ${LIB_FILENAME}; using FetchContent")

    if(EXISTS "${AVIF_SOURCE_DIR}/ext/libgav1")
        message(STATUS "libavif(AVIF_CODEC_LIBGAV1=LOCAL): ext/libgav1 found; using as FetchContent SOURCE_DIR")
        set(FETCHCONTENT_SOURCE_DIR_LIBGAV1 "${AVIF_SOURCE_DIR}/ext/libgav1")
        message(CHECK_START "libavif(AVIF_CODEC_LIBGAV1=LOCAL): configuring libgav1")
    else()
        message(CHECK_START "libavif(AVIF_CODEC_LIBGAV1=LOCAL): fetching and configuring libgav1")
    endif()

    set(LIBGAV1_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/libgav1-build")
    if(ANDROID_ABI)
        set(LIBGAV1_BINARY_DIR "${LIBGAV1_BINARY_DIR}/${ANDROID_ABI}")
    endif()

    set(LIBGAV1_THREADPOOL_USE_STD_MUTEX 1 CACHE INTERNAL "")
    set(LIBGAV1_ENABLE_EXAMPLES OFF CACHE INTERNAL "")
    set(LIBGAV1_ENABLE_TESTS OFF CACHE INTERNAL "")
    set(LIBGAV1_MAX_BITDEPTH 12 CACHE INTERNAL "")

    FetchContent_Declare(
        libgav1
        GIT_REPOSITORY "https://chromium.googlesource.com/codecs/libgav1"
        BINARY_DIR "${LIBGAV1_BINARY_DIR}"
        GIT_TAG "${AVIF_LIBGAV1_GIT_TAG}"
        GIT_SHALLOW ON
        UPDATE_COMMAND ""
    )

    avif_fetchcontent_populate_cmake(libgav1)
    message(CHECK_PASS "complete")
endif()

set_property(TARGET libgav1_static PROPERTY AVIF_LOCAL ON)
add_library(libgav1::libgav1 ALIAS libgav1_static)

if(EXISTS "${AVIF_SOURCE_DIR}/ext/libgav1")
    set_property(TARGET libgav1_static PROPERTY FOLDER "ext/libgav1")
endif()