1*437bfbebSnyanmisaka# vim: syntax=cmake 2*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 3*437bfbebSnyanmisaka# setup mpp codec config first 4*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 5*437bfbebSnyanmisakainclude(codecs.cmake) 6*437bfbebSnyanmisakainclude(vproc.cmake) 7*437bfbebSnyanmisaka 8*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 9*437bfbebSnyanmisaka# add include directory 10*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 11*437bfbebSnyanmisakainclude_directories(inc) 12*437bfbebSnyanmisakainclude_directories(common) 13*437bfbebSnyanmisakainclude_directories(base/inc) 14*437bfbebSnyanmisakainclude_directories(codec/inc) 15*437bfbebSnyanmisakainclude_directories(hal/inc) 16*437bfbebSnyanmisakainclude_directories(hal/common) 17*437bfbebSnyanmisakainclude_directories(vproc/inc) 18*437bfbebSnyanmisaka 19*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 20*437bfbebSnyanmisaka# add mpp base component 21*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 22*437bfbebSnyanmisakaadd_subdirectory(base) 23*437bfbebSnyanmisaka 24*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 25*437bfbebSnyanmisaka# add codec parsers 26*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 27*437bfbebSnyanmisakaadd_subdirectory(codec) 28*437bfbebSnyanmisaka 29*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 30*437bfbebSnyanmisaka# add video processor 31*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 32*437bfbebSnyanmisakaadd_subdirectory(vproc) 33*437bfbebSnyanmisaka 34*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 35*437bfbebSnyanmisaka# add register generation hal 36*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 37*437bfbebSnyanmisakaadd_subdirectory(hal) 38*437bfbebSnyanmisaka 39*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 40*437bfbebSnyanmisaka# add mpp implement 41*437bfbebSnyanmisaka# ---------------------------------------------------------------------------- 42*437bfbebSnyanmisakaset (MPP_SRC 43*437bfbebSnyanmisaka mpp_info.c 44*437bfbebSnyanmisaka mpp.c 45*437bfbebSnyanmisaka mpp_impl.c 46*437bfbebSnyanmisaka mpi.c 47*437bfbebSnyanmisaka ) 48*437bfbebSnyanmisaka 49*437bfbebSnyanmisakaset(MPP_VERSION "0") 50*437bfbebSnyanmisakaset(MPP_ABI_VERSION "1") 51*437bfbebSnyanmisaka 52*437bfbebSnyanmisakaadd_library(${MPP_SHARED} SHARED ${MPP_SRC}) 53*437bfbebSnyanmisakatarget_link_libraries(${MPP_SHARED} ${ASAN_LIB}) 54*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES C_VISIBILITY_PRESET default) 55*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES CXX_VISIBILITY_PRESET default) 56*437bfbebSnyanmisaka 57*437bfbebSnyanmisaka# NOTE: due to legacy libray naming issue we can not support version on Android 58*437bfbebSnyanmisakaif (NOT ANDROID) 59*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES VERSION ${MPP_VERSION}) 60*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES SOVERSION ${MPP_ABI_VERSION}) 61*437bfbebSnyanmisakaendif() 62*437bfbebSnyanmisaka 63*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES FOLDER "mpp") 64*437bfbebSnyanmisakaset_target_properties(${MPP_SHARED} PROPERTIES CLEAN_DIRECT_OUTPUT 1) 65*437bfbebSnyanmisakatarget_link_libraries(${MPP_SHARED} mpp_codec mpp_hal mpp_vproc kmpp 66*437bfbebSnyanmisaka ${BEGIN_WHOLE_ARCHIVE} mpp_base kmpp_base osal ${END_WHOLE_ARCHIVE} ${LIBM}) 67*437bfbebSnyanmisaka 68*437bfbebSnyanmisaka# build static library 69*437bfbebSnyanmisakaadd_library(${MPP_STATIC} STATIC ${MPP_SRC}) 70*437bfbebSnyanmisakaset_target_properties(${MPP_STATIC} PROPERTIES FOLDER "mpp" OUTPUT_NAME "${MPP_SHARED}") 71*437bfbebSnyanmisakaset_target_properties(${MPP_STATIC} PROPERTIES CLEAN_DIRECT_OUTPUT 1) 72*437bfbebSnyanmisakatarget_link_libraries(${MPP_STATIC} mpp_codec mpp_hal mpp_vproc kmpp 73*437bfbebSnyanmisaka ${BEGIN_WHOLE_ARCHIVE} mpp_base kmpp_base osal ${END_WHOLE_ARCHIVE}) 74*437bfbebSnyanmisaka 75*437bfbebSnyanmisakaadd_custom_command(TARGET ${MPP_STATIC} POST_BUILD 76*437bfbebSnyanmisaka COMMAND ${CMAKE_AR} x $<TARGET_FILE:${MPP_STATIC}> 77*437bfbebSnyanmisaka COMMAND ${CMAKE_AR} rcs lib${MPP_SHARED}.a *.o 78*437bfbebSnyanmisaka COMMAND ${CMAKE_SOURCE_DIR}/merge_static_lib.sh ${CMAKE_BINARY_DIR} ${MPP_SHARED} 79*437bfbebSnyanmisaka COMMAND ${CMAKE_STRIP} --strip-debug lib${MPP_SHARED}.a 80*437bfbebSnyanmisaka COMMAND pwd 81*437bfbebSnyanmisaka COMMAND rm *.o 82*437bfbebSnyanmisaka ) 83*437bfbebSnyanmisaka 84*437bfbebSnyanmisakaadd_subdirectory(legacy) 85*437bfbebSnyanmisaka 86*437bfbebSnyanmisakainstall(TARGETS ${MPP_SHARED} LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") 87*437bfbebSnyanmisakainstall(TARGETS ${MPP_STATIC} ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") 88