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