Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/java/jar/CMakeLists.txt
16337 views
1
project(${the_module}_jar)
2
3
set(OPENCV_JAVA_DIR "${CMAKE_CURRENT_BINARY_DIR}/opencv" CACHE INTERNAL "")
4
5
file(REMOVE_RECURSE "${OPENCV_JAVA_DIR}")
6
file(REMOVE "${OPENCV_DEPHELPER}/${the_module}_jar_source_copy")
7
8
file(MAKE_DIRECTORY "${OPENCV_JAVA_DIR}/build/classes")
9
set(java_src_dir "${OPENCV_JAVA_DIR}/java")
10
file(MAKE_DIRECTORY "${java_src_dir}")
11
12
set(JAR_NAME opencv-${OPENCV_JAVA_LIB_NAME_SUFFIX}.jar)
13
set(OPENCV_JAR_FILE "${OpenCV_BINARY_DIR}/bin/${JAR_NAME}" CACHE INTERNAL "")
14
15
ocv_copyfiles_append_dir(JAVA_SRC_COPY "${OPENCV_JAVA_BINDINGS_DIR}/gen/java" "${java_src_dir}")
16
17
set(depends gen_opencv_java_source "${OPENCV_DEPHELPER}/gen_opencv_java_source")
18
ocv_copyfiles_add_target(${the_module}_jar_source_copy JAVA_SRC_COPY "Copy Java(JAR) source files" ${depends})
19
set(depends ${the_module}_jar_source_copy "${OPENCV_DEPHELPER}/${the_module}_jar_source_copy")
20
21
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build.xml.in" "${OPENCV_JAVA_DIR}/build.xml" @ONLY)
22
list(APPEND depends "${OPENCV_JAVA_DIR}/build.xml")
23
24
ocv_cmake_byproducts(__byproducts BYPRODUCTS "${OPENCV_JAR_FILE}")
25
add_custom_command(OUTPUT "${OPENCV_DEPHELPER}/${the_module}_jar"
26
${__byproducts} # required for add_custom_target() by ninja
27
COMMAND ${ANT_EXECUTABLE} -noinput -k jar
28
COMMAND ${CMAKE_COMMAND} -E touch "${OPENCV_DEPHELPER}/${the_module}_jar"
29
WORKING_DIRECTORY "${OPENCV_JAVA_DIR}"
30
DEPENDS ${depends}
31
COMMENT "Generating ${JAR_NAME}"
32
)
33
add_custom_target(${the_module}_jar DEPENDS "${OPENCV_DEPHELPER}/${the_module}_jar")
34
35
install(FILES ${OPENCV_JAR_FILE} OPTIONAL DESTINATION ${OPENCV_JAR_INSTALL_PATH} COMPONENT java)
36
37
add_dependencies(${the_module} ${the_module}_jar)
38
39
if(BUILD_DOCS)
40
add_custom_command(OUTPUT "${OPENCV_DEPHELPER}/${the_module}doc"
41
COMMAND ${ANT_EXECUTABLE} -noinput -k javadoc
42
COMMAND ${CMAKE_COMMAND} -E touch "${OPENCV_DEPHELPER}/${the_module}doc"
43
WORKING_DIRECTORY "${OPENCV_JAVA_DIR}"
44
DEPENDS ${depends}
45
COMMENT "Generating Javadoc"
46
)
47
add_custom_target(${the_module}doc DEPENDS "${OPENCV_DEPHELPER}/${the_module}doc")
48
install(DIRECTORY ${OpenCV_BINARY_DIR}/doc/doxygen/html/javadoc
49
DESTINATION "${OPENCV_DOC_INSTALL_PATH}/html"
50
COMPONENT "docs" OPTIONAL
51
${compatible_MESSAGE_NEVER}
52
)
53
set(CMAKE_DOXYGEN_JAVADOC_NODE
54
"<tab type=\"user\" url=\"./javadoc/index.html\" title=\"Java documentation\"/>"
55
CACHE INTERNAL "Link to the Java documentation") # set to the cache to make it global
56
add_custom_target(doxygen_javadoc DEPENDS ${the_module}doc)
57
add_dependencies(opencv_docs ${the_module}doc)
58
else()
59
unset(CMAKE_DOXYGEN_JAVADOC_NODE CACHE)
60
endif()
61
62