65 lines
2.1 KiB
CMake
65 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.18.1)
|
|
project("native_renderer")
|
|
|
|
# --- 1. FFmpeg 빌드 스크립트 실행 ---
|
|
# NOTE: 이 명령은 CMake 설정 단계에서 딱 한 번 실행되어 FFmpeg 라이브러리를 빌드합니다.
|
|
# ffmpeg 폴더에 있는 build_ffmpeg.sh 스크립트를 실행합니다.
|
|
execute_process(
|
|
COMMAND sh ../../../../ffmpeg/build_ffmpeg.sh
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
RESULT_VARIABLE FFMPEG_BUILD_RESULT
|
|
)
|
|
|
|
if(NOT FFMPEG_BUILD_RESULT EQUAL 0)
|
|
message(FATAL_ERROR "FFmpeg build script failed with exit code: ${FFMPEG_BUILD_RESULT}")
|
|
endif()
|
|
# --- 실행 끝 ---
|
|
|
|
|
|
# --- 2. 빌드된 라이브러리 참조 ---
|
|
# NOTE: 이제 FFmpeg은 미리 빌드된 라이브러리(prebuilt)처럼 취급됩니다.
|
|
# jniLibs 폴더 경로 설정
|
|
set(JNI_LIBS_DIR ${CMAKE_SOURCE_DIR}/../../jniLibs/${ANDROID_ABI})
|
|
|
|
# 헤더 파일 경로 추가
|
|
include_directories(${JNI_LIBS_DIR}/include)
|
|
|
|
# 각 .so 파일을 IMPORTED 라이브러리로 추가
|
|
add_library(avformat SHARED IMPORTED)
|
|
set_target_properties(avformat PROPERTIES IMPORTED_LOCATION ${JNI_LIBS_DIR}/libavformat.so)
|
|
|
|
add_library(avcodec SHARED IMPORTED)
|
|
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${JNI_LIBS_DIR}/libavcodec.so)
|
|
|
|
add_library(avutil SHARED IMPORTED)
|
|
set_target_properties(avutil PROPERTIES IMPORTED_LOCATION ${JNI_LIBS_DIR}/libavutil.so)
|
|
|
|
add_library(swscale SHARED IMPORTED)
|
|
set_target_properties(swscale PROPERTIES IMPORTED_LOCATION ${JNI_LIBS_DIR}/libswscale.so)
|
|
|
|
add_library(swresample SHARED IMPORTED)
|
|
set_target_properties(swresample PROPERTIES IMPORTED_LOCATION ${JNI_LIBS_DIR}/libswresample.so)
|
|
|
|
|
|
# --- 3. 네이티브 렌더러 라이브러리 빌드 및 링크 ---
|
|
add_library(native_renderer SHARED
|
|
native_renderer.cpp
|
|
Renderer.cpp
|
|
Preloader.cpp
|
|
MediaAsset.cpp
|
|
)
|
|
|
|
find_library(log-lib log)
|
|
find_library(android-lib android)
|
|
find_library(nativewindow-lib nativewindow)
|
|
|
|
target_link_libraries(native_renderer
|
|
avformat
|
|
avcodec
|
|
avutil
|
|
swscale
|
|
swresample
|
|
${log-lib}
|
|
${android-lib}
|
|
${nativewindow-lib}
|
|
) |