|
|
|
@@ -7,7 +7,7 @@ endif()
|
|
|
|
|
|
|
|
|
|
set(the_description "The java bindings")
|
|
|
|
|
ocv_add_module(java BINDINGS opencv_core opencv_imgproc OPTIONAL opencv_objdetect opencv_features2d opencv_video opencv_highgui opencv_ml opencv_calib3d opencv_photo opencv_nonfree)
|
|
|
|
|
ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cpp")
|
|
|
|
|
ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/generator/src/cpp")
|
|
|
|
|
|
|
|
|
|
# get list of modules to wrap
|
|
|
|
|
string(REPLACE "opencv_" "" OPENCV_JAVA_MODULES "${OPENCV_MODULE_${the_module}_REQ_DEPS};${OPENCV_MODULE_${the_module}_OPT_DEPS}")
|
|
|
|
@@ -17,10 +17,10 @@ foreach(module ${OPENCV_JAVA_MODULES})
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
set(GEN_JAVA "${CMAKE_CURRENT_SOURCE_DIR}/gen_java.py")
|
|
|
|
|
set(GEN_JAVA "${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_java.py")
|
|
|
|
|
set(HDR_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/../python/src2/hdr_parser.py")
|
|
|
|
|
set(GEN_JAVADOC "${CMAKE_CURRENT_SOURCE_DIR}/gen_javadoc.py")
|
|
|
|
|
set(RST_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/rst_parser.py")
|
|
|
|
|
set(GEN_JAVADOC "${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_javadoc.py")
|
|
|
|
|
set(RST_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/generator/rst_parser.py")
|
|
|
|
|
|
|
|
|
|
# add dependencies to cmake (we should rerun cmake if any of these scripts is modified)
|
|
|
|
|
configure_file("${GEN_JAVA}" "${OpenCV_BINARY_DIR}/junk/gen_java.junk" COPYONLY)
|
|
|
|
@@ -33,8 +33,8 @@ set(generated_java_sources "")
|
|
|
|
|
# setup raw java and cpp files generation (without javadoc and at temporary location)
|
|
|
|
|
foreach(module ${OPENCV_JAVA_MODULES})
|
|
|
|
|
# get list of module headers
|
|
|
|
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/config/${module}.filelist")
|
|
|
|
|
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/config/${module}.filelist" module_headers)
|
|
|
|
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/generator/config/${module}.filelist")
|
|
|
|
|
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/generator/config/${module}.filelist" module_headers)
|
|
|
|
|
ocv_list_add_prefix(module_headers "${OPENCV_MODULE_opencv_${module}_LOCATION}/")
|
|
|
|
|
else()
|
|
|
|
|
set(module_headers "${OPENCV_MODULE_opencv_${module}_HEADERS}")
|
|
|
|
@@ -78,9 +78,10 @@ foreach(module ${OPENCV_JAVA_MODULES})
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
# get handwritten files used for wrappers generation
|
|
|
|
|
file(GLOB handwrittren_h_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.hpp")
|
|
|
|
|
file(GLOB handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.cpp")
|
|
|
|
|
file(GLOB handwrittren_java_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/java/*.java")
|
|
|
|
|
file(GLOB handwrittren_h_sources "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/cpp/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/cpp/*.hpp")
|
|
|
|
|
file(GLOB handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/cpp/*.cpp")
|
|
|
|
|
file(GLOB handwrittren_java_sources "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/java/*.java")
|
|
|
|
|
file(GLOB handwrittren_aidl_sources "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/java/*.aidl")
|
|
|
|
|
|
|
|
|
|
# remove handwritten java files for disabled modules
|
|
|
|
|
foreach(jfile ${handwrittren_java_sources})
|
|
|
|
@@ -92,7 +93,7 @@ endforeach()
|
|
|
|
|
|
|
|
|
|
# remove VideoCapture wrapper if highgui is disabled
|
|
|
|
|
if(NOT HAVE_opencv_highgui)
|
|
|
|
|
list(REMOVE_ITEM handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/VideoCapture.cpp")
|
|
|
|
|
list(REMOVE_ITEM handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/cpp/VideoCapture.cpp")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# create list of javadoc documented files
|
|
|
|
@@ -110,7 +111,7 @@ set(java_documented_headers_deps ${handwrittren_java_sources} ${generated_java_s
|
|
|
|
|
#TODO: pass list of modules
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT ${documented_java_files}
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} "${GEN_JAVADOC}" "${CMAKE_CURRENT_SOURCE_DIR}/src/java" "${CMAKE_CURRENT_BINARY_DIR}" 2>"${CMAKE_CURRENT_BINARY_DIR}/get_javadoc_errors.log"
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} "${GEN_JAVADOC}" "${CMAKE_CURRENT_SOURCE_DIR}/generator/src/java" "${CMAKE_CURRENT_BINARY_DIR}" 2>"${CMAKE_CURRENT_BINARY_DIR}/get_javadoc_errors.log"
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
|
DEPENDS ${java_documented_headers_deps}
|
|
|
|
|
)
|
|
|
|
@@ -184,14 +185,14 @@ if(ANDROID)
|
|
|
|
|
set(lib_proj_files "")
|
|
|
|
|
|
|
|
|
|
# manifest, jni, Eclipse project
|
|
|
|
|
file(GLOB_RECURSE android_lib_project_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/android/" "${CMAKE_CURRENT_SOURCE_DIR}/android/*")
|
|
|
|
|
file(GLOB_RECURSE android_lib_project_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/" "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/*")
|
|
|
|
|
list(REMOVE_ITEM android_lib_project_files "${ANDROID_MANIFEST_FILE}")
|
|
|
|
|
foreach(f ${android_lib_project_files})
|
|
|
|
|
if(NOT f MATCHES "\\.svn")
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT "${OpenCV_BINARY_DIR}/${f}"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android/${f}" "${OpenCV_BINARY_DIR}/${f}"
|
|
|
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/android/${f}"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/${f}" "${OpenCV_BINARY_DIR}/${f}"
|
|
|
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/${f}"
|
|
|
|
|
COMMENT "Generating ${f}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
@@ -227,10 +228,10 @@ if(ANDROID)
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT ${lib_target_files} "${OpenCV_BINARY_DIR}/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove ${lib_target_files}
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android/${ANDROID_MANIFEST_FILE}" "${OpenCV_BINARY_DIR}/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/${ANDROID_MANIFEST_FILE}" "${OpenCV_BINARY_DIR}/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
COMMAND ${ANDROID_EXECUTABLE} --silent create lib-project --path \"${OpenCV_BINARY_DIR}\" --target \"${lib_target_sdk_target}\" --name OpenCV --package org.opencv 2>\"${CMAKE_CURRENT_BINARY_DIR}/create_lib_project.log\"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android/${ANDROID_MANIFEST_FILE}" "${OpenCV_BINARY_DIR}/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/android/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/${ANDROID_MANIFEST_FILE}" "${OpenCV_BINARY_DIR}/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/android_lib/${ANDROID_MANIFEST_FILE}"
|
|
|
|
|
DEPENDS ${lib_proj_files}
|
|
|
|
|
COMMENT "Generating OpenCV Android library project. SDK target: ${lib_target_sdk_target}"
|
|
|
|
|
)
|
|
|
|
|