• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cmake_minimum_required(VERSION 3.9.1)
2project(libavc C CXX)
3enable_language(ASM)
4
5set(AVC_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
6set(AVC_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}")
7option(ENABLE_MVC "Enables svcenc and svcdec builds" OFF)
8option(ENABLE_SVC "Enables svcenc and svcdec builds" OFF)
9option(ENABLE_TESTS "Enables gtest based unit tests" OFF)
10
11if("${AVC_ROOT}" STREQUAL "${AVC_CONFIG_DIR}")
12  message(
13    FATAL_ERROR
14      "Building from within the libavc source tree is not supported.\n"
15      "Hint: Run these commands\n"
16      "$ rm -rf CMakeCache.txt CMakeFiles\n"
17      "$ mkdir -p ./build\n"
18      "$ cd ./build\n"
19      "And re-run CMake from the build directory.")
20endif()
21
22set(THREADS_PREFER_PTHREAD_FLAG TRUE)
23find_package(Threads REQUIRED)
24
25set(CMAKE_STATIC_LIBRARY_PREFIX "")
26
27if(${CMAKE_CROSSCOMPILING})
28  set(THREADS_PTHREAD_ARG
29      "2"
30      CACHE STRING
31            "Refer https://gitlab.kitware.com/cmake/cmake/-/issues/16920" FORCE)
32endif()
33
34include("${AVC_ROOT}/cmake/utils.cmake")
35
36libavc_add_compile_options()
37libavc_add_definitions()
38libavc_set_link_libraries()
39
40include("${AVC_ROOT}/common/common.cmake")
41include("${AVC_ROOT}/decoder/libavcdec.cmake")
42if (${ENABLE_MVC})
43  include("${AVC_ROOT}/decoder/mvc/libmvcdec.cmake")
44endif()
45include("${AVC_ROOT}/encoder/libavcenc.cmake")
46if (${ENABLE_SVC})
47  include("${AVC_ROOT}/common/svccommon.cmake")
48  include("${AVC_ROOT}/encoder/svc/libsvcenc.cmake")
49  include("${AVC_ROOT}/decoder/svc/libsvcdec.cmake")
50endif()
51
52include("${AVC_ROOT}/examples/avcdec/avcdec.cmake")
53if (${ENABLE_MVC})
54  include("${AVC_ROOT}/examples/mvcdec/mvcdec.cmake")
55endif()
56include("${AVC_ROOT}/examples/avcenc/avcenc.cmake")
57if (${ENABLE_SVC})
58  include("${AVC_ROOT}/examples/svcenc/svcenc.cmake")
59  include("${AVC_ROOT}/examples/svcdec/svcdec.cmake")
60endif()
61
62include("${AVC_ROOT}/fuzzer/avc_dec_fuzzer.cmake")
63if (${ENABLE_MVC})
64  include("${AVC_ROOT}/fuzzer/mvc_dec_fuzzer.cmake")
65endif()
66include("${AVC_ROOT}/fuzzer/avc_enc_fuzzer.cmake")
67if (${ENABLE_SVC})
68  include("${AVC_ROOT}/fuzzer/svc_enc_fuzzer.cmake")
69  include("${AVC_ROOT}/fuzzer/svc_dec_fuzzer.cmake")
70endif()
71
72if (${ENABLE_TESTS})
73    include("${AVC_ROOT}/tests/AvcEncTest.cmake")
74endif()
75