12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- function mex(varargin)
- %CV.MEX compile MEX-function with OpenCV linkages
- %
- % Usage:
- % CV.MEX [options ...] file [file file ...]
- %
- % Description:
- % CV.MEX compiles one or more C/C++ source files into a shared-library
- % called a mex-file. This function is equivalent to the builtin MEX
- % routine, with the notable exception that it automatically resolves
- % OpenCV includes, and links in the OpenCV libraries where appropriate.
- % It also forwards the flags used to build OpenCV, so architecture-
- % specific optimizations can be used.
- %
- % CV.MEX is designed to be used in situations where the source(s) you
- % are compiling contain OpenCV definitions. In such cases, it streamlines
- % the finding and including of appropriate OpenCV libraries.
- %
- % See also: mex
- %
- % Copyright {{ time.strftime("%Y", time.localtime()) }} The OpenCV Foundation
- %
- % forward the OpenCV build flags (C++ only)
- EXTRA_FLAGS = ['"CXXFLAGS="\$CXXFLAGS '...
- '{{ cv.flags | trim | wordwrap(60, false, '\'...\n \'') }}""'];
- % add the OpenCV include dirs
- INCLUDE_DIRS = {{ cv.include_dirs | split | cellarray | wordwrap(60, false, '...\n ') }};
- % add the lib dir (singular in both build tree and install tree)
- LIB_DIR = '{{ cv.lib_dir }}';
- % add the OpenCV libs. Only the used libs will actually be linked
- LIBS = {{ cv.libs | split | cellarray | wordwrap(60, false, '...\n ') }};
- % add the mex opts (usually at least -largeArrayDims)
- OPTS = {{ cv.opts | split | cellarray | wordwrap(60, false, '...\n ') }};
- % merge all of the default options (EXTRA_FLAGS, LIBS, etc) and the options
- % and files passed by the user (varargin) into a single cell array
- merged = [ {EXTRA_FLAGS}, INCLUDE_DIRS, {LIB_DIR}, LIBS, OPTS, varargin ];
- % expand the merged argument list into the builtin mex utility
- mex(merged{:});
- end
|