1 from distutils.core import setup, Extension
\rimport os
2 opencv_pwrap_dir = r'.'
3 opencv_base_dir = r'../../..'
5 def patch_for_win32(filename,outfile,patches,extra_defs):
6 print 'patching '+filename+'...'
7 src = open(filename,'rt')
8 dst = open(outfile, 'wt')
9 for l in src.xreadlines():
11 for (from_str,to_str) in patches:
12 dl = dl.replace(from_str,to_str)
22 return os.path.getmtime(a)<os.path.getmtime(b)
24 if not os.path.exists('_cv_win32.cpp') or is_older('_cv_win32.cpp','_cv.cpp'):
25 patch_for_win32('_cv.cpp', '_cv_win32.cpp',
26 [('unsigned long long','uint64',),('long long','int64'),
27 ("char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);",
28 "char *doc = (char*)(((PyCFunctionObject *)obj) -> m_ml -> ml_doc);"),
29 ("char *c = methods[i].ml_doc;",
30 "char *c = (char*)methods[i].ml_doc;")],
31 [('PyAPI_FUNC','#undef PyAPI_FUNC\n'), ('cv.h',
35 const signed char icvDepthToType[]=
37 -1, -1, CV_8U, CV_8S, CV_16U, CV_16S, -1, -1,
38 CV_32F, CV_32S, -1, -1, -1, -1, -1, -1, CV_64F, -1
41 CvModuleInfo* CvModule::first = 0;
42 CvModuleInfo* CvModule::last = 0;
43 CvTypeInfo* CvType::first = 0;
44 CvTypeInfo* CvType::last = 0;
48 if not os.path.exists('_highgui_win32.cpp') or is_older('_highgui_win32.cpp','_highgui.cpp'):
49 patch_for_win32('_highgui.cpp', '_highgui_win32.cpp',
50 [('unsigned long long','uint64',),('long long','int64'),
51 ("char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);",
52 "char *doc = (char*)(((PyCFunctionObject *)obj) -> m_ml -> ml_doc);"),
53 ("char *c = methods[i].ml_doc;",
54 "char *c = (char*)methods[i].ml_doc;")],
55 [('PyAPI_FUNC','#undef PyAPI_FUNC\n')])
57 if not os.path.exists('_ml_win32.cpp') or is_older('_ml_win32.cpp','_ml.cpp'):
58 patch_for_win32('_ml.cpp', '_ml_win32.cpp',
59 [('unsigned long long','uint64',),('long long','int64'),
60 ("char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);",
61 "char *doc = (char*)(((PyCFunctionObject *)obj) -> m_ml -> ml_doc);"),
62 ("char *c = methods[i].ml_doc;",
63 "char *c = (char*)methods[i].ml_doc;")],
64 [('PyAPI_FUNC','#undef PyAPI_FUNC\n')])
67 setup(name='OpenCV Python Wrapper',
69 packages = ['opencv'],
70 package_dir = {'opencv': opencv_pwrap_dir},
71 ext_modules=[Extension('opencv._cv',
72 [os.path.join (opencv_pwrap_dir, '_cv_win32.cpp'),
73 os.path.join (opencv_pwrap_dir, 'error.cpp'),
74 os.path.join (opencv_pwrap_dir, 'cvshadow.cpp'),
75 os.path.join (opencv_pwrap_dir, 'pyhelpers.cpp')],
76 include_dirs = [os.path.join (opencv_base_dir,
78 os.path.join (opencv_base_dir,
81 library_dirs = [os.path.join (opencv_base_dir,
83 libraries = ['cv', 'cxcore'],
86 Extension('opencv._ml',
87 [os.path.join (opencv_pwrap_dir, '_ml_win32.cpp'),
88 os.path.join (opencv_pwrap_dir, 'error.cpp'),
89 os.path.join (opencv_pwrap_dir, 'cvshadow.cpp'),
90 os.path.join (opencv_pwrap_dir, 'pyhelpers.cpp')],
91 include_dirs = [os.path.join (opencv_base_dir,
93 os.path.join (opencv_base_dir,
95 os.path.join (opencv_base_dir,
97 os.path.join (opencv_base_dir,
98 'otherlibs', 'highgui'),
100 library_dirs = [os.path.join (opencv_base_dir,
102 libraries = ['cv', 'cxcore', 'ml'],
105 Extension('opencv._highgui',
\r [os.path.join (opencv_pwrap_dir, '_highgui_win32.cpp'),
106 os.path.join (opencv_pwrap_dir, 'error.cpp'),
107 os.path.join (opencv_pwrap_dir, 'cvshadow.cpp'),
108 os.path.join (opencv_pwrap_dir, 'pyhelpers.cpp')],
109 include_dirs = [os.path.join (opencv_base_dir,
110 'otherlibs', 'highgui'),
111 os.path.join (opencv_base_dir,
112 'cxcore', 'include'),
113 os.path.join (opencv_base_dir,
115 library_dirs = [os.path.join (opencv_base_dir,
117 libraries = ['highgui', 'cv', 'cxcore'],