From fbed6d1d442b5937e77735cb6c0a6c55104bb471 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Fri, 8 Jul 2011 15:29:59 +0000 Subject: [PATCH] Javadoc comments genearion is integrated into the Java API build --- modules/java/CMakeLists.txt | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt index 50971cf..cb353f6 100644 --- a/modules/java/CMakeLists.txt +++ b/modules/java/CMakeLists.txt @@ -11,6 +11,8 @@ ENDIF() SET(GEN_JAVA "${CMAKE_CURRENT_SOURCE_DIR}/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(additional_clean_files "") @@ -64,11 +66,13 @@ FILE(GLOB handwrittren_cpp_sources "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.cpp") add_library(${target} SHARED ${handwrittren_cpp_sources} ${generated_cpp_sources}) target_link_libraries(${target} ${dependent_libs} ${dependent_extra_libs} ${OPENCV_LINKER_LIBS}) +add_dependencies(${target} "${GEN_JAVA}" "${HDR_PARSER}") +add_dependencies(${target} ${dependent_extra_libs} ${dependent_libs}) if(ANDROID) target_link_libraries(${target} jnigraphics) - # force strip library before install/strip command + # force strip library after build command # because samples and tests will make a copy of library before install ADD_CUSTOM_COMMAND( TARGET ${target} @@ -77,8 +81,6 @@ if(ANDROID) ) endif() -#add_dependencies(${the_target} ${dependent_extra_libs} ${dependent_libs}) - # Additional target properties set_target_properties(${target} PROPERTIES OUTPUT_NAME "${target}" @@ -127,11 +129,33 @@ IF(ANDROID) endforeach() ENDIF() +# generate javadoc comments FILE(GLOB java_project_files "${CMAKE_CURRENT_SOURCE_DIR}/src/java/*.java") -SET(JAVA_OUTPUT_DIR "${CMAKE_BINARY_DIR}/src/org/opencv") +SET(documented_java_files) foreach(java_file ${java_project_files} ${generated_java_sources}) + get_filename_component(java_file_name "${java_file}" NAME_WE) + list(APPEND documented_java_files "${CMAKE_CURRENT_BINARY_DIR}/${java_file_name}-jdoc.java") +endforeach() + +add_custom_command( + TARGET ${api_target} PRE_BUILD + COMMAND ${PYTHON_EXECUTABLE} "${GEN_JAVADOC}" "${CMAKE_CURRENT_SOURCE_DIR}/src/java" "${CMAKE_CURRENT_BINARY_DIR}" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${java_project_files} + DEPENDS ${generated_java_sources} + DEPENDS "${GEN_JAVA}" + DEPENDS "${HDR_PARSER}" + DEPENDS "${GEN_JAVADOC}" + DEPENDS "${RST_PARSER}" +) + + +SET(JAVA_OUTPUT_DIR "${CMAKE_BINARY_DIR}/src/org/opencv") + +foreach(java_file ${documented_java_files}) get_filename_component(java_file_name "${java_file}" NAME) + string(REPLACE "-jdoc.java" ".java" 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}" -- 2.7.4