File: template_cvmex_base.m

package info (click to toggle)
opencv 4.5.1%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 268,248 kB
  • sloc: cpp: 969,170; xml: 682,525; python: 36,732; lisp: 30,170; java: 25,155; ansic: 7,927; javascript: 5,643; objc: 2,041; sh: 935; cs: 601; perl: 494; makefile: 145
file content (46 lines) | stat: -rw-r--r-- 1,992 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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