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