ZLMediaKit/Android/app/src/main/cpp/CMakeLists.txt

112 lines
3.6 KiB
CMake
Raw Normal View History

2019-09-24 15:21:20 +08:00
project(ZLMediaKit)
cmake_minimum_required(VERSION 3.1.3)
#使能c++11
set(CMAKE_CXX_STANDARD 11)
2019-05-10 13:25:22 +08:00
#设置生成的so动态库最后输出的路径
2019-09-11 09:21:10 +08:00
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs_export/${ANDROID_ABI})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs_export/${ANDROID_ABI})
2019-05-10 13:25:22 +08:00
2019-09-24 15:21:20 +08:00
LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH})
2019-05-10 13:25:22 +08:00
#设置工程源码根目录
2019-09-11 09:21:10 +08:00
set(ZLMediaKit_Root ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../)
set(JNI_Root ${CMAKE_CURRENT_SOURCE_DIR})
2019-05-10 13:25:22 +08:00
set(ToolKit_Root ${ZLMediaKit_Root}/3rdpart/ZLToolKit/src)
set(MediaKit_Root ${ZLMediaKit_Root}/src)
2019-09-24 15:21:20 +08:00
set(MediaServer_Root ${ZLMediaKit_Root}/3rdpart/media-server/)
2019-05-10 13:25:22 +08:00
#设置头文件目录
INCLUDE_DIRECTORIES(${ToolKit_Root})
INCLUDE_DIRECTORIES(${MediaKit_Root})
INCLUDE_DIRECTORIES(${JNI_Root})
#收集源代码
file(GLOB ToolKit_src_list ${ToolKit_Root}/*/*.cpp ${ToolKit_Root}/*/*.h ${ToolKit_Root}/*/*.c)
file(GLOB MediaKit_src_list ${MediaKit_Root}/*/*.cpp ${MediaKit_Root}/*/*.h ${MediaKit_Root}/*/*.c)
file(GLOB JNI_src_list ${JNI_Root}/*.cpp ${JNI_Root}/*.h)
#去除win32的适配代码
2019-09-24 15:21:20 +08:00
if (NOT WIN32)
list(REMOVE_ITEM ToolKit_src_list ${ToolKit_Root}/win32/getopt.c)
else()
#防止Windows.h包含Winsock.h
add_definitions(-DWIN32_LEAN_AND_MEAN -DMP4V2_NO_STDINT_DEFS)
endif ()
2019-05-10 13:25:22 +08:00
set(ENABLE_HLS true)
2019-09-24 15:21:20 +08:00
set(ENABLE_OPENSSL true)
2019-05-10 13:25:22 +08:00
set(ENABLE_MYSQL false)
set(ENABLE_FAAC false)
set(ENABLE_X264 false)
2020-04-03 20:45:58 +08:00
set(ENABLE_MP4 true)
2019-05-10 13:25:22 +08:00
#添加两个静态库
if(ENABLE_HLS)
message(STATUS "ENABLE_HLS defined")
add_definitions(-DENABLE_HLS)
set(LINK_LIB_LIST zlmediakit zltoolkit mpeg)
else()
set(LINK_LIB_LIST zlmediakit zltoolkit)
endif()
2020-04-03 20:45:58 +08:00
if(ENABLE_MP4)
message(STATUS "ENABLE_MP4 defined")
add_definitions(-DENABLE_MP4)
2019-09-24 15:21:20 +08:00
list(APPEND LINK_LIB_LIST mov flv)
endif()
if (ENABLE_OPENSSL)
#openssl
add_definitions(-DENABLE_OPENSSL)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/../../../libs/${ANDROID_ABI}/include)
LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/../../../libs/${ANDROID_ABI}/)
list(APPEND LINK_LIB_LIST ssl crypto)
2019-05-10 13:25:22 +08:00
endif ()
#libmpeg
if(ENABLE_HLS)
aux_source_directory(${MediaServer_Root}/libmpeg/include src_mpeg)
aux_source_directory(${MediaServer_Root}/libmpeg/source src_mpeg)
include_directories(${MediaServer_Root}/libmpeg/include)
add_library(mpeg STATIC ${src_mpeg})
2021-06-29 17:44:35 +08:00
if(MSVC)
2019-09-24 15:21:20 +08:00
set_target_properties(mpeg PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
2021-06-29 17:44:35 +08:00
endif()
2019-09-24 15:21:20 +08:00
endif()
2020-04-03 20:45:58 +08:00
if(ENABLE_MP4)
2019-09-24 15:21:20 +08:00
aux_source_directory(${MediaServer_Root}/libmov/include src_mov)
aux_source_directory(${MediaServer_Root}/libmov/source src_mov)
include_directories(${MediaServer_Root}/libmov/include)
aux_source_directory(${MediaServer_Root}/libflv/include src_flv)
aux_source_directory(${MediaServer_Root}/libflv/source src_flv)
include_directories(${MediaServer_Root}/libflv/include)
add_library(mov STATIC ${src_mov})
add_library(flv STATIC ${src_flv})
2021-06-29 17:44:35 +08:00
if(MSVC)
2019-09-24 15:21:20 +08:00
set_target_properties(mov flv PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
2021-06-29 17:44:35 +08:00
endif()
2019-05-10 13:25:22 +08:00
endif()
#添加库
add_library(zltoolkit STATIC ${ToolKit_src_list})
add_library(zlmediakit STATIC ${MediaKit_src_list})
add_library(zlmediakit_jni SHARED ${JNI_src_list})
2019-09-24 15:21:20 +08:00
add_definitions(-DDISABLE_MAIN)
#添加json以及MediaServer相关代码
include_directories(${ZLMediaKit_Root}/3rdpart)
include_directories(${ZLMediaKit_Root}/server)
file(GLOB jsoncpp_src_list ${ZLMediaKit_Root}/3rdpart/jsoncpp/*.cpp)
file(GLOB MediaServer_src_list ${ZLMediaKit_Root}/server/*.cpp)
add_library(jsoncpp STATIC ${jsoncpp_src_list})
add_library(MediaServer STATIC ${MediaServer_src_list})
2019-05-10 13:25:22 +08:00
#链接
2019-09-24 15:21:20 +08:00
target_link_libraries(zlmediakit_jni MediaServer jsoncpp ${LINK_LIB_LIST} log z)