From 59798b3f7cd96f99bb4d549c9565a877726c453f Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 6 Jun 2017 21:10:02 +0300 Subject: [PATCH] java: use module's public headers only --- modules/java/CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt index 16acd6b3b9..5d392937bc 100644 --- a/modules/java/CMakeLists.txt +++ b/modules/java/CMakeLists.txt @@ -149,7 +149,14 @@ foreach(module ${OPENCV_JAVA_MODULES}) file(STRINGS "${custom_header_list}" module_headers) ocv_list_add_prefix(module_headers "${OPENCV_MODULE_opencv_${module}_LOCATION}/") else() - set(module_headers "${OPENCV_MODULE_opencv_${module}_HEADERS}") + set(module_headers "") + # TODO Implement module's "_HEADERS_PUBLIC" variable (OpenCVModule.cmake) + foreach(hdr ${OPENCV_MODULE_opencv_${module}_HEADERS}) + string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}") + if(NOT hdr2 MATCHES "opencv2/${m}/private.*" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" ) + list(APPEND module_headers "${hdr}") + endif() + endforeach() endif() if(NOT module_headers)