CMakeLists.txt 1.68 KB
Newer Older
xzl committed
1 2 3 4
#查找SDL是否安装
find_package(SDL QUIET)
if(SDL_FOUND)
include_directories(${SDL_INCLUDE_DIR})
xiongziliang committed
5
list(APPEND  LINK_LIB_LIST ${SDL_LIBRARY})
xzl committed
6 7 8 9 10 11 12
message(STATUS "找到SDL")
endif(SDL_FOUND)

#查找ffmpeg/libutil是否安装
find_package(AVUTIL QUIET)
if(AVUTIL_FOUND)
include_directories(${AVUTIL_INCLUDE_DIR})
xiongziliang committed
13
list(APPEND  LINK_LIB_LIST ${AVUTIL_LIBRARIES})
xzl committed
14 15 16 17 18 19 20
message(STATUS "找到libutil")
endif(AVUTIL_FOUND)

#查找ffmpeg/libavcodec是否安装
find_package(AVCODEC QUIET)
if(AVCODEC_FOUND)
include_directories(${AVCODEC_INCLUDE_DIR})
xiongziliang committed
21
list(APPEND  LINK_LIB_LIST ${AVCODEC_LIBRARIES})
xzl committed
22 23 24
message(STATUS "找到libavcodec")
endif(AVCODEC_FOUND)

25
aux_source_directory(. TEST_SRC_LIST)
xzl committed
26 27 28 29 30 31 32 33
#如果ffmpeg/libavcodec ffmpeg/libavcodec SDL 都安装了则编译 test_player
if(SDL_FOUND AND AVCODEC_FOUND AND AVUTIL_FOUND)
message(STATUS "test_player被编译")
else(SDL_FOUND AND AVCODEC_FOUND AND AVUTIL_FOUND)
message(STATUS "test_player被忽略,如需编译,请先安装sdl ffmpeg/libavcodec ffmpeg/libavcodec")
list(REMOVE_ITEM TEST_SRC_LIST ./test_player.cpp)
endif(SDL_FOUND AND AVCODEC_FOUND AND AVUTIL_FOUND)

34 35 36 37 38
foreach(TEST_SRC ${TEST_SRC_LIST})
STRING(REGEX REPLACE ".cpp" "" TEST_EXE_NAME ${TEST_SRC})
STRING(REGEX REPLACE "./" "" TEST_EXE_NAME ${TEST_EXE_NAME})
message(STATUS "add test program:${TEST_EXE_NAME}")
add_executable(${TEST_EXE_NAME} ${TEST_SRC})
39 40 41

if(ANDROID)
target_link_libraries(${TEST_EXE_NAME} ${CMAKE_PROJECT_NAME}_static ${LINK_LIB_LIST})
42 43 44 45 46
elseif(WIN32)
target_link_libraries(${TEST_EXE_NAME} ${CMAKE_PROJECT_NAME}_shared ${LINK_LIB_LIST})
else()
target_link_libraries(${TEST_EXE_NAME} ${CMAKE_PROJECT_NAME}_shared ${LINK_LIB_LIST} pthread)
endif()
47

48
endforeach(TEST_SRC ${TEST_SRC_LIST})
xzl committed
49 50 51 52 53 54 55 56 57 58 59 60 61 62