1 set(fw_name "capi-media-vision")
3 cmake_minimum_required(VERSION 3.13)
5 option(BUILD_VISUALIZER "Build visualizer for testing 2D/3D output" OFF)
6 option(BUILD_CAMERA_PACKET "Build camera packet output test" OFF)
9 add_compile_definitions(BUILD_VISUALIZER)
12 if(MV_3D_POINTCLOUD_IS_AVAILABLE)
13 add_compile_definitions(MV_3D_POINTCLOUD_IS_AVAILABLE)
16 set(MV_COMMON_LIB_NAME "mv_common")
17 set(MV_BARCODE_DETECTOR_LIB_NAME "mv_barcode_detector" CACHE STRING
18 "Name of the library will be built for barcode detecting module (without extension).")
19 set(MV_BARCODE_GENERATOR_LIB_NAME "mv_barcode_generator" CACHE STRING
20 "Name of the library will be built for barcode generating module (without extension).")
21 set(MV_IMAGE_LIB_NAME "mv_image" CACHE STRING
22 "Name of the library will be built for image module (without extension).")
23 set(MV_FACE_LIB_NAME "mv_face" CACHE STRING
24 "Name of the library will be built for barcode generating module (without extension).")
25 set(MV_SURVEILLANCE_LIB_NAME "mv_surveillance" CACHE STRING
26 "Name of the library will be built for surveillance module (without extension).")
27 set(MV_INFERENCE_LIB_NAME "mv_inference" CACHE STRING
28 "Name of the library will be built for inference module (without extension).")
29 set(MV_TRAINING_LIB_NAME "mv_training" CACHE STRING
30 "Name of the library will be built for training module (without extension).")
31 set(MV_FACE_RECOG_LIB_NAME "mv_face_recognition" CACHE STRING
32 "Name of the library will be built for face recognition module (without extension).")
33 set(MV_3D_LIB_NAME "mv_3d" CACHE STRING
34 "Name of the library will be built for 3d module (without extension).")
35 set(MV_ROI_TRACKER_LIB_NAME "mv_roi_tracker" CACHE STRING
36 "Name of the library will be built for tracker module (without extension).")
37 set(MV_OBJECT_DETECTION_LIB_NAME "mv_object_detection" CACHE STRING
38 "Name of the library will be built for object detection module (without extension).")
39 set(MV_OBJECT_DETECTION_3D_LIB_NAME "mv_object_detection_3d" CACHE STRING
40 "Name of the library will be built for object detection 3d module (without extension).")
41 set(MV_LANDMARK_DETECTION_LIB_NAME "mv_landmark_detection" CACHE STRING
42 "Name of the library will be built for object detection 3d module (without extension).")
43 set(MV_IMAGE_CLASSIFICATION_LIB_NAME "mv_image_classification" CACHE STRING
44 "Name of the library will be built for image classification module (without extension).")
45 set(MV_IMAGE_SEGMENTATION_LIB_NAME "mv_image_segmentation" CACHE STRING
46 "Name of the library will be built for image segmentation module (without extension).")
48 include(FindPkgConfig)
49 include(GNUInstallDirs)
51 pkg_check_modules(TIZEN_PKG QUIET capi-system-info)
56 add_compile_definitions("MV_CONFIG_PATH=\"${PROJECT_SOURCE_DIR}/\"")
59 add_subdirectory(mv_common)
60 add_subdirectory(mv_machine_learning)
62 add_subdirectory(mv_barcode)
63 add_subdirectory(mv_image)
64 add_subdirectory(mv_face)
65 add_subdirectory(mv_surveillance)
66 add_subdirectory(mv_3d)
67 add_subdirectory(mv_roi_tracker)
70 add_subdirectory(test)
75 set(TOTAL_REQUIRED "")
78 set(pc_dependents "capi-media-tool")
79 set(PC_NAME ${fw_name}-common)
80 set(PC_REQUIRED ${pc_dependents})
81 set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME}")
84 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-common.pc
87 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-common.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
88 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
90 # now all sub package dependent common
91 set(PC_REQUIRED ${fw_name}-common)
93 set(PC_NAME ${fw_name}-barcode)
94 set(PC_LDFLAGS "-l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
97 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-barcode.pc
100 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-barcode.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
101 list(APPEND TOTAL_REQUIRED ${PC_NAME})
102 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
104 set(PC_NAME ${fw_name}-face)
105 set(PC_LDFLAGS "-l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
108 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-face.pc
111 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-face.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
112 list(APPEND TOTAL_REQUIRED ${PC_NAME})
113 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
115 set(PC_NAME ${fw_name}-image)
116 set(PC_LDFLAGS "-l${MV_IMAGE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
119 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image.pc
122 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
123 list(APPEND TOTAL_REQUIRED ${PC_NAME})
124 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
126 set(PC_NAME ${fw_name}-surveillance)
127 set(PC_LDFLAGS "-l${MV_SURVEILLANCE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
130 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-surveillance.pc
133 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-surveillance.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
134 list(APPEND TOTAL_REQUIRED ${PC_NAME})
135 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
137 set(PC_NAME ${fw_name}-3d)
138 set(PC_LDFLAGS "-l${MV_3D_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
141 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-3d.pc
144 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-3d.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
145 list(APPEND TOTAL_REQUIRED ${PC_NAME})
146 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
148 set(PC_NAME ${fw_name}-inference)
149 set(PC_LDFLAGS "-l${MV_INFERENCE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
152 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-inference.pc
155 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-inference.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
156 list(APPEND TOTAL_REQUIRED ${PC_NAME})
157 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
159 set(PC_NAME ${fw_name}-tracker)
160 set(PC_LDFLAGS "-l${MV_ROI_TRACKER_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
163 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-tracker.pc
166 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-tracker.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
167 list(APPEND TOTAL_REQUIRED ${PC_NAME})
168 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
170 if (${ENABLE_ML_FACE_RECOGNITION})
171 set(PC_NAME ${fw_name}-training)
172 set(PC_LDFLAGS "-l${MV_TRAINING_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
175 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-training.pc
178 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-training.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
179 list(APPEND TOTAL_REQUIRED ${PC_NAME})
180 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
182 set(PC_NAME ${fw_name}-face-recognition)
183 set(PC_LDFLAGS "-l${MV_FACE_RECOG_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
186 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-face-recognition.pc
189 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-face-recognition.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
190 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/face_recognition/meta/face_recognition.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
191 list(APPEND TOTAL_REQUIRED ${PC_NAME})
192 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
195 if (${ENABLE_ML_IMAGE_CLASSIFICATION})
196 set(PC_NAME ${fw_name}-image-classification)
197 set(PC_LDFLAGS "-l${MV_IMAGE_CLASSIFICATION_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
200 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image-classification.pc
203 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image-classification.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
204 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/image_classification/meta/image_classification.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
205 list(APPEND TOTAL_REQUIRED ${PC_NAME})
206 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
209 if (${ENABLE_ML_OBJECT_DETECTION})
210 set(PC_NAME ${fw_name}-object-detection)
211 set(PC_LDFLAGS "-l${MV_OBJECT_DETECTION_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
214 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-object-detection.pc
217 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-object-detection.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
218 set(OBJECT_DETECTION_JSON_FILES
219 "${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection/meta/object_detection.json"
220 "${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection/meta/object_detection_plugin.json"
221 "${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection/meta/face_detection.json"
222 "${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection/meta/face_detection_plugin.json"
224 install(FILES ${OBJECT_DETECTION_JSON_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
225 list(APPEND TOTAL_REQUIRED ${PC_NAME})
226 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
229 if (${ENABLE_ML_OBJECT_DETECTION_3D})
230 set(PC_NAME ${fw_name}-object-detection-3d)
231 set(PC_LDFLAGS "-l${MV_OBJECT_DETECTION_3D_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
234 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-object-detection-3d.pc
237 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-object-detection-3d.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
238 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection_3d/meta/object_detection_3d.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
239 list(APPEND TOTAL_REQUIRED ${PC_NAME})
240 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
243 if (${ENABLE_ML_LANDMARK_DETECTION})
244 set(PC_NAME ${fw_name}-landmark-detection)
245 set(PC_LDFLAGS "-l${MV_LANDMARK_DETECTION_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
248 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-landmark-detection.pc
251 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-landmark-detection.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
252 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/landmark_detection/meta/facial_landmark.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
253 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/landmark_detection/meta/pose_landmark.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
254 list(APPEND TOTAL_REQUIRED ${PC_NAME})
255 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
258 if (${ENABLE_ML_IMAGE_SEGMENTATION})
259 set(PC_NAME ${fw_name}-image-segmentation)
260 set(PC_LDFLAGS "-l${MV_IMAGE_SEGMENTATION_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
263 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image-segmentation.pc
266 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}-image-segmentation.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
267 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/image_segmentation/meta/selfie_segmentation.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
268 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/image_segmentation/meta/selfie_segmentation_plugin.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
269 list(APPEND TOTAL_REQUIRED ${PC_NAME})
270 list(APPEND TOTAL_LDFLAGS ${PC_LDFLAGS})
273 string(REPLACE ";" " " TOTAL_LDFLAGS "${TOTAL_LDFLAGS}")
274 string(REPLACE " " ";" TOTAL_LDFLAGS_LIST "${TOTAL_LDFLAGS}")
275 list(REMOVE_DUPLICATES TOTAL_LDFLAGS_LIST)
276 string(REPLACE ";" " " TOTAL_LDFLAGS "${TOTAL_LDFLAGS_LIST}")
278 string(REPLACE ";" " " TOTAL_REQUIRED "${TOTAL_REQUIRED}")
279 string(REPLACE " " ";" TOTAL_REQUIRED_LIST "${TOTAL_REQUIRED}")
280 list(REMOVE_DUPLICATES TOTAL_REQUIRED_LIST)
281 string(REPLACE ";" " " TOTAL_REQUIRED "${TOTAL_REQUIRED_LIST}")
283 set(PC_NAME ${fw_name})
284 set(PC_REQUIRED "${TOTAL_REQUIRED}")
285 set(PC_LDFLAGS "${TOTAL_LDFLAGS}")
288 ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}.pc
292 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
293 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/media-vision-config.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})