@@ -18,6 +18,12 @@ if(EXISTS ${CMAKE_BINARY_DIR}/gen)
18
18
execute_process (COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR} /gen" )
19
19
endif ()
20
20
21
+ if (ANDROID)
22
+ set (LIB_NAME_SUFIX "${OPENCV_VERSION_MAJOR} " )
23
+ else ()
24
+ set (LIB_NAME_SUFIX "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH} " )
25
+ endif ()
26
+
21
27
ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR} /generator/src/cpp" )
22
28
ocv_module_include_directories("${OpenCV_SOURCE_DIR} /include" )
23
29
@@ -69,7 +75,7 @@ macro(glob_more_specific_sources _type _root _output)
69
75
elseif (${_type} STREQUAL "CPP" )
70
76
set (_masks "${_root} /src/cpp/*.cpp" )
71
77
elseif (${_type} STREQUAL "JAVA" )
72
- set (_masks "${_root} /src/java/*.java" )
78
+ set (_masks "${_root} /src/java/*.java" " ${_root} /src/java/*.java.in" )
73
79
elseif (${_type} STREQUAL "AIDL" )
74
80
set (_masks "${_root} /src/java/*.aidl" )
75
81
endif ()
@@ -257,22 +263,49 @@ endforeach()
257
263
# step 3: copy files to destination
258
264
set (step3_input_files ${generated_java_sources} ${handwritten_java_sources} ${handwritten_aidl_sources} )
259
265
set (copied_files "" )
266
+ set (java_src_dir "${OpenCV_BINARY_DIR} /src" )
260
267
foreach (java_file ${step3_input_files} )
261
268
get_filename_component (java_file_name "${java_file} " NAME )
269
+ set (__configure 0)
270
+ if (java_file_name MATCHES "\\ .in$" )
271
+ string (REGEX REPLACE "\\ .in$" "" java_file_name "${java_file_name} " )
272
+ set (__configure 1)
273
+ endif ()
262
274
string (REPLACE "-jdoc.java" ".java" java_file_name "${java_file_name} " )
263
- string (REPLACE "+" "/" java_file_name "${java_file_name} " )
264
- set (output_name "${OpenCV_BINARY_DIR} /src/org/opencv/${java_file_name} " )
265
- add_custom_command (OUTPUT "${output_name} "
266
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${java_file} " "${output_name} "
267
- MAIN_DEPENDENCY "${java_file} "
268
- DEPENDS ${step1_depends} ${generated_java_sources} ${handwritten_java_sources}
269
- COMMENT "Generating src/org/opencv/${java_file_name} "
270
- )
271
- list (APPEND copied_files "${output_name} " )
275
+ if (EXISTS "${java_file} " )
276
+ file (STRINGS "${java_file} " PACKAGE_STR LIMIT_COUNT 1 REGEX "package.*;$" )
277
+ else ()
278
+ set (PACKAGE_STR "" )
279
+ endif ()
280
+ if (PACKAGE_STR)
281
+ list (GET PACKAGE_STR 0 package_name)
282
+ string (REGEX REPLACE "^package[ ]+" "" package_name "${package_name} " )
283
+ string (REGEX REPLACE ";$" "" package_name "${package_name} " )
284
+
285
+ string (REGEX REPLACE ".*\\ +" "" java_file_name "${java_file_name} " )
286
+ string (REPLACE "." "/" package_path "${package_name} " )
287
+ set (output_name "${package_path} /${java_file_name} " )
288
+ else ()
289
+ string (REPLACE "+" "/" java_file_name "${java_file_name} " )
290
+ set (output_name "org/opencv/${java_file_name} " )
291
+ endif ()
292
+ if (__configure)
293
+ configure_file ("${java_file} " "${java_src_dir} /${output_name} " @ONLY)
294
+ elseif (NOT "${java_file} " MATCHES "${OpenCV_BINARY_DIR} /" )
295
+ configure_file ("${java_file} " "${java_src_dir} /${output_name} " COPYONLY )
296
+ else ()
297
+ add_custom_command (OUTPUT "${java_src_dir} /${output_name} "
298
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "${java_file} " "${java_src_dir} /${output_name} "
299
+ MAIN_DEPENDENCY "${java_file} "
300
+ DEPENDS "${java_file} "
301
+ COMMENT "Generating src/${output_name} "
302
+ )
303
+ endif ()
304
+ list (APPEND copied_files "${java_src_dir} /${output_name} " )
272
305
273
306
if (ANDROID)
274
- get_filename_component (install_subdir "${java_file_name } " PATH )
275
- install (FILES "${output_name} " DESTINATION "${JAVA_INSTALL_ROOT} /src/org/opencv /${install_subdir} " COMPONENT java)
307
+ get_filename_component (install_subdir "${output_name } " PATH )
308
+ install (FILES "${java_src_dir} / ${ output_name} " DESTINATION "${JAVA_INSTALL_ROOT} /src/${install_subdir} " COMPONENT java)
276
309
endif ()
277
310
endforeach ()
278
311
@@ -334,12 +367,6 @@ endif(ANDROID AND ANDROID_EXECUTABLE)
334
367
335
368
set (step3_depends ${step2_depends} ${step3_input_files} ${copied_files} )
336
369
337
- if (ANDROID)
338
- set (LIB_NAME_SUFIX "${OPENCV_VERSION_MAJOR} " )
339
- else ()
340
- set (LIB_NAME_SUFIX "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH} " )
341
- endif ()
342
-
343
370
file (MAKE_DIRECTORY "${OpenCV_BINARY_DIR} /bin" )
344
371
345
372
# step 4: build jar
0 commit comments