Merge remote-tracking branch 'origin/rettichschnidi' into mingw-port
authorAntonio Ospite <ospite@studenti.unina.it>
Thu, 10 May 2012 13:57:19 +0000 (15:57 +0200)
committerAntonio Ospite <ospite@studenti.unina.it>
Thu, 10 May 2012 13:57:19 +0000 (15:57 +0200)
cmake_modules/FindFFmpeg.cmake
examples/CMakeLists.txt

index 1dc76d5..c88d694 100644 (file)
@@ -27,11 +27,12 @@ MACRO(FFMPEG_FIND varname shortname headername)
     # old version of ffmpeg put header in $prefix/include/[ffmpeg]
     # so try to find header in include directory
     FIND_PATH(FFMPEG_${varname}_INCLUDE_DIRS ${headername}
-        PATHS
+        HINTS
         ${FFMPEG_ROOT}/include
         $ENV{FFMPEG_DIR}/include
         $ENV{OSGDIR}/include
         $ENV{OSG_ROOT}/include
+        PATHS
         ~/Library/Frameworks
         /Library/Frameworks
         /usr/local/include
@@ -49,10 +50,12 @@ MACRO(FFMPEG_FIND varname shortname headername)
     # so try to find lib${shortname}/header in include directory
     IF(NOT FFMPEG_${varname}_INCLUDE_DIRS)
         FIND_PATH(FFMPEG_${varname}_INCLUDE_DIRS lib${shortname}/${headername}
+            HINTS
             ${FFMPEG_ROOT}/include
             $ENV{FFMPEG_DIR}/include
             $ENV{OSGDIR}/include
             $ENV{OSG_ROOT}/include
+            PATHS
             ~/Library/Frameworks
             /Library/Frameworks
             /usr/local/include
@@ -69,11 +72,12 @@ MACRO(FFMPEG_FIND varname shortname headername)
 
     FIND_LIBRARY(FFMPEG_${varname}_LIBRARIES
         NAMES ${shortname}
-        PATHS
+        HINTS
         ${FFMPEG_ROOT}/lib
         $ENV{FFMPEG_DIR}/lib
         $ENV{OSGDIR}/lib
         $ENV{OSG_ROOT}/lib
+        PATHS
         ~/Library/Frameworks
         /Library/Frameworks
         /usr/local/lib
index 234e666..b7941ab 100644 (file)
@@ -1,3 +1,4 @@
+include(CheckSymbolExists)
 add_definitions("-D_POSIX_C_SOURCE=2") # for getopt()
 add_definitions("-D_POSIX_SOURCE") # for sigaction
 add_definitions("-D_BSD_SOURCE") # for strdup
@@ -5,31 +6,46 @@ add_definitions("-D_BSD_SOURCE") # for strdup
 include_directories(${CMAKE_SOURCE_DIR}/src/)
 
 # Build a test app that sends a single picture
-add_executable(picoproj picoproj.c)
-target_link_libraries(picoproj am7xxx)
-install(TARGETS picoproj
-  DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+option(BUILD_PICOPROJ "Build a test app that sends a single picture" TRUE)
+if(BUILD_PICOPROJ)
+  add_executable(picoproj picoproj.c)
+  target_link_libraries(picoproj am7xxx)
+  install(TARGETS picoproj
+    DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+endif()
 
 # Build a more complete example
-find_package(FFmpeg REQUIRED)
+option(BUILD_AM7XXX-PLAY "Build a more complete example: am7xxx-play" TRUE)
+if(BUILD_AM7XXX-PLAY)
+  find_package(FFmpeg REQUIRED)
+  set(CMAKE_REQUIRED_LIBRARIES ${FFMPEG_LIBRARIES}) 
+  set(CMAKE_REQUIRED_INCLUDES ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}) 
+  check_symbol_exists(avformat_open_input
+    "${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}/libavformat/avformat.h"
+    HAVE_AVFORMAT_OPEN_INPUT)
+  if(NOT HAVE_AVFORMAT_OPEN_INPUT)
+    message(FATAL_ERROR
+      "Function avformat_open_input missing. Please use a newer FFmpeg release.")
+  endif()
 
-include_directories(${FFMPEG_LIBAVDEVICE_INCLUDE_DIRS})
-include_directories(${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS})
-include_directories(${FFMPEG_LIBSWSCALE_INCLUDE_DIRS})
+  include_directories(${FFMPEG_LIBAVDEVICE_INCLUDE_DIRS})
+  include_directories(${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS})
+  include_directories(${FFMPEG_LIBSWSCALE_INCLUDE_DIRS})
 
-# xcb is used to retrieve the full screen dimensions when using x11grab
-# as input format
-find_package(XCB)
-if (XCB_FOUND)
-  add_definitions("${LIBXCB_DEFINITIONS} -DHAVE_XCB")
-  include_directories(${LIBXCB_INCLUDE_DIRS})
-endif()
+  # xcb is used to retrieve the full screen dimensions when using x11grab
+  # as input format
+  find_package(XCB)
+  if (XCB_FOUND)
+    add_definitions("${LIBXCB_DEFINITIONS} -DHAVE_XCB")
+    include_directories(${LIBXCB_INCLUDE_DIRS})
+  endif()
 
-add_executable(am7xxx-play am7xxx-play.c)
+  add_executable(am7xxx-play am7xxx-play.c)
 
-target_link_libraries(am7xxx-play am7xxx
-  ${FFMPEG_LIBRARIES}
-  ${FFMPEG_LIBSWSCALE_LIBRARIES}
-  ${LIBXCB_LIBRARIES})
-install(TARGETS am7xxx-play
-  DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+  target_link_libraries(am7xxx-play am7xxx
+    ${FFMPEG_LIBRARIES}
+    ${FFMPEG_LIBSWSCALE_LIBRARIES}
+    ${LIBXCB_LIBRARIES})
+  install(TARGETS am7xxx-play
+    DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+endif()