xref: /aosp_15_r20/external/libavc/CMakeLists.txt (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1cmake_minimum_required(VERSION 3.9.1)
2project(libavc C CXX)
3
4if(NOT DEFINED SYSTEM_NAME)
5  set(SYSTEM_NAME ${CMAKE_HOST_SYSTEM_NAME})
6endif()
7
8if(NOT DEFINED SYSTEM_PROCESSOR)
9  set(SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR})
10endif()
11
12if(NOT "${SYSTEM_NAME}" STREQUAL "Darwin")
13  enable_language(ASM)
14endif()
15
16set(AVC_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
17set(AVC_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}")
18option(ENABLE_MVC "Enables svcenc and svcdec builds" OFF)
19option(ENABLE_SVC "Enables svcenc and svcdec builds" OFF)
20option(ENABLE_TESTS "Enables gtest based unit tests" OFF)
21
22if("${AVC_ROOT}" STREQUAL "${AVC_CONFIG_DIR}")
23  message(
24    FATAL_ERROR
25      "Building from within the libavc source tree is not supported.\n"
26      "Hint: Run these commands\n"
27      "$ rm -rf CMakeCache.txt CMakeFiles\n"
28      "$ mkdir -p ./build\n"
29      "$ cd ./build\n"
30      "And re-run CMake from the build directory.")
31endif()
32
33if("${SYSTEM_NAME}" STREQUAL "Android")
34    find_library(log-lib log QUIET)
35    if(NOT log-lib)
36      message(FATAL_ERROR "Could NOT find log library, retry after installing \
37                           log library at sysroot.")
38    else()
39      message(STATUS "Found log-lib: ${log-lib}")
40    endif()
41endif()
42
43set(THREADS_PREFER_PTHREAD_FLAG TRUE)
44find_package(Threads REQUIRED)
45
46set(CMAKE_STATIC_LIBRARY_PREFIX "")
47
48if(${CMAKE_CROSSCOMPILING})
49  set(THREADS_PTHREAD_ARG
50      "2"
51      CACHE STRING
52            "Refer https://gitlab.kitware.com/cmake/cmake/-/issues/16920" FORCE)
53endif()
54
55include("${AVC_ROOT}/cmake/utils.cmake")
56
57libavc_add_compile_options()
58libavc_add_definitions()
59libavc_set_link_libraries()
60
61include("${AVC_ROOT}/common/common.cmake")
62include("${AVC_ROOT}/decoder/libavcdec.cmake")
63if (${ENABLE_MVC})
64  include("${AVC_ROOT}/decoder/mvc/libmvcdec.cmake")
65endif()
66include("${AVC_ROOT}/encoder/libavcenc.cmake")
67if (${ENABLE_SVC})
68  include("${AVC_ROOT}/common/svccommon.cmake")
69  include("${AVC_ROOT}/encoder/svc/libsvcenc.cmake")
70  include("${AVC_ROOT}/decoder/svc/libsvcdec.cmake")
71endif()
72
73include("${AVC_ROOT}/examples/avcdec/avcdec.cmake")
74if (${ENABLE_MVC})
75  include("${AVC_ROOT}/examples/mvcdec/mvcdec.cmake")
76endif()
77include("${AVC_ROOT}/examples/avcenc/avcenc.cmake")
78if (${ENABLE_SVC})
79  include("${AVC_ROOT}/examples/svcenc/svcenc.cmake")
80  include("${AVC_ROOT}/examples/svcdec/svcdec.cmake")
81endif()
82
83include("${AVC_ROOT}/fuzzer/avc_dec_fuzzer.cmake")
84if (${ENABLE_MVC})
85  include("${AVC_ROOT}/fuzzer/mvc_dec_fuzzer.cmake")
86endif()
87include("${AVC_ROOT}/fuzzer/avc_enc_fuzzer.cmake")
88if (${ENABLE_SVC})
89  include("${AVC_ROOT}/fuzzer/svc_enc_fuzzer.cmake")
90  include("${AVC_ROOT}/fuzzer/svc_dec_fuzzer.cmake")
91endif()
92
93if (${ENABLE_TESTS})
94    include("${AVC_ROOT}/tests/AvcEncTest.cmake")
95endif()
96