mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1002 B
28 lines
1002 B
#! /usr/bin/env python |
|
""" |
|
This script extracts macros #defines from those OpenCV headers that can't be |
|
directly parsed by current SWIG versions and must be pre-filtered by |
|
the C preprocessor (that erases all #defines). Type information is missing in the |
|
macros, so C code can't be regenerated. Instead, try to convert C to Python code. |
|
C macros too complicated to represent in python using regexes are listed in EXCLUDE |
|
""" |
|
|
|
import sys, re |
|
|
|
EXCLUDE = { } |
|
|
|
# force this to be part of cv module |
|
# otherwise becomes cv.cvmacros |
|
print "/** This file was automatically generated using util/extract_aliases.py script */" |
|
print "%module cv" |
|
print "%pythoncode %{" |
|
for fn in sys.argv[1:]: |
|
f = open( fn, "r" ) |
|
in_define = 0 |
|
for l in f.xreadlines(): |
|
m = re.match( r"^#define\s+((?:CV_|IPL_|cv)\w+)\s+((?:CV|IPL|cv)\w*)\s*$", l ) |
|
if m and not l.endswith( "\\\n" ) and not EXCLUDE.has_key(m.group(1)): |
|
print "%s=%s" % (m.group(1), m.group(2)) |
|
f.close() |
|
|
|
print "%}"
|
|
|