fixed parsing enums with tailing comma

gen2.py reports headers it processes
cmake file restructured
pull/2994/head
Alexander Mordvintsev 10 years ago committed by Alexander Mordvintsev
parent 964657a155
commit 42ecfc5538
  1. 56
      modules/python/CMakeLists.txt
  2. 1
      modules/python/src2/gen2.py
  3. 2
      modules/python/src2/hdr_parser.py

@ -12,23 +12,18 @@ endif()
set(the_description "The python bindings")
set(candidate_deps_raw)
set(candidate_deps)
foreach(mp ${OPENCV_MODULES_PATH} ${OPENCV_EXTRA_MODULES_PATH})
file(GLOB names "${mp}/*")
list(APPEND candidate_deps_raw ${names})
endforeach(mp)
set(candidate_deps)
foreach(m IN LISTS candidate_deps_raw)
if(IS_DIRECTORY ${m})
get_filename_component(m ${m} NAME)
if (NOT ${m} MATCHES "^cud(a|ev)")
if (NOT ${m} MATCHES "optim") # unless we handle namespaces
list(APPEND candidate_deps "opencv_${m}")
foreach(m IN LISTS names)
if(IS_DIRECTORY ${m})
get_filename_component(m ${m} NAME)
if (NOT ${m} MATCHES "^cud(a|ev)")
list(APPEND candidate_deps "opencv_${m}")
endif()
endif()
endif()
endif()
endforeach(m)
endforeach(m)
endforeach(mp)
ocv_add_module(python BINDINGS OPTIONAL ${candidate_deps})
@ -39,23 +34,26 @@ ocv_module_include_directories(
)
set(opencv_hdrs_raw)
foreach(m IN LISTS OPENCV_MODULE_opencv_python_DEPS)
list(APPEND opencv_hdrs_raw "${OPENCV_MODULE_${m}_HEADERS}")
endforeach(m)
set(opencv_hdrs_blacklist
".h$"
"opencv2/core/cuda"
"opencv2/objdetect/detection_based_tracker.hpp"
"opencv2/optim.hpp")
# remove problematic headers
set(opencv_hdrs)
foreach(hdr IN LISTS opencv_hdrs_raw)
if(NOT ${hdr} MATCHES ".h$")
if(NOT ${hdr} MATCHES "opencv2/core/cuda")
if(NOT ${hdr} MATCHES "opencv2/objdetect/detection_based_tracker.hpp")
list(APPEND opencv_hdrs ${hdr})
endif()
endif()
endif()
endforeach(hdr)
foreach(m IN LISTS OPENCV_MODULE_opencv_python_DEPS)
foreach(hdr IN LISTS OPENCV_MODULE_${m}_HEADERS)
set(good TRUE)
foreach(s IN LISTS opencv_hdrs_blacklist)
if (${hdr} MATCHES ${s})
set(good FALSE)
endif()
endforeach(s)
if(${good})
list(APPEND opencv_hdrs ${hdr})
endif()
endforeach(hdr)
endforeach(m)
set(cv2_generated_hdrs
"${CMAKE_CURRENT_BINARY_DIR}/pyopencv_generated_include.h"

@ -831,6 +831,7 @@ class PythonWrapperGenerator(object):
# step 1: scan the headers and build more descriptive maps of classes, consts, functions
for hdr in srcfiles:
print(hdr)
decls = parser.parse(hdr)
if len(decls) == 0:
continue

@ -206,6 +206,8 @@ class CppHeaderParser(object):
def parse_enum(self, decl_str):
l = decl_str
ll = l.split(",")
if ll[-1].strip() == "":
ll = ll[:-1]
prev_val = ""
prev_val_delta = -1
decl = []

Loading…
Cancel
Save