--- /dev/null
+# ----------------------------------------------------------------------------
+# CMake file for python support
+# ----------------------------------------------------------------------------
+project(python_support)
+
+find_package(SWIG REQUIRED)
+include(${SWIG_USE_FILE})
+
+include_directories(${PYTHON_INCLUDE_PATH})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../filtered)
+
+if(MSVC)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
+endif()
+
+# ----------------------------------- cv module ------------------------------
+
+set_source_files_properties(cv.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS -includeall
+ SWIG_FLAGS -DSKIP_INCLUDES
+ )
+
+set(opencv_headers
+ ${CMAKE_SOURCE_DIR}/include/opencv/cxtypes.h
+ ${CMAKE_SOURCE_DIR}/include/opencv/cxcore.h
+ ${CMAKE_SOURCE_DIR}/include/opencv/cvtypes.h
+ ${CMAKE_SOURCE_DIR}/include/opencv/cv.h
+ )
+
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cvaliases_autogen.i
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/utils/extract_aliases.py
+ ${opencv_headers} > ${CMAKE_CURRENT_BINARY_DIR}/cvaliases_autogen.i
+ DEPENDS ${opencv_headers}
+ )
+
+set(SWIG_MODULE_cv_EXTRA_DEPS
+ imagedata.i cvarr.i ${CMAKE_CURRENT_BINARY_DIR}/cvaliases_autogen.i cvaliases.i pyhelpers.i
+ nointpb.i pytypemaps.i cvshadow.i cvseq.i
+ ../general/cv.i ../general/memory.i ../general/typemaps.i
+ ../general/extensions.i ../general/doublepointers.i
+ ../general/sizeof.i ../general/cvmacros.i
+ )
+
+SWIG_ADD_MODULE(cv python cv.i cvshadow.cpp error.cpp error.h pyhelpers.cpp pyhelpers.h cvshadow.h pycvseq.hpp)
+SWIG_LINK_LIBRARIES(cv ${PYTHON_LIBRARIES} cxcore cv)
+
+# ----------------------------------- ml module ------------------------------
+
+set_source_files_properties(ml.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS -includeall
+ SWIG_FLAGS -DSKIP_INCLUDES
+ )
+
+set(SWIG_MODULE_ml_EXTRA_DEPS
+ nointpb.i pytypemaps.i
+ ../general/memory.i ../general/typemaps.i
+ ${CMAKE_SOURCE_DIR}/include/opencv/ml.h
+ )
+
+SWIG_ADD_MODULE(ml python ml.i pyhelpers.cpp pyhelpers.h)
+SWIG_LINK_LIBRARIES(ml ${PYTHON_LIBRARIES} cxcore ml)
+
+# --------------------------------highgui module ------------------------------
+
+set_source_files_properties(highgui.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS -includeall
+ SWIG_FLAGS -DSKIP_INCLUDES
+ )
+
+set(SWIG_MODULE_highgui_EXTRA_DEPS
+ nointpb.i pytypemaps.i
+ ../general/highgui.i
+ ../general/memory.i ../general/typemaps.i
+ ${CMAKE_SOURCE_DIR}/include/opencv/highgui.h
+ )
+
+SWIG_ADD_MODULE(highgui python highgui.i pyhelpers.cpp pyhelpers.h)
+SWIG_LINK_LIBRARIES(highgui ${PYTHON_LIBRARIES} cxcore cv highgui)
+
+# ------------------------------ installation ----------------------------------
+
+if(WIN32)
+ set_target_properties(
+ ${SWIG_MODULE_cv_REAL_NAME}
+ ${SWIG_MODULE_ml_REAL_NAME}
+ ${SWIG_MODULE_highgui_REAL_NAME}
+ PROPERTIES SUFFIX ".pyd")
+endif()
+
+get_target_property(LOC_CV ${SWIG_MODULE_cv_REAL_NAME} LOCATION)
+get_target_property(LOC_ML ${SWIG_MODULE_ml_REAL_NAME} LOCATION)
+get_target_property(LOC_HIGHGUI ${SWIG_MODULE_highgui_REAL_NAME} LOCATION)
+
+set(pyopencv_files __init__.py adaptors.py matlab_syntax.py
+ ${CMAKE_CURRENT_BINARY_DIR}/cv.py
+ ${CMAKE_CURRENT_BINARY_DIR}/ml.py
+ ${CMAKE_CURRENT_BINARY_DIR}/highgui.py)
+
+foreach(m ${LOC_CV} ${LOC_ML} ${LOC_HIGHGUI})
+ string(REPLACE "\$(OutDir)" "\${CMAKE_INSTALL_CONFIG_NAME}" m1 ${m})
+ set(pyopencv_files ${pyopencv_files} ${m1})
+endforeach()
+
+
+# TODO: need to compile *.py files
+if(WIN32)
+ install(FILES ${pyopencv_files} DESTINATION
+ "Python${PYTHON_VERSION_MAJOR_MINOR}/Lib/site-packages/opencv"
+ COMPONENT main)
+else()
+ install(FILES ${pyopencv_files} DESTINATION ${PYTHON_PLUGIN_INSTALL_PATH} COMPONENT main)
+endif()
+