From 69b79f89c1810ab4c405d560ef7651c2cc205403 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Fri, 24 Jun 2011 07:48:04 +0000 Subject: [PATCH] Updated build scripts for better Java module support --- CMakeLists.txt | 8 ++++ modules/CMakeLists.txt | 5 ++- modules/java/CMakeLists.txt | 41 +++++++++++++------ modules/java/{srccpp => src/cpp}/Mat.cpp | 0 modules/java/{srccpp => src/cpp}/utils.cpp | 0 modules/java/{srcjava => src/java}/Mat.java | 0 modules/java/{srcjava => src/java}/Point.java | 0 .../java/{srcjava => src/java}/Point3.java | 0 modules/java/{srcjava => src/java}/Rect.java | 0 .../java/{srcjava => src/java}/Scalar.java | 0 modules/java/{srcjava => src/java}/Size.java | 0 modules/java/{srcjava => src/java}/utils.java | 0 12 files changed, 41 insertions(+), 13 deletions(-) rename modules/java/{srccpp => src/cpp}/Mat.cpp (100%) rename modules/java/{srccpp => src/cpp}/utils.cpp (100%) rename modules/java/{srcjava => src/java}/Mat.java (100%) rename modules/java/{srcjava => src/java}/Point.java (100%) rename modules/java/{srcjava => src/java}/Point3.java (100%) rename modules/java/{srcjava => src/java}/Rect.java (100%) rename modules/java/{srcjava => src/java}/Scalar.java (100%) rename modules/java/{srcjava => src/java}/Size.java (100%) rename modules/java/{srcjava => src/java}/utils.java (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a53fd9c42..e8585af9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -652,6 +652,13 @@ if(SPHINX_PROCESS EQUAL 0) endif() endif() +# Java support +# =================================================== +if (PYTHON_EXECUTABLE AND ANDROID) + SET(BUILD_JAVA_SUPPORT ON CACHE BOOL "Build with Java support") +else() + SET(BUILD_JAVA_SUPPORT OFF CACHE BOOL "Build with Java support" FORCE) +endif() #YV ############################### QT ################################ @@ -1566,6 +1573,7 @@ message(STATUS " Python numpy: YES") else() message(STATUS " Python numpy: NO (Python interface will not cover OpenCV 2.x API)") endif() +message(STATUS " Java: ${BUILD_JAVA_SUPPORT}") if(WITH_IPP AND IPP_FOUND) message(STATUS " Use IPP: ${IPP_LATEST_VERSION_STR} [${IPP_LATEST_VERSION_MAJOR}.${IPP_LATEST_VERSION_MINOR}.${IPP_LATEST_VERSION_BUILD}]") diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index ed5fad7fe..29b0fb1bd 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -5,7 +5,6 @@ if(ANDROID) endif() add_subdirectory(androidcamera) - add_subdirectory(java) endif() add_subdirectory(calib3d) @@ -31,6 +30,10 @@ if(PYTHONLIBS_FOUND AND BUILD_NEW_PYTHON_SUPPORT) add_subdirectory(python) endif() +if(BUILD_JAVA_SUPPORT) + add_subdirectory(java) +endif() + add_subdirectory(video) add_subdirectory(traincascade) add_subdirectory(haartraining) diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt index 3c33f8138..be12d9bf6 100644 --- a/modules/java/CMakeLists.txt +++ b/modules/java/CMakeLists.txt @@ -24,12 +24,12 @@ foreach(module ${OPENCV_JAVA_MODULES}) list(SORT module_cppheaders) add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module}.java - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module}.cpp - COMMAND ${PYTHON_EXECUTABLE} -B "${GEN_JAVA}" "${HDR_PARSER}" ${module} ${module_cheaders} ${module_cppheaders} + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${module}.java" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${module}.cpp" + COMMAND "${PYTHON_EXECUTABLE}" -B "${GEN_JAVA}" "${HDR_PARSER}" ${module} ${module_cheaders} ${module_cppheaders} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${GEN_JAVA} - DEPENDS ${HDR_PARSER} + DEPENDS "${GEN_JAVA}" + DEPENDS "${HDR_PARSER}" DEPENDS ${module_headers} ) endforeach() @@ -37,7 +37,7 @@ endforeach() set(target "opencv_java") include_directories("${CMAKE_CURRENT_BINARY_DIR}") -FILE(GLOB handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/srccpp/*.cpp") +FILE(GLOB handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.cpp") SET (generated_cpp_sources "") SET (generated_java_sources "") @@ -75,25 +75,42 @@ set_target_properties(${target} PROPERTIES INSTALL_NAME_DIR lib ) -add_custom_target(opecv_java_api ALL DEPENDS ${target}) +set(api_target opencv_java_api) +add_custom_target(${api_target} ALL DEPENDS ${target}) IF(ANDROID) # create Android library project in build folder - add_custom_command(TARGET opecv_java_api COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/res") + add_custom_command( + TARGET ${api_target} + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/res" + COMMENT "Creating res directory" + ) FILE(GLOB android_lib_project_files "${CMAKE_CURRENT_SOURCE_DIR}/android/*") foreach(lib_file ${android_lib_project_files}) if(NOT IS_DIRECTORY ${lib_file}) - add_custom_command(TARGET opecv_java_api COMMAND ${CMAKE_COMMAND} -E copy "${lib_file}" "${CMAKE_BINARY_DIR}" DEPENDS "${lib_file}") + get_filename_component(lib_file_name "${lib_file}" NAME) + add_custom_command( + TARGET ${api_target} + COMMAND ${CMAKE_COMMAND} -E copy "${lib_file}" "${CMAKE_BINARY_DIR}" + DEPENDS "${lib_file}" + COMMENT "Generating ${lib_file_name}" + ) endif() endforeach() ENDIF() -FILE(GLOB java_project_files "${CMAKE_CURRENT_SOURCE_DIR}/srcjava/*.java") +FILE(GLOB java_project_files "${CMAKE_CURRENT_SOURCE_DIR}/src/java/*.java") SET(JAVA_OUTPUT_DIR "${CMAKE_BINARY_DIR}/src/org/opencv") -add_custom_command(TARGET opecv_java_api COMMAND ${CMAKE_COMMAND} -E make_directory "${JAVA_OUTPUT_DIR}") foreach(java_file ${java_project_files} ${generated_java_sources}) - add_custom_command(TARGET opecv_java_api COMMAND ${CMAKE_COMMAND} -E copy "${java_file}" "${JAVA_OUTPUT_DIR}" DEPENDS "${java_file}" DEPENDS "${JAVA_OUTPUT_DIR}") + get_filename_component(java_file_name "${java_file}" NAME) + add_custom_command( + TARGET ${api_target} + COMMAND ${CMAKE_COMMAND} -E copy "${java_file}" "${JAVA_OUTPUT_DIR}/${java_file_name}" + DEPENDS "${java_file}" + DEPENDS "${JAVA_OUTPUT_DIR}" + COMMENT "Generating src/org/opencv/${java_file_name}" + ) endforeach() diff --git a/modules/java/srccpp/Mat.cpp b/modules/java/src/cpp/Mat.cpp similarity index 100% rename from modules/java/srccpp/Mat.cpp rename to modules/java/src/cpp/Mat.cpp diff --git a/modules/java/srccpp/utils.cpp b/modules/java/src/cpp/utils.cpp similarity index 100% rename from modules/java/srccpp/utils.cpp rename to modules/java/src/cpp/utils.cpp diff --git a/modules/java/srcjava/Mat.java b/modules/java/src/java/Mat.java similarity index 100% rename from modules/java/srcjava/Mat.java rename to modules/java/src/java/Mat.java diff --git a/modules/java/srcjava/Point.java b/modules/java/src/java/Point.java similarity index 100% rename from modules/java/srcjava/Point.java rename to modules/java/src/java/Point.java diff --git a/modules/java/srcjava/Point3.java b/modules/java/src/java/Point3.java similarity index 100% rename from modules/java/srcjava/Point3.java rename to modules/java/src/java/Point3.java diff --git a/modules/java/srcjava/Rect.java b/modules/java/src/java/Rect.java similarity index 100% rename from modules/java/srcjava/Rect.java rename to modules/java/src/java/Rect.java diff --git a/modules/java/srcjava/Scalar.java b/modules/java/src/java/Scalar.java similarity index 100% rename from modules/java/srcjava/Scalar.java rename to modules/java/src/java/Scalar.java diff --git a/modules/java/srcjava/Size.java b/modules/java/src/java/Size.java similarity index 100% rename from modules/java/srcjava/Size.java rename to modules/java/src/java/Size.java diff --git a/modules/java/srcjava/utils.java b/modules/java/src/java/utils.java similarity index 100% rename from modules/java/srcjava/utils.java rename to modules/java/src/java/utils.java