linuxOS_AP06/app/rkadk/src/CMakeLists.txt
2025-06-03 12:28:32 +08:00

149 lines
4.9 KiB
CMake

file(GLOB_RECURSE COMMON_SRC "${CMAKE_SOURCE_DIR}/src/common/*.c")
file(GLOB_RECURSE PARAM_SRC "${CMAKE_SOURCE_DIR}/src/param/*.c")
file(GLOB_RECURSE INIPARSER_SRC "${CMAKE_SOURCE_DIR}/src/third-party/iniparser/*.c")
file(GLOB_RECURSE CJSON_SRC "${CMAKE_SOURCE_DIR}/src/third-party/cjson/*.c")
if(ENABLE_COMMON_FUNCTIONS)
file(GLOB_RECURSE AUDIO_ENCODER_SRC "${CMAKE_SOURCE_DIR}/src/audio/encoder/*.c")
file(GLOB_RECURSE MUXER_SRC "${CMAKE_SOURCE_DIR}/src/muxer/*.c")
file(GLOB_RECURSE RECORD_SRC "${CMAKE_SOURCE_DIR}/src/record/*.c")
file(GLOB_RECURSE PHOTO_SRC "${CMAKE_SOURCE_DIR}/src/photo/*.c")
file(GLOB_RECURSE STREAM_SRC "${CMAKE_SOURCE_DIR}/src/stream/*.c")
file(GLOB_RECURSE RTSP_SRC "${CMAKE_SOURCE_DIR}/src/live/rtsp/*.c")
file(GLOB_RECURSE OSD_SRC "${CMAKE_SOURCE_DIR}/src/osd/*.c")
file(GLOB_RECURSE RTMP_SRC "${CMAKE_SOURCE_DIR}/src/live/rtmp/*.c")
endif()
if(ENABLE_DISPLAY)
file(GLOB_RECURSE UI_SRC "${CMAKE_SOURCE_DIR}/src/ui/*.c")
file(GLOB_RECURSE DISP_SRC "${CMAKE_SOURCE_DIR}/src/display/*.c")
endif()
if(ENABLE_PLAYER)
file(GLOB_RECURSE DEMUXER_SRC "${CMAKE_SOURCE_DIR}/src/demuxer/*.c")
file(GLOB_RECURSE AUDIO_DECODER_SRC "${CMAKE_SOURCE_DIR}/src/audio/decoder/*.c")
file(GLOB_RECURSE PLAYER_SRC "${CMAKE_SOURCE_DIR}/src/player/*.c")
endif()
if(ENABLE_STORAGE)
file(GLOB_RECURSE STORAGE_SRC "${CMAKE_SOURCE_DIR}/src/storage/*.c")
endif()
if(ENABLE_AOV)
file(GLOB_RECURSE AOV_SRC "${CMAKE_SOURCE_DIR}/src/aov/*.c")
endif()
# gdb debug
# add_definitions(-g -O0 -ggdb -gdwarf -funwind-tables)
add_definitions(-fPIC -Wl,-Bsymbolic -rdynamic)
set(SRC_LIST
${AUDIO_ENCODER_SRC}
${AUDIO_DECODER_SRC}
${COMMON_SRC}
${DEMUXER_SRC}
${MUXER_SRC}
${RECORD_SRC}
${PHOTO_SRC}
${STREAM_SRC}
${PLAYER_SRC}
${PARAM_SRC}
${RTMP_SRC}
${RTSP_SRC}
${OSD_SRC}
${DISP_SRC}
${UI_SRC}
${STORAGE_SRC}
${INIPARSER_SRC}
${CJSON_SRC}
${AOV_SRC})
add_library(rkadk SHARED ${SRC_LIST})
set_target_properties(rkadk PROPERTIES LINK_FLAGS -Wl,--version-script,${CMAKE_CURRENT_LIST_DIR}/export.map)
target_include_directories(rkadk PUBLIC "${CMAKE_SOURCE_DIR}/src/record")
target_include_directories(rkadk PUBLIC "${CMAKE_SOURCE_DIR}/src/demuxer")
target_include_directories(rkadk PUBLIC "${CMAKE_SOURCE_DIR}/src/third-party")
target_include_directories(rkadk PUBLIC "${CMAKE_SOURCE_DIR}/src/common")
if(ENABLE_COMMON_FUNCTIONS)
target_link_libraries(rkadk rkmuxer rtsp rkaudio)
endif()
if(ENABLE_PLAYER)
if(NOT ENABLE_COMMON_FUNCTIONS)
target_link_libraries(rkadk rkaudio)
endif()
target_link_libraries(rkadk rkdemuxer)
endif()
if(${RKADK_CHIP} STREQUAL "rv1106")
target_link_libraries(rkadk rockit_full)
elseif(${RKADK_CHIP} STREQUAL "rv1103b")
target_link_libraries(rkadk rockit_full)
else()
target_link_libraries(rkadk rockit)
endif()
if(ENABLE_JPEG_SLICE)
add_definitions(-DJPEG_SLICE)
target_link_libraries(rkadk rkyuvscaler)
endif()
if(ENABLE_STORAGE)
target_link_libraries(rkadk rkfsmk)
if(${RKADK_CHIP} STREQUAL "rv1106" OR ${RKADK_CHIP} STREQUAL "rv1103b" OR ${RKADK_CHIP} STREQUAL "rv1126")
target_link_libraries(rkadk iconv)
endif()
endif()
if(BUILD_STATIC_LIBRARY)
# build static library
add_library(rkadk_static STATIC ${SRC_LIST})
set_target_properties(rkadk_static PROPERTIES LINK_FLAGS -Wl,--version-script,${CMAKE_CURRENT_LIST_DIR}/export.map)
target_include_directories(rkadk_static PUBLIC "${CMAKE_SOURCE_DIR}/src/record")
target_include_directories(rkadk_static PUBLIC "${CMAKE_SOURCE_DIR}/src/demuxer")
target_include_directories(rkadk_static PUBLIC "${CMAKE_SOURCE_DIR}/src/third-party")
target_include_directories(rkadk_static PUBLIC "${CMAKE_SOURCE_DIR}/src/common")
target_link_libraries(rkadk_static libpthread.a libstdc++.a)
if(ENABLE_COMMON_FUNCTIONS)
target_link_libraries(rkadk_static rkmuxer rtsp librkaudio.a librockchip_mpp.a librga.a libdrm.a)
endif()
if(ENABLE_PLAYER)
if(NOT ENABLE_COMMON_FUNCTIONS)
target_link_libraries(rkadk_static librkaudio.a librockchip_mpp.a librga.a libdrm.a)
endif()
target_link_libraries(rkadk_static rkdemuxer)
endif()
if(NOT (${RKADK_CHIP} STREQUAL "rv1106") AND NOT (${RKADK_CHIP} STREQUAL "rv1126") AND NOT (${RKADK_CHIP} STREQUAL "rv1103b"))
target_link_libraries(rkadk_static asound libm.a)
endif()
if(${RKADK_CHIP} STREQUAL "rv1106")
target_link_libraries(rkadk_static librockit_full.a)
else()
target_link_libraries(rkadk_static librockit.a)
endif()
if(ENABLE_JPEG_SLICE)
add_definitions(-DJPEG_SLICE)
target_link_libraries(rkadk_static rkyuvscaler)
endif()
if(ENABLE_STORAGE)
target_link_libraries(rkadk_static rkfsmk)
if(${RKADK_CHIP} STREQUAL "rv1106" OR ${RKADK_CHIP} STREQUAL "rv1103b" OR ${RKADK_CHIP} STREQUAL "rv1126")
target_link_libraries(rkadk_static iconv)
endif()
endif()
endif()
# install target
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
if(BUILD_STATIC_LIBRARY)
install(TARGETS rkadk_static DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
#SET_TARGET_PROPERTIES(rkadk_static PROPERTIES OUTPUT_NAME "rkadk")
endif()