1fa7767c5Sopenharmony_ci
2fa7767c5Sopenharmony_ciinclude(${TOP_DIR}/engine/CMakeLists.txt)
3fa7767c5Sopenharmony_ci
4fa7767c5Sopenharmony_ciset(GTEST_DIRS ${THIRD_PARTY_DIR}/gtest)
5fa7767c5Sopenharmony_ciset(MOCKCPP_DIR ${THIRD_PARTY_DIR}/mockcpp)
6fa7767c5Sopenharmony_ci
7fa7767c5Sopenharmony_ciinclude_directories(
8fa7767c5Sopenharmony_ci        ${GTEST_ROOT_DIR}/include
9fa7767c5Sopenharmony_ci        ${MOCKCPP_DIR}/include
10fa7767c5Sopenharmony_ci)
11fa7767c5Sopenharmony_ci
12fa7767c5Sopenharmony_ciset(ffmpeg_inc_path ${THIRD_PARTY_DIR}/ffmpeg/windows/include)
13fa7767c5Sopenharmony_ciset(sdl_inc_path ${THIRD_PARTY_DIR}/SDL2.0/include)
14fa7767c5Sopenharmony_ci
15fa7767c5Sopenharmony_ciif (MINGW)
16fa7767c5Sopenharmony_ciset(ffmpeg_lib_path ${THIRD_PARTY_DIR}/ffmpeg/windows/lib)
17fa7767c5Sopenharmony_ciset(sdl_lib_path ${THIRD_PARTY_DIR}/SDL2.0/windows/lib/x64)
18fa7767c5Sopenharmony_ciset(gtest_lib_path ${GTEST_ROOT_DIR}/mingw64/lib/)
19fa7767c5Sopenharmony_cielse()
20fa7767c5Sopenharmony_ci    set(ffmpeg_lib_path ${THIRD_PARTY_DIR}/ffmpeg/linux/lib)
21fa7767c5Sopenharmony_ci    set(ffmpeg_inc_path ${THIRD_PARTY_DIR}/ffmpeg/linux/include)
22fa7767c5Sopenharmony_ci    set(sdl_lib_path ${THIRD_PARTY_DIR}/SDL2.0/linux/lib)
23fa7767c5Sopenharmony_ci    set(sdl_inc_path ${THIRD_PARTY_DIR}/SDL2.0/linux/include)
24fa7767c5Sopenharmony_ci    set(gtest_lib_path ${THIRD_PARTY_DIR}/gtest/linux/lib)
25fa7767c5Sopenharmony_ci    set(curl_lib_path ${THIRD_PARTY_DIR}/curl/lib/linux)
26fa7767c5Sopenharmony_ci    message(STATUS "ut ${ffmpeg_lib_path}")
27fa7767c5Sopenharmony_ciendif()
28fa7767c5Sopenharmony_ci
29fa7767c5Sopenharmony_ciinclude_directories(
30fa7767c5Sopenharmony_ci        ${ffmpeg_inc_path}
31fa7767c5Sopenharmony_ci        ${sdl_inc_path}
32fa7767c5Sopenharmony_ci)
33fa7767c5Sopenharmony_cilink_directories(
34fa7767c5Sopenharmony_ci        ${ffmpeg_lib_path}
35fa7767c5Sopenharmony_ci        ${sdl_lib_path}
36fa7767c5Sopenharmony_ci        ${gtest_lib_path}
37fa7767c5Sopenharmony_ci        ${curl_lib_path}
38fa7767c5Sopenharmony_ci)
39fa7767c5Sopenharmony_ci
40fa7767c5Sopenharmony_cifile(GLOB UT_TEST_SRCS ./*.cpp)
41fa7767c5Sopenharmony_ci
42fa7767c5Sopenharmony_cifile(GLOB UT_TEST_PLUGINS ./plugins/*.cpp)
43fa7767c5Sopenharmony_ci
44fa7767c5Sopenharmony_ciset(SRC
45fa7767c5Sopenharmony_ci        ${HISTREAMER_SRCS}
46fa7767c5Sopenharmony_ci        ${UT_TEST_SRCS}
47fa7767c5Sopenharmony_ci        ${UT_TEST_PLUGINS}
48fa7767c5Sopenharmony_ci        ${3RDPARTY_SRCS}
49fa7767c5Sopenharmony_ci        ../main.cpp
50fa7767c5Sopenharmony_ci        )
51fa7767c5Sopenharmony_ci
52fa7767c5Sopenharmony_ciadd_executable(histreamer_unittest ${SRC})
53fa7767c5Sopenharmony_ci
54fa7767c5Sopenharmony_cilink_directories(
55fa7767c5Sopenharmony_ci        ${MOCKCPP_DIR}/lib/
56fa7767c5Sopenharmony_ci        /usr/local/lib
57fa7767c5Sopenharmony_ci)
58fa7767c5Sopenharmony_ci
59fa7767c5Sopenharmony_citarget_compile_definitions(histreamer_unittest PRIVATE UNIT_TEST)
60fa7767c5Sopenharmony_ci
61fa7767c5Sopenharmony_ciif (MSVC)
62fa7767c5Sopenharmony_ci    target_link_libraries(histreamer_unittest
63fa7767c5Sopenharmony_ci            ${GTEST_ROOT_DIR}/lib/gtestd.lib
64fa7767c5Sopenharmony_ci            ${MOCKCPP_DIR}/lib/mockcpp.lib
65fa7767c5Sopenharmony_ci            pthreadVC2.lib
66fa7767c5Sopenharmony_ci            )
67fa7767c5Sopenharmony_cielseif (MINGW)
68fa7767c5Sopenharmony_ci    set(ffmpeg_path ${THIRD_PARTY_DIR}/ffmpeg/windows)
69fa7767c5Sopenharmony_ci    set(sdl_path ${THIRD_PARTY_DIR}/SDL2.0/windows)
70fa7767c5Sopenharmony_ci    target_link_libraries(histreamer_unittest
71fa7767c5Sopenharmony_ci            # dl
72fa7767c5Sopenharmony_ci            ${sdl_path}/lib/x64/SDL2.lib
73fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libavcodec.dll.a
74fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libswresample.dll.a
75fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libavformat.dll.a
76fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libavutil.dll.a
77fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libavdevice.dll.a
78fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libavfilter.dll.a
79fa7767c5Sopenharmony_ci            ${ffmpeg_path}/lib/libswscale.dll.a
80fa7767c5Sopenharmony_ci            gtest
81fa7767c5Sopenharmony_ci            ${MOCKCPP_DIR}/lib/libmockcpp_mingw8.a
82fa7767c5Sopenharmony_ci            )
83fa7767c5Sopenharmony_ci    message(STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
84fa7767c5Sopenharmony_ci    file(GLOB ffmpeg_shared_libraries ${ffmpeg_path}/bin/*.dll)
85fa7767c5Sopenharmony_ci    file(GLOB sdl_shared_libraries ${sdl_path}/lib/x64/*.dll)
86fa7767c5Sopenharmony_ci    file(COPY ${ffmpeg_shared_libraries} DESTINATION ${CMAKE_BINARY_DIR}/_deps/media_foundation-build/test/unittest)
87fa7767c5Sopenharmony_ci    file(COPY ${sdl_shared_libraries} DESTINATION ${CMAKE_BINARY_DIR}/_deps/media_foundation-build/test/unittest)
88fa7767c5Sopenharmony_cielse ()
89fa7767c5Sopenharmony_ci    target_link_libraries(histreamer_unittest
90fa7767c5Sopenharmony_ci            dl
91fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libavformat.a
92fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libavcodec.a
93fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libavdevice.a
94fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libavfilter.a
95fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libavutil.a
96fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libswscale.a
97fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/libswresample.a
98fa7767c5Sopenharmony_ci            ${ffmpeg_lib_path}/liblzma.a
99fa7767c5Sopenharmony_ci            m
100fa7767c5Sopenharmony_ci            /usr/lib/x86_64-linux-gnu/libz.so.1
101fa7767c5Sopenharmony_ci            SDL2-2.0
102fa7767c5Sopenharmony_ci            gtest
103fa7767c5Sopenharmony_ci            gtest_main
104fa7767c5Sopenharmony_ci            pthread
105fa7767c5Sopenharmony_ci            ${MOCKCPP_DIR}/lib/libmockcpp.a
106fa7767c5Sopenharmony_ci            curl
107fa7767c5Sopenharmony_ci            )
108fa7767c5Sopenharmony_ciendif ()
109fa7767c5Sopenharmony_ciadd_test(Test histreamer_ut)
110fa7767c5Sopenharmony_cienable_testing()
111