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