opencv-lutin/lutin_opencv-core.py

301 lines
11 KiB
Python

#!/usr/bin/python
import realog.debug as debug
import lutin.tools as tools
import os
def get_type():
return "LIBRARY"
def get_desc():
return "opencv CORE library matrix computation evironement"
def get_licence():
return "APAPCHE-2"
def get_maintainer():
return ["Maksim Shabunin <maksim.shabunin@itseez.com>"]
def get_version():
return [3,1,0]
def configure(target, my_module):
my_module.add_src_file([
'opencv/modules/core/src/stl.cpp',
'opencv/modules/core/src/matrix_decomp.cpp',
'opencv/modules/core/src/array.cpp',
'opencv/modules/core/src/matop.cpp',
'opencv/modules/core/src/mathfuncs_core.cpp',
'opencv/modules/core/src/tables.cpp',
'opencv/modules/core/src/matmul.cpp',
'opencv/modules/core/src/copy.cpp',
'opencv/modules/core/src/algorithm.cpp',
'opencv/modules/core/src/cuda_info.cpp',
'opencv/modules/core/src/types.cpp',
'opencv/modules/core/src/umatrix.cpp',
'opencv/modules/core/src/arithm.cpp',
'opencv/modules/core/src/opencl/runtime/opencl_clamdblas.cpp',
'opencv/modules/core/src/opencl/runtime/opencl_clamdfft.cpp',
'opencv/modules/core/src/opencl/runtime/opencl_core.cpp',
'opencv/modules/core/src/split.cpp',
'opencv/modules/core/src/lapack.cpp',
'opencv/modules/core/src/conjugate_gradient.cpp',
'opencv/modules/core/src/system.cpp',
'opencv/modules/core/src/ocl.cpp',
'opencv/modules/core/src/lda.cpp',
'opencv/modules/core/src/out.cpp',
'opencv/modules/core/src/persistence.cpp',
'opencv/modules/core/src/alloc.cpp',
'opencv/modules/core/src/directx.cpp',
'opencv/modules/core/src/stat.cpp',
'opencv/modules/core/src/matrix.cpp',
'opencv/modules/core/src/cuda_host_mem.cpp',
'opencv/modules/core/src/glob.cpp',
'opencv/modules/core/src/mathfuncs.cpp',
'opencv/modules/core/src/convert.cpp',
'opencv/modules/core/src/cuda_gpu_mat.cpp',
'opencv/modules/core/src/downhill_simplex.cpp',
'opencv/modules/core/src/kmeans.cpp',
'opencv/modules/core/src/rand.cpp',
'opencv/modules/core/src/parallel.cpp',
'opencv/modules/core/src/dxt.cpp',
'opencv/modules/core/src/parallel_pthreads.cpp',
'opencv/modules/core/src/va_intel.cpp',
'opencv/modules/core/src/merge.cpp',
'opencv/modules/core/src/command_line_parser.cpp',
'opencv/modules/core/src/datastructs.cpp',
'opencv/modules/core/src/gl_core_3_1.cpp',
'opencv/modules/core/src/opengl.cpp',
'opencv/modules/core/src/pca.cpp',
'opencv/modules/core/src/lpsolver.cpp',
'opencv/modules/core/src/cuda_stream.cpp',
])
my_module.add_flag('c++', [
"-DCVAPI_EXPORTS",
"-D__OPENCV_BUILD=1",
"-fsigned-char",
"-W",
"-Wall",
"-Werror=return-type",
"-Werror=non-virtual-dtor",
"-Werror=address",
"-Werror=sequence-point",
"-Wformat",
"-Werror=format-security",
"-Wmissing-declarations",
"-Winit-self",
"-Wpointer-arith",
"-Wshadow",
"-Wsign-promo",
"-Wno-narrowing",
"-Wno-delete-non-virtual-dtor",
"-fdiagnostics-show-option",
"-Wno-long-long",
"-fomit-frame-pointer",
"-ffunction-sections",
"-fvisibility=hidden",
"-fvisibility-inlines-hidden",
])
my_module.add_header_file(
'opencv/modules/core/include/*',
recursive=True)
my_module.add_depend([
'pthread',
'm',
'z',
'cxx',
])
if "Android" in target.get_type():
my_module.add_depend("SDK")
my_module.add_flag('c++', "-DANDROID")
my_module.compile_version("C++", 2003)
my_module.add_header_file([
'generated/*'
],
destination_path="")
# generate dynamic file
generate_config_file(my_module)
return True
def generate_config_file(my_module):
#--------------------------------------------------------------------------------------
file_data = "/* Auto generate file with lutin */\n"
file_data+= "#pragma once\n"
file_data+= "\n"
file_data+= "#define HAVE_OPENCV_CALIB3D\n"
file_data+= "#define HAVE_OPENCV_CORE\n"
file_data+= "#define HAVE_OPENCV_FEATURES2D\n"
file_data+= "#define HAVE_OPENCV_FLANN\n"
#file_data+= "#define HAVE_OPENCV_HIGHGUI\n"
#file_data+= "#define HAVE_OPENCV_IMGCODECS\n"
file_data+= "#define HAVE_OPENCV_IMGPROC\n"
file_data+= "#define HAVE_OPENCV_ML\n"
file_data+= "#define HAVE_OPENCV_OBJDETECT\n"
file_data+= "#define HAVE_OPENCV_PHOTO\n"
file_data+= "#define HAVE_OPENCV_SHAPE\n"
file_data+= "#define HAVE_OPENCV_STITCHING\n"
file_data+= "#define HAVE_OPENCV_SUPERRES\n"
file_data+= "#define HAVE_OPENCV_VIDEO\n"
#file_data+= "#define HAVE_OPENCV_VIDEOIO\n"
#file_data+= "#define HAVE_OPENCV_VIDEOSTAB\n"
file_data+= "\n"
my_module.add_generated_header_file(file_data, "opencv2/opencv_modules.hpp")
#--------------------------------------------------------------------------------------
file_data = "/* Auto generate file with lutin */\n"
file_data+= "#pragma once\n"
file_data+= "// OpenCV compiled as static or dynamic libs\n"
file_data+= "#define BUILD_SHARED_LIBS\n"
#file_data+= "// Compile for 'real' NVIDIA GPU architectures\n"
#file_data+= "#define CUDA_ARCH_BIN ""\n"
#file_data+= "// Create PTX or BIN for 1.0 compute capability\n"
#file_data+= "#define CUDA_ARCH_BIN_OR_PTX_10\n"
#file_data+= "// NVIDIA GPU features are used\n"
#file_data+= "#define CUDA_ARCH_FEATURES ""\n"
#file_data+= "// Compile for 'virtual' NVIDIA PTX architectures\n"
#file_data+= "#define CUDA_ARCH_PTX ""\n"
#file_data+= "// AVFoundation video libraries\n"
#file_data+= "#define HAVE_AVFOUNDATION\n"
#file_data+= "// V4L capturing support\n"
#file_data+= "#define HAVE_CAMV4L\n"
#file_data+= "// V4L2 capturing support\n"
#file_data+= "#define HAVE_CAMV4L2\n"
#file_data+= "// Carbon windowing environment\n"
#file_data+= "#define HAVE_CARBON\n"
#file_data+= "// AMD's Basic Linear Algebra Subprograms Library*/\n"
#file_data+= "#define HAVE_CLAMDBLAS\n"
#file_data+= "// AMD's OpenCL Fast Fourier Transform Library*/\n"
#file_data+= "#define HAVE_CLAMDFFT\n"
#file_data+= "// Clp support\n"
#file_data+= "#define HAVE_CLP\n"
#file_data+= "// Cocoa API\n"
#file_data+= "#define HAVE_COCOA\n"
#file_data+= "// C=\n"
#file_data+= "#define HAVE_CSTRIPES\n"
#file_data+= "// NVidia Cuda Basic Linear Algebra Subprograms (BLAS) API*/\n"
#file_data+= "#define HAVE_CUBLAS\n"
#file_data+= "// NVidia Cuda Runtime API*/\n"
#file_data+= "#define HAVE_CUDA\n"
#file_data+= "// NVidia Cuda Fast Fourier Transform (FFT) API*/\n"
#file_data+= "#define HAVE_CUFFT\n"
#file_data+= "// IEEE1394 capturing support\n"
#file_data+= "#define HAVE_DC1394\n"
#file_data+= "// IEEE1394 capturing support - libdc1394 v2.x\n"
#file_data+= "#define HAVE_DC1394_2\n"
#file_data+= "// DirectX\n"
#file_data+= "#define HAVE_DIRECTX\n"
#file_data+= "#define HAVE_DIRECTX_NV12\n"
#file_data+= "#define HAVE_D3D11\n"
#file_data+= "#define HAVE_D3D10\n"
#file_data+= "#define HAVE_D3D9\n"
#file_data+= "// DirectShow Video Capture library\n"
#file_data+= "#define HAVE_DSHOW\n"
#file_data+= "// Eigen Matrix & Linear Algebra Library\n"
#file_data+= "#define HAVE_EIGEN\n"
#file_data+= "// FFMpeg video library\n"
#file_data+= "#define HAVE_FFMPEG\n"
#file_data+= "// ffmpeg's libswscale\n"
#file_data+= "#define HAVE_FFMPEG_SWSCALE\n"
#file_data+= "// ffmpeg in Gentoo\n"
#file_data+= "#define HAVE_GENTOO_FFMPEG\n"
#file_data+= "// Geospatial Data Abstraction Library\n"
#file_data+= "#define HAVE_GDAL\n"
#file_data+= "// GStreamer multimedia framework\n"
#file_data+= "#define HAVE_GSTREAMER\n"
#file_data+= "// GTK+ 2.0 Thread support\n"
#file_data+= "#define HAVE_GTHREAD\n"
#file_data+= "// GTK+ 2.x toolkit\n"
#file_data+= "#define HAVE_GTK\n"
#file_data+= "// Define to 1 if you have the <inttypes.h> header file.\n"
#file_data+= "#define HAVE_INTTYPES_H\n"
#file_data+= "// Intel Perceptual Computing SDK library\n"
#file_data+= "#define HAVE_INTELPERC\n"
#file_data+= "// Intel Integrated Performance Primitives\n"
#file_data+= "#define HAVE_IPP\n"
#file_data+= "#define HAVE_IPP_ICV_ONLY\n"
#file_data+= "// Intel IPP Async\n"
#file_data+= "// #define HAVE_IPP_A\n"
#file_data+= "// JPEG-2000 codec\n"
#file_data+= "#define HAVE_JASPER\n"
#file_data+= "// IJG JPEG codec\n"
#file_data+= "#define HAVE_JPEG\n"
#file_data+= "// libpng/png.h needs to be included\n"
#file_data+= "#define HAVE_LIBPNG_PNG_H\n"
#file_data+= "// GDCM DICOM codec\n"
#file_data+= "#define HAVE_GDCM\n"
#file_data+= "// V4L/V4L2 capturing support via libv4l\n"
#file_data+= "#define HAVE_LIBV4L\n"
#file_data+= "// Microsoft Media Foundation Capture library\n"
#file_data+= "#define HAVE_MSMF\n"
#file_data+= "// NVidia Video Decoding API*/\n"
#file_data+= "#define HAVE_NVCUVID\n"
#file_data+= "// NVidia Video Encoding API*/\n"
#file_data+= "#define HAVE_NVCUVENC\n"
#file_data+= "// OpenCL Support\n"
#file_data+= "#define HAVE_OPENCL\n"
#file_data+= "#define HAVE_OPENCL_STATIC\n"
#file_data+= "#define HAVE_OPENCL_SVM\n"
#file_data+= "// OpenEXR codec\n"
#file_data+= "#define HAVE_OPENEXR\n"
#file_data+= "// OpenGL support*/\n"
#file_data+= "#define HAVE_OPENGL\n"
#file_data+= "// OpenNI library\n"
#file_data+= "#define HAVE_OPENNI\n"
#file_data+= "// OpenNI library\n"
#file_data+= "#define HAVE_OPENNI2\n"
#file_data+= "// PNG codec\n"
#file_data+= "#define HAVE_PNG\n"
file_data+= "// Posix threads (pthreads)\n"
file_data+= "#define HAVE_PTHREADS\n"
file_data+= "// parallel_for with pthreads\n"
file_data+= "#define HAVE_PTHREADS_PF\n"
#file_data+= "// Qt support\n"
#file_data+= "#define HAVE_QT\n"
#file_data+= "// Qt OpenGL support\n"
#file_data+= "#define HAVE_QT_OPENGL\n"
#file_data+= "// QuickTime video libraries\n"
#file_data+= "#define HAVE_QUICKTIME\n"
#file_data+= "// QTKit video libraries\n"
#file_data+= "#define HAVE_QTKIT\n"
#file_data+= "// Intel Threading Building Blocks\n"
#file_data+= "#define HAVE_TBB\n"
#file_data+= "// TIFF codec\n"
#file_data+= "#define HAVE_TIFF\n"
#file_data+= "// Unicap video capture library\n"
#file_data+= "#define HAVE_UNICAP\n"
#file_data+= "// Video for Windows support\n"
#file_data+= "#define HAVE_VFW\n"
#file_data+= "// V4L2 capturing support in videoio.h\n"
#file_data+= "#define HAVE_VIDEOIO\n"
#file_data+= "// Win32 UI\n"
#file_data+= "#define HAVE_WIN32UI\n"
#file_data+= "// XIMEA camera support\n"
#file_data+= "#define HAVE_XIMEA\n"
#file_data+= "// Xine video library\n"
#file_data+= "#define HAVE_XINE\n"
#file_data+= "// Define if your processor stores words with the most significant byte\n"
#file_data+= "// first (like Motorola and SPARC, unlike Intel and VAX).\n"
#file_data+= "#define WORDS_BIGENDIAN\n"
#file_data+= "// gPhoto2 library\n"
#file_data+= "#define HAVE_GPHOTO2\n"
#file_data+= "// VA library (libva)\n"
#file_data+= "#define HAVE_VA\n"
#file_data+= "// Intel VA-API/OpenCL\n"
#file_data+= "#define HAVE_VA_INTEL\n"
#file_data+= "// Lapack\n"
#file_data+= "#define HAVE_LAPACK\n"
#file_data+= "// FP16\n"
#file_data+= "#define HAVE_FP16\n"
#my_module.add_generated_header_file(file_data, "opencv2/cvconfig.h", True)
my_module.add_generated_header_file(file_data, "cvconfig.h", True)
file_data = "/* Auto generate file with lutin */\n"
file_data+= "#pragma once\n"
my_module.add_generated_header_file(file_data, "custom_hal.hpp")
file_data = "\"generate with lutin build system ...\\n\""
my_module.add_generated_header_file(file_data, "version_string.inc")