cmake_minimum_required(VERSION 3.22.1) # Gradle configures this project. Avoid Ninja repeatedly regenerating build.ninja # when source/build trees have skewed timestamps (e.g. on an external volume). set(CMAKE_SUPPRESS_REGENERATION ON) project(loopdeck LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(FFMPEG_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../../third_party/ffmpeg/${ANDROID_ABI}") foreach(component avformat avcodec swresample avutil) add_library(${component} SHARED IMPORTED) set_target_properties(${component} PROPERTIES IMPORTED_LOCATION "${FFMPEG_ROOT}/lib/lib${component}.so") endforeach() add_library(loopdeck SHARED decoder.cpp tak1.cpp jni.cpp) target_include_directories(loopdeck PRIVATE "${FFMPEG_ROOT}/include") target_compile_options(loopdeck PRIVATE -Wall -Wextra -Werror=return-type) target_link_options(loopdeck PRIVATE -Wl,-z,max-page-size=16384) target_link_libraries(loopdeck avformat avcodec swresample avutil log)