Fix issue 1) not recognizes some usb device, 2) reconnect when ffmpeg encoder error
[rtmpclient.git] / app / src / main / jni / libuvc / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8)
2 project(libuvc)
3
4 if (NOT CMAKE_BUILD_TYPE)
5   message(STATUS "No build type selected, default to Release")
6   set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
7 endif ()
8
9 if (NOT CMAKE_BUILD_TARGET)
10   message(STATUS "No target type selected, default to shared library")
11   set(CMAKE_BUILD_TARGET "Shared" CACHE STRING "" FORCE)
12 endif()
13
14 set(libuvc_VERSION_MAJOR 0)
15 set(libuvc_VERSION_MINOR 0)
16 set(libuvc_VERSION_PATCH 4)
17 set(libuvc_VERSION ${libuvc_VERSION_MAJOR}.${libuvc_VERSION_MINOR}.${libuvc_VERSION_PATCH})
18
19 find_library(LIBUSB_LIBRARY_NAMES usb-1.0
20         PATHS /opt/local/lib)
21
22 find_path(LIBUSB_INCLUDE_DIR libusb-1.0/libusb.h
23         PATHS /opt/local/include)
24
25 # Try to find JPEG using a module or pkg-config. If that doesn't work, search for the header.
26 find_package(jpeg QUIET)
27 if(NOT JPEG_FOUND)
28   find_path(JPEG_INCLUDE_DIR jpeglib.h)
29   if(JPEG_INCLUDE_DIR)
30     set(JPEG_FOUND ON)
31     set(JPEG_LIBRARIES -ljpeg)
32   endif()
33 endif()
34
35 SET(CMAKE_C_FLAGS_DEBUG "-g -DUVC_DEBUGGING")
36
37 SET(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/libuvc" CACHE PATH
38         "Installation directory for CMake files")
39
40 SET(SOURCES src/ctrl.c src/device.c src/diag.c
41            src/frame.c src/init.c src/stream.c
42            src/misc.c)
43
44 include_directories(
45   ${libuvc_SOURCE_DIR}/include
46   ${libuvc_BINARY_DIR}/include
47   ${LIBUSB_INCLUDE_DIR}
48 )
49
50 if(JPEG_FOUND)
51   message(STATUS "Building libuvc with JPEG support.")
52   include_directories(${JPEG_INCLUDE_DIR})
53   SET(HAVE_JPEG TRUE)
54   SET(SOURCES ${SOURCES} src/frame-mjpeg.c)
55 else()
56   message(WARNING "JPEG not found. libuvc will not support JPEG decoding.")
57 endif()
58
59 if(${CMAKE_BUILD_TARGET} MATCHES "Shared")
60   add_library(uvc SHARED ${SOURCES})
61 elseif(${CMAKE_BUILD_TARGET} MATCHES "Static")
62   add_library(uvc STATIC ${SOURCES})
63 else()
64   message( FATAL_ERROR "Invalid build type ${CMAKE_BUILD_TARGET}" )
65 endif()
66
67 configure_file(include/libuvc/libuvc_config.h.in
68   ${PROJECT_BINARY_DIR}/include/libuvc/libuvc_config.h @ONLY)
69
70 set_target_properties(uvc PROPERTIES
71   PUBLIC_HEADER "include/libuvc/libuvc.h;${libuvc_BINARY_DIR}/include/libuvc/libuvc_config.h" )
72
73 if(JPEG_FOUND)
74   target_link_libraries (uvc ${JPEG_LIBRARIES})
75 endif(JPEG_FOUND)
76
77 target_link_libraries(uvc ${LIBUSB_LIBRARY_NAMES})
78
79 #add_executable(test src/test.c)
80 #target_link_libraries(test uvc ${LIBUSB_LIBRARY_NAMES} opencv_highgui
81 #  opencv_core)
82
83 install(TARGETS uvc
84   EXPORT libuvcTargets
85   LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
86   ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
87   PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include/libuvc"
88 )
89
90 export(TARGETS uvc
91   FILE "${PROJECT_BINARY_DIR}/libuvcTargets.cmake")
92 export(PACKAGE libuvc)
93
94 set(CONF_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include")
95 set(CONF_LIBRARY "${CMAKE_INSTALL_PREFIX}/lib/libuvc.so")
96
97 configure_file(libuvcConfig.cmake.in ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libuvcConfig.cmake)
98
99 configure_file(libuvcConfigVersion.cmake.in ${PROJECT_BINARY_DIR}/libuvcConfigVersion.cmake @ONLY)
100
101 install(FILES
102   "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libuvcConfig.cmake"
103   "${PROJECT_BINARY_DIR}/libuvcConfigVersion.cmake"
104   DESTINATION "${INSTALL_CMAKE_DIR}")
105
106 install(EXPORT libuvcTargets
107   DESTINATION "${INSTALL_CMAKE_DIR}")