am7xxx-play: add a fallback definition for ENOTSUP
[libam7xxx.git] / examples / CMakeLists.txt
1 include(CheckSymbolExists)
2 add_definitions("-D_POSIX_C_SOURCE=2") # for getopt()
3 add_definitions("-D_POSIX_SOURCE") # for sigaction
4 add_definitions("-D_BSD_SOURCE") # for strdup
5
6 include_directories(${CMAKE_SOURCE_DIR}/src/)
7
8 # Build a test app that sends a single picture
9 option(BUILD_PICOPROJ "Build a test app that sends a single picture" TRUE)
10 if(BUILD_PICOPROJ)
11   add_executable(picoproj picoproj.c)
12   target_link_libraries(picoproj am7xxx)
13   install(TARGETS picoproj
14     DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
15 endif()
16
17 # Build a more complete example
18 option(BUILD_AM7XXX-PLAY "Build a more complete example: am7xxx-play" TRUE)
19 if(BUILD_AM7XXX-PLAY)
20   find_package(FFmpeg REQUIRED)
21   set(CMAKE_REQUIRED_LIBRARIES ${FFMPEG_LIBRARIES}) 
22   set(CMAKE_REQUIRED_INCLUDES ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}) 
23   check_symbol_exists(avformat_open_input
24     "${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}/libavformat/avformat.h"
25     HAVE_AVFORMAT_OPEN_INPUT)
26   if(NOT HAVE_AVFORMAT_OPEN_INPUT)
27     message(FATAL_ERROR
28       "Function avformat_open_input missing. Please use a newer FFmpeg release.")
29   endif()
30
31   include_directories(${FFMPEG_LIBAVDEVICE_INCLUDE_DIRS})
32   include_directories(${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS})
33   include_directories(${FFMPEG_LIBSWSCALE_INCLUDE_DIRS})
34
35   # xcb is used to retrieve the full screen dimensions when using x11grab
36   # as input format
37   find_package(XCB)
38   if (XCB_FOUND)
39     add_definitions("${LIBXCB_DEFINITIONS} -DHAVE_XCB")
40     include_directories(${LIBXCB_INCLUDE_DIRS})
41   endif()
42
43   add_executable(am7xxx-play am7xxx-play.c)
44
45   target_link_libraries(am7xxx-play am7xxx
46     ${FFMPEG_LIBRARIES}
47     ${FFMPEG_LIBSWSCALE_LIBRARIES}
48     ${LIBXCB_LIBRARIES})
49   install(TARGETS am7xxx-play
50     DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
51 endif()
52
53 # Build a simple usb_mode_switch clone for am7xxx devices
54 option(BUILD_AM7XXX_MODE_SWITCH "Build a simple usb_mode_switch clone for am7xxx devices" TRUE)
55 if(BUILD_AM7XXX_MODE_SWITCH)
56
57   find_package(libusb-1.0 REQUIRED)
58   include_directories(${LIBUSB_1_INCLUDE_DIRS})
59
60   add_executable(am7xxx_mode_switch am7xxx_mode_switch.c)
61   target_link_libraries(am7xxx_mode_switch ${LIBUSB_1_LIBRARIES})
62   install(TARGETS am7xxx_mode_switch
63     DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
64 endif()
65