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