IF (MSVC)
ADD_DEFINITIONS(-DMSVC_VMG_ENABLED /std:c++11)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /vmg")
ENDIF (MSVC)
IF (UNIX AND NOT CYGWIN)
ADD_DEFINITIONS(
-fPIC -DPROFILE
)
if (${OHOS_LITE})
set(CMAKE_CXX_FLAGS "-g -ggdb3 -O0 -Wall -Wl,--disable-new-dtags")
else()
set(CMAKE_CXX_FLAGS "-g -ggdb3 -O0 -std=c++17 -Wall -Wl,--disable-new-dtags")
endif()
ENDIF (UNIX AND NOT CYGWIN)
ADD_DEFINITIONS(
-D__STDC_FORMAT_MACROS
-DHST_PLUGIN_PATH="./"
)
if (WIN32)
add_definitions( -DHST_PLUGIN_FILE_TAIL=".dll" )
else()
add_definitions( -DHST_PLUGIN_FILE_TAIL=".so" )
endif()
IF (CMAKE_CL_64)
ADD_DEFINITIONS(-DWIN64)
ENDIF (CMAKE_CL_64)
include_directories(
${TOP_DIR}/engine
${TOP_DIR}/engine/include
${TOP_DIR}/engine/scene/player
${TOP_DIR}/engine/scene/recorder
${TOP_DIR}/engine/plugin
)
if (AVS3DA_ENABLE)
include_directories(
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_codec/libavs3_common
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_codec/avs3Decoder/include
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_render
)
endif ()
if (NOT ${OHOS_LITE})
message(STATUS "media interface header included.")
include_directories(
${TOP_DIR}/engine/scene/standard
)
endif ()
file(GLOB_RECURSE HISTREAMER_BASE_SRCS
${TOP_DIR}/engine/pipeline/*.cpp
${TOP_DIR}/engine/plugin/common/*.cpp
${TOP_DIR}/engine/plugin/convert/*.cpp
${TOP_DIR}/engine/plugin/core/*.cpp
${TOP_DIR}/engine/plugin/types/*.cpp
${TOP_DIR}/engine/scene/player/internal/*.cpp
${TOP_DIR}/engine/scene/recorder/internal/*.cpp
${TOP_DIR}/engine/scene/common/*.cpp
${TOP_DIR}/engine/foundation/*.cpp
${TOP_DIR}/engine/foundation/utils/*.cpp
)
file(GLOB_RECURSE COMMON_PLUGIN_SRCS
${TOP_DIR}/engine/plugin/plugins/codec_adapter/*.cpp
${TOP_DIR}/engine/plugin/plugins/demuxer/wav_demuxer/*.cpp
${TOP_DIR}/engine/plugin/plugins/demuxer/aac_demuxer/*.cpp
${TOP_DIR}/engine/plugin/plugins/ffmpeg_adapter/*.cpp
${TOP_DIR}/engine/plugin/plugins/sink/sdl/*.cpp
${TOP_DIR}/engine/plugin/plugins/sink/file_sink/*.cpp
${TOP_DIR}/engine/plugin/plugins/source/file_source/*.cpp
${TOP_DIR}/engine/plugin/plugins/minimp3_adapter/*.cpp
${TOP_DIR}/engine/plugin/plugins/minimp3_adapter/*.c
${TOP_DIR}/engine/plugin/plugins/source/http_source/*.cpp
${TOP_DIR}/engine/plugin/plugins/source/http_source_test/*.cpp
${TOP_DIR}/engine/plugin/plugins/source/stream_source/*.cpp
${TOP_DIR}/engine/plugin/plugins/source/std_stream_source/*.cpp
)
if (AVS3DA_ENABLE)
file(GLOB_RECURSE AVS3DA_PLUGIN_SRCS
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_codec/libavs3_common/*.c
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_codec/avs3Decoder/src/*.c
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/avs3_render/*.c
${HISTREAMER_PLUGINS_DIR}/codec/avs3_audio_decoder/*.cpp
)
endif()
if (OHOS_LITE)
message(STATUS "#1 player lite source")
file(GLOB_RECURSE PLAYER_SRCS
${TOP_DIR}/engine/scene/lite/*.cpp
${TOP_DIR}/engine/scene/player/lite/*.cpp
)
message(STATUS "#1 recorder lite source")
file(GLOB_RECURSE RECORDER_SRCS
${TOP_DIR}/engine/scene/lite/*.cpp
${TOP_DIR}/engine/scene/recorder/lite/*.cpp
)
else ()
message(STATUS "player standard source")
file(GLOB_RECURSE PLAYER_SRCS
${TOP_DIR}/engine/scene/standard/*.cpp
${TOP_DIR}/engine/scene/player/standard/*.cpp
)
message(STATUS "recorder standard source")
file(GLOB_RECURSE RECORDER_SRCS
${TOP_DIR}/engine/scene/standard/*.cpp
${TOP_DIR}/engine/scene/recorder/standard/*.cpp
)
file(GLOB_RECURSE PLAT_PLUGIN_SRCS
${TOP_DIR}/engine/plugin/plugins/source/audio_capture/*.cpp
${TOP_DIR}/engine/plugin/plugins/source/video_capture/*.cpp
)
endif ()
set(HISTREAMER_SRCS ${HISTREAMER_BASE_SRCS} ${PLAYER_SRCS} ${RECORDER_SRCS} ${COMMON_PLUGIN_SRCS} ${AVS3DA_PLUGIN_SRCS} ${PLAT_PLUGIN_SRCS})
file(GLOB_RECURSE PLUGINS_STATIC_BUILD_SRCS
${TOP_DIR}/engine/plugin/plugins/source/file_source/*.cpp
)
INCLUDE_DIRECTORIES(BEFORE
${CMAKE_CURRENT_SOURCE_DIR}/../include
${HISTREAMER_BASE_SRCS} ${PLAYER_SRCS} ${RECORDER_SRCS} ${COMMON_PLUGIN_SRCS} ${AVS3DA_PLUGIN_SRCS} ${PLAT_PLUGIN_SRCS} ../../3rdparty/ohos/utils/native/base/include/
)
link_directories(
${ffmpeg_lib_path}
${sdl_lib_path}
${TOP_DIR}/../3rdparty/curl/lib/windows
)
if (WIN32)
link_libraries(
pthread
m
avcodec
avformat
avutil
avfilter
swresample
swscale
SDL2
curl
)
elseif (LINUX_DEMO)
else ()
link_libraries(
log
FFmpeg
SDL2
)
endif ()
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_SHARED_LIBRARY_PREFIX "libmedia_engine_")
set(CMAKE_SHARED_LIBRARY_SUFFIX ".z.so")
add_library(${PROJECT_NAME} SHARED ${HISTREAMER_SRCS} ${PLUGINS_STATIC_BUILD_SRCS}
${3RDPARTY_SRCS})