|
|
|
@ -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}" |
|
|
|
|
) |
|
|
|
|