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