IF(NOT ANDROID)
  MESSAGE( FATAL_ERROR "This project is for ANDROID only" )
ENDIF()

if (BUILD_ANDROID_CAMERA_WRAPPER)
  add_subdirectory(camera_wrapper)
endif()

project(opencv_androidcamera)

INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper )
SET( LIBRARY_DEPS ${LIBRARY_DEPS} log dl )

SET( the_target opencv_androidcamera )

ADD_LIBRARY( ${the_target} STATIC src/camera_activity.cpp )

if (BUILD_SHARED_LIBS)
  add_definitions(-DCVAPI_EXPORTS) 
endif()

TARGET_LINK_LIBRARIES( ${the_target} ${LIBRARY_DEPS} )

SET_TARGET_PROPERTIES(${the_target} PROPERTIES
                      DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
                      OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"
                      DEFINE_SYMBOL "CVAPI_EXPORTS"
                      ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
                      RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
                      )

IF (NOT BUILD_SHARED_LIBS)
  install(TARGETS ${the_target}
    RUNTIME DESTINATION bin COMPONENT main
    ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
    LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
    )
ENDIF()

if (NOT BUILD_ANDROID_CAMERA_WRAPPER)
  file(GLOB camera_wrappers "${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/lib/${ARMEABI_NDK_NAME}/libnative_camera_r*.so")

  foreach(wrapper ${camera_wrappers})
    ADD_CUSTOM_COMMAND(
        TARGET ${the_target}
        POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${LIBRARY_OUTPUT_PATH}"
    )
    get_filename_component(wrapper_name "${wrapper}" NAME)
    install(FILES "${LIBRARY_OUTPUT_PATH}/${wrapper_name}"
          DESTINATION ${OPENCV_LIB_INSTALL_PATH}
          COMPONENT main)
  endforeach()
endif()
