1 |
# $MidnightBSD$ |
2 |
|
3 |
PORTNAME?= opencv |
4 |
PORTVERSION= 2.4.10 |
5 |
PORTREVISION?= 0 |
6 |
CATEGORIES= graphics |
7 |
MASTER_SITES= SF/${PORTNAME}library/${PORTNAME}-unix/${PORTVERSION} |
8 |
|
9 |
MAINTAINER= ports@MidnightBSD.org |
10 |
COMMENT= Open Source Computer Vision library |
11 |
|
12 |
LICENSE= bsd3 |
13 |
LICENSE_FILE= ${WRKSRC}/LICENSE |
14 |
|
15 |
USES= cmake pkgconfig zip |
16 |
USE_LDCONFIG= yes |
17 |
WANT_GSTREAMER= yes |
18 |
MAKE_JOBS_UNSAFE= yes |
19 |
|
20 |
DATADIR= ${PREFIX}/share/OpenCV |
21 |
PLIST_SUB+= VERSION=${DISTVERSION} |
22 |
|
23 |
CMAKE_ARGS+= -DWITH_CUDA:BOOL=Off \ |
24 |
-DWITH_PVAPI:BOOL=Off \ |
25 |
-DWITH_UNICAP:BOOL=Off \ |
26 |
-DBUILD_TESTS:BOOL=Off \ |
27 |
-DBUILD_DOCS:BOOL=Off \ |
28 |
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_CMD} |
29 |
|
30 |
SUB_FILES= FindOpenCVCore.cmake |
31 |
SUB_LIST= OCV_VERSION=${PORTVERSION} |
32 |
|
33 |
OCV_CORE_MODS= core imgproc |
34 |
OCV_MODS= calib3d contrib features2d flann gpu \ |
35 |
highgui legacy ml ocl objdetect photo \ |
36 |
stitching superres ts video videostab |
37 |
OCV_NONFREE_MODS= nonfree |
38 |
OCV_JAVA_MODS= java |
39 |
OCV_PYTHON_MODS= python |
40 |
|
41 |
OPTIONS_DEFINE= DC1394 EXAMPLES NONFREE OPENGL |
42 |
OPTIONS_GROUP= IMAGE PERFORMANCE VIDEO |
43 |
OPTIONS_GROUP_IMAGE= JASPER JPEG OPENEXR PNG TIFF |
44 |
OPTIONS_GROUP_PERFORMANCE= EIGEN3 TBB |
45 |
OPTIONS_GROUP_VIDEO= FFMPEG GSTREAMER V4L XINE |
46 |
OPTIONS_RADIO= GUI |
47 |
OPTIONS_RADIO_GUI= GTK2 QT4 |
48 |
OPTIONS_DEFAULT= EIGEN3 JASPER JPEG PNG TIFF V4L |
49 |
OPTIONS_SUB= yes |
50 |
.if defined(OCV_CORE) |
51 |
OPTIONS_EXCLUDE= DC1394 EXAMPLES GTK2 QT4 JASPER JPEG NONFREE OPENEXR \ |
52 |
OPENGL PNG TIFF FFMPEG GSTREAMER V4L XINE |
53 |
.endif |
54 |
|
55 |
DC1394_DESC= IEEE 1394 camera support |
56 |
EIGEN3_DESC= Eigen 3 support |
57 |
IMAGE_DESC= Image format support |
58 |
NONFREE_DESC= Build functionality that has possible limitations of use |
59 |
PERFORMANCE_DESC= Performance enhancing libraries |
60 |
TBB_DESC= TBB support |
61 |
|
62 |
.include <bsd.mport.options.mk> |
63 |
|
64 |
.if ${PORT_OPTIONS:MDC1394} |
65 |
LIB_DEPENDS+= libdc1394.so:${PORTSDIR}/multimedia/libdc1394 |
66 |
CMAKE_ARGS+= -DWITH_1394:BOOL=On |
67 |
.else |
68 |
CMAKE_ARGS+= -DWITH_1394:BOOL=Off |
69 |
.endif |
70 |
|
71 |
.if ${PORT_OPTIONS:MEIGEN3} |
72 |
BUILD_DEPENDS+= ${LOCALBASE}/include/eigen3/Eigen/Eigen:${PORTSDIR}/math/eigen3 |
73 |
CMAKE_ARGS+= -DWITH_EIGEN:BOOL=On |
74 |
.else |
75 |
CMAKE_ARGS= -DWITH_EIGEN:BOOL=Off |
76 |
.endif |
77 |
|
78 |
.if ${PORT_OPTIONS:MEXAMPLES} |
79 |
PORTEXAMPLES= * |
80 |
. if !defined(OCV_SLAVE) |
81 |
CMAKE_ARGS+= -DBUILD_EXAMPLES:BOOL=On \ |
82 |
-DINSTALL_C_EXAMPLES:BOOL=On |
83 |
. endif |
84 |
.endif |
85 |
|
86 |
.if ${PORT_OPTIONS:MFFMPEG} |
87 |
LIB_DEPENDS+= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg |
88 |
CMAKE_ARGS+= -DWITH_FFMPEG:BOOL=On |
89 |
.else |
90 |
CMAKE_ARGS+= -DWITH_FFMPEG:BOOL=Off |
91 |
.endif |
92 |
|
93 |
.if ${PORT_OPTIONS:MGSTREAMER} |
94 |
USE_GSTREAMER= yes |
95 |
CMAKE_ARGS+= -DWITH_GSTREAMER:BOOL=On |
96 |
.else |
97 |
CMAKE_ARGS+= -DWITH_GSTREAMER:BOOL=Off |
98 |
.endif |
99 |
|
100 |
.if ${PORT_OPTIONS:MGTK2} |
101 |
USE_GNOME+= gtk20 |
102 |
CMAKE_ARGS+= -DWITH_GTK:BOOL=On |
103 |
. if ${PORT_OPTIONS:MOPENGL} |
104 |
LIB_DEPENDS+= libgtkglext-x11-1.0.so:${PORTSDIR}/x11-toolkits/gtkglext |
105 |
. endif |
106 |
.else |
107 |
CMAKE_ARGS+= -DWITH_GTK:BOOL=Off |
108 |
.endif |
109 |
|
110 |
.if ${PORT_OPTIONS:MJASPER} |
111 |
LIB_DEPENDS+= libjasper.so:${PORTSDIR}/graphics/jasper |
112 |
CMAKE_ARGS+= -DWITH_JASPER:BOOL=On |
113 |
.else |
114 |
CMAKE_ARGS+= -DWITH_JASPER:BOOL=Off |
115 |
.endif |
116 |
|
117 |
.if ${PORT_OPTIONS:MJPEG} |
118 |
LIB_DEPENDS+= libjpeg.so:${PORTSDIR}/graphics/jpeg |
119 |
CMAKE_ARGS+= -DWITH_JPEG:BOOL=On |
120 |
.else |
121 |
CMAKE_ARGS+= -DWITH_JPEG:BOOL=Off |
122 |
.endif |
123 |
|
124 |
.if ${PORT_OPTIONS:MNONFREE} |
125 |
CMAKE_ARGS+= -DBUILD_opencv_nonfree:BOOL=On |
126 |
.else |
127 |
CMAKE_ARGS+= -DBUILD_opencv_nonfree:BOOL=Off |
128 |
.endif |
129 |
|
130 |
.if ${PORT_OPTIONS:MOPENEXR} |
131 |
LIB_DEPENDS+= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR |
132 |
CMAKE_ARGS+= -DWITH_OPENEXR:BOOL=On |
133 |
.else |
134 |
CMAKE_ARGS+= -DWITH_OPENEXR:BOOL=Off |
135 |
.endif |
136 |
|
137 |
.if ${PORT_OPTIONS:MOPENGL} |
138 |
CMAKE_ARGS+= -DWITH_OPENGL:BOOL=On |
139 |
.else |
140 |
CMAKE_ARGS+= -DWITH_OPENGL:BOOL=Off |
141 |
.endif |
142 |
|
143 |
.if ${PORT_OPTIONS:MPNG} |
144 |
LIB_DEPENDS+= libpng.so:${PORTSDIR}/graphics/png |
145 |
CMAKE_ARGS+= -DWITH_PNG:BOOL=On |
146 |
.else |
147 |
CMAKE_ARGS+= -DWITH_PNG:BOOL=Off |
148 |
.endif |
149 |
|
150 |
.if ${PORT_OPTIONS:MQT4} |
151 |
USE_QT4+= gui moc_build qmake_build rcc_build uic_build qtestlib |
152 |
CMAKE_ARGS+= -DWITH_QT:STRING="4" |
153 |
. if ${PORT_OPTIONS:MOPENGL} |
154 |
USE_QT4+= opengl |
155 |
. endif |
156 |
.else |
157 |
CMAKE_ARGS+= -DWITH_QT:BOOL=Off |
158 |
.endif |
159 |
|
160 |
.if ${PORT_OPTIONS:MTBB} |
161 |
LIB_DEPENDS+= libtbb.so:${PORTSDIR}/devel/tbb |
162 |
CMAKE_ARGS+= -DWITH_TBB:BOOL=On \ |
163 |
-DTBB_INCLUDE_DIR:STRING="${LOCALBASE}/include" |
164 |
.else |
165 |
CMAKE_ARGS+= -DWITH_TBB:BOOL=Off |
166 |
.endif |
167 |
|
168 |
.if ${PORT_OPTIONS:MTIFF} |
169 |
LIB_DEPENDS+= libtiff.so:${PORTSDIR}/graphics/tiff |
170 |
CMAKE_ARGS+= -DWITH_TIFF:BOOL=On |
171 |
.else |
172 |
CMAKE_ARGS+= -DWITH_TIFF:BOOL=Off |
173 |
.endif |
174 |
|
175 |
.if ${PORT_OPTIONS:MV4L} |
176 |
LIB_DEPENDS+= libv4l2.so:${PORTSDIR}/multimedia/libv4l |
177 |
BUILD_DEPENDS+= ${LOCALBASE}/include/linux/videodev2.h:${PORTSDIR}/multimedia/v4l_compat |
178 |
CMAKE_ARGS+= -DWITH_V4L:BOOL=On \ |
179 |
-DCMAKE_REQUIRED_INCLUDES:STRING="${LOCALBASE}/include" |
180 |
.else |
181 |
CMAKE_ARGS+= -DWITH_V4L:BOOL=Off |
182 |
.endif |
183 |
|
184 |
.if ${PORT_OPTIONS:MXINE} |
185 |
LIB_DEPENDS+= libxine.so:${PORTSDIR}/multimedia/libxine |
186 |
CMAKE_ARGS+= -DWITH_XINE:BOOL=On |
187 |
.else |
188 |
CMAKE_ARGS+= -DWITH_XINE:BOOL=Off |
189 |
.endif |
190 |
|
191 |
.if defined(OCV_CORE) |
192 |
. for module in ${OCV_MODS} ${OCV_JAVA_MODS} ${OCV_PYTHON_MODS} |
193 |
CMAKE_ARGS+= -DBUILD_opencv_${module}:BOOL=Off |
194 |
. endfor |
195 |
.elif defined(OCV_PYTHON) |
196 |
LIB_DEPENDS+= libopencv_legacy.so:${PORTSDIR}/graphics/opencv |
197 |
BUILD_DEPENDS+= ${PYNUMPY} |
198 |
RUN_DEPENDS+= ${PYNUMPY} |
199 |
USES+= python |
200 |
CMAKE_ARGS+= -DBUILD_opencv_python:BOOL=On |
201 |
. for module in apps java stitching superres videostab |
202 |
CMAKE_ARGS+= -DBUILD_opencv_${module}:BOOL=Off |
203 |
. endfor |
204 |
INSTALL_WRKSRC= ${WRKSRC}/modules/python |
205 |
.elif defined(OCV_JAVA) |
206 |
BUILD_DEPENDS+= ant:${PORTSDIR}/devel/apache-ant |
207 |
LIB_DEPENDS+= libopencv_legacy.so:${PORTSDIR}/graphics/opencv |
208 |
USES+= python:build |
209 |
USE_JAVA= yes |
210 |
CMAKE_ARGS+= -DBUILD_opencv_java:BOOL=On |
211 |
. for module in apps python stitching superres videostab |
212 |
CMAKE_ARGS+= -DBUILD_opencv_${module}:BOOL=Off |
213 |
. endfor |
214 |
CMAKE_ENV+= JAVA_HOME="${JAVA_HOME}" |
215 |
INSTALL_WRKSRC= ${WRKSRC}/modules/java |
216 |
.else |
217 |
LIB_DEPENDS+= libopencv_core.so:${PORTSDIR}/graphics/opencv-core |
218 |
. for module in ${OCV_JAVA_MODS} ${OCV_PYTHON_MODS} |
219 |
CMAKE_ARGS+= -DBUILD_opencv_${module}:BOOL=Off |
220 |
. endfor |
221 |
.endif |
222 |
|
223 |
post-patch: |
224 |
@${MKDIR} ${CONFIGURE_WRKSRC} |
225 |
@${REINPLACE_CMD} -e '/pkgconfig/s|$${OPENCV_LIB_INSTALL_PATH}|libdata|' \ |
226 |
${WRKSRC}/cmake/OpenCVGenPkgconfig.cmake |
227 |
@${REINPLACE_CMD} -e 's|share/OpenCV/doc|${DOCSDIR_REL}|g' \ |
228 |
-e 's|share/OpenCV/samples|${EXAMPLESDIR_REL}|g' \ |
229 |
-e 's/FreeBSD|NetBSD|DragonFly/MidnightBSD|FreeBSD/g' \ |
230 |
${WRKSRC}/CMakeLists.txt |
231 |
@${FIND} ${WRKSRC} -name '*.orig' -exec ${RM} {} \; |
232 |
.if defined(OCV_CORE) |
233 |
@${REINPLACE_CMD} -e 's|opencv.pc|opencv-core.pc|g' \ |
234 |
${WRKSRC}/cmake/OpenCVGenPkgconfig.cmake |
235 |
@${REINPLACE_CMD} -e 's|Name:.*|Name: OpenCV-core|' \ |
236 |
${WRKSRC}/cmake/templates/opencv-XXX.pc.in |
237 |
.endif |
238 |
.if defined(OCV_SLAVE) |
239 |
@${REINPLACE_CMD} -e 's|add_subdirectory(data)||g' \ |
240 |
${WRKSRC}/CMakeLists.txt |
241 |
.endif |
242 |
|
243 |
post-install: |
244 |
.if !defined(OCV_SLAVE) |
245 |
(cd ${STAGEDIR}${PREFIX} && \ |
246 |
${RM} -r include/opencv2/core include/opencv2/imgproc \ |
247 |
lib/libopencv_core* lib/libopencv_imgproc*) |
248 |
.endif |
249 |
.if defined(OCV_CORE) |
250 |
${RM} -r ${STAGEDIR}${PREFIX}/include/opencv |
251 |
${RM} -r ${STAGEDIR}${DATADIR} |
252 |
${MKDIR} ${STAGEDIR}${PREFIX}/share/cmake/Modules |
253 |
${INSTALL_DATA} ${WRKDIR}/FindOpenCVCore.cmake ${STAGEDIR}${PREFIX}/share/cmake/Modules |
254 |
.endif |
255 |
.if defined(OCV_PYTHON) |
256 |
(cd ${STAGEDIR}${PREFIX} && \ |
257 |
${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ |
258 |
-d ${PYTHONPREFIX_SITELIBDIR} -f ${PYTHONPREFIX_SITELIBDIR:S|${PREFIX}/||} && \ |
259 |
${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \ |
260 |
-d ${PYTHONPREFIX_SITELIBDIR} -f ${PYTHONPREFIX_SITELIBDIR:S|${PREFIX}/||}) |
261 |
${MKDIR} ${STAGEDIR}${EXAMPLESDIR} |
262 |
. if defined(PYTHON_REL) && ${PYTHON_REL} >= 300 |
263 |
cd ${WRKSRC}/samples/python && \ |
264 |
${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/python |
265 |
. else |
266 |
cd ${WRKSRC}/samples/python2 && \ |
267 |
${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/python2 |
268 |
. endif |
269 |
.endif |
270 |
.if defined(OCV_JAVA) |
271 |
${MKDIR} ${STAGEDIR}${EXAMPLESDIR} |
272 |
cd ${WRKSRC}/samples/java && \ |
273 |
${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/java |
274 |
.endif |
275 |
|
276 |
.include <bsd.port.mk> |