mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-19 15:34:32 +08:00
chore[cmake]: compile both dynamic and static libraries
Signed-off-by: ctf <ctf@rock-chips.com> Change-Id: Id36494f2f014207fbe749680420426a3ce8e22c1
This commit is contained in:
@@ -49,7 +49,6 @@ set (MPP_SRC
|
|||||||
set(MPP_VERSION "0")
|
set(MPP_VERSION "0")
|
||||||
set(MPP_ABI_VERSION "1")
|
set(MPP_ABI_VERSION "1")
|
||||||
|
|
||||||
if(BUILD_SHARED_LIBS)
|
|
||||||
add_library(${MPP_SHARED} SHARED ${MPP_SRC})
|
add_library(${MPP_SHARED} SHARED ${MPP_SRC})
|
||||||
target_link_libraries(${MPP_SHARED} ${ASAN_LIB})
|
target_link_libraries(${MPP_SHARED} ${ASAN_LIB})
|
||||||
set_target_properties(${MPP_SHARED} PROPERTIES C_VISIBILITY_PRESET default)
|
set_target_properties(${MPP_SHARED} PROPERTIES C_VISIBILITY_PRESET default)
|
||||||
@@ -60,26 +59,30 @@ if(BUILD_SHARED_LIBS)
|
|||||||
set_target_properties(${MPP_SHARED} PROPERTIES VERSION ${MPP_VERSION})
|
set_target_properties(${MPP_SHARED} PROPERTIES VERSION ${MPP_VERSION})
|
||||||
set_target_properties(${MPP_SHARED} PROPERTIES SOVERSION ${MPP_ABI_VERSION})
|
set_target_properties(${MPP_SHARED} PROPERTIES SOVERSION ${MPP_ABI_VERSION})
|
||||||
endif()
|
endif()
|
||||||
else()
|
|
||||||
add_library(${MPP_SHARED} STATIC ${MPP_SRC})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_target_properties(${MPP_SHARED} PROPERTIES FOLDER "mpp")
|
set_target_properties(${MPP_SHARED} PROPERTIES FOLDER "mpp")
|
||||||
set_target_properties(${MPP_SHARED} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
set_target_properties(${MPP_SHARED} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||||
target_link_libraries(${MPP_SHARED} mpp_codec mpp_hal mpp_vproc
|
target_link_libraries(${MPP_SHARED} mpp_codec mpp_hal mpp_vproc
|
||||||
${BEGIN_WHOLE_ARCHIVE} mpp_base ${END_WHOLE_ARCHIVE})
|
${BEGIN_WHOLE_ARCHIVE} mpp_base ${END_WHOLE_ARCHIVE})
|
||||||
|
|
||||||
|
# build static library
|
||||||
|
add_library(${MPP_STATIC} STATIC ${MPP_SRC})
|
||||||
|
set_target_properties(${MPP_STATIC} PROPERTIES FOLDER "mpp" OUTPUT_NAME "${MPP_SHARED}")
|
||||||
|
set_target_properties(${MPP_STATIC} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
target_link_libraries(${MPP_STATIC} mpp_codec mpp_hal mpp_vproc
|
||||||
|
${BEGIN_WHOLE_ARCHIVE} mpp_base ${END_WHOLE_ARCHIVE})
|
||||||
|
|
||||||
|
add_custom_command(TARGET ${MPP_STATIC} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_AR} x $<TARGET_FILE:${MPP_STATIC}>
|
||||||
|
COMMAND ${CMAKE_AR} x $<TARGET_FILE:osal>
|
||||||
|
COMMAND ${CMAKE_AR} x $<TARGET_FILE:mpp_base>
|
||||||
|
COMMAND ${CMAKE_AR} rcs lib${MPP_SHARED}.a *.o
|
||||||
|
COMMAND ${CMAKE_STRIP} --strip-debug lib${MPP_SHARED}.a
|
||||||
|
COMMAND pwd
|
||||||
|
COMMAND rm *.o
|
||||||
|
)
|
||||||
|
|
||||||
add_subdirectory(legacy)
|
add_subdirectory(legacy)
|
||||||
|
|
||||||
if(BUILD_SHARED_LIBS)
|
|
||||||
install(TARGETS ${MPP_SHARED} LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
install(TARGETS ${MPP_SHARED} LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||||
else()
|
install(TARGETS ${MPP_STATIC} ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||||
add_custom_command(TARGET ${MPP_SHARED} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_SOURCE_DIR}/merge_static_lib.sh ${CMAKE_BINARY_DIR} ${MPP_SHARED}_merged
|
|
||||||
COMMAND ${CMAKE_STRIP} --strip-debug ${CMAKE_BINARY_DIR}/mpp/lib${MPP_SHARED}.a
|
|
||||||
COMMENT "Building a merged static lib."
|
|
||||||
)
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/mpp/lib${MPP_SHARED}_merged.a TYPE LIB RENAME lib${MPP_SHARED}.a)
|
|
||||||
endif()
|
|
||||||
|
Reference in New Issue
Block a user