Change InputMetadata class to struct
[platform/core/api/mediavision.git] / CMakeLists.txt
1 set(fw_name "capi-media-vision")
2 project(${fw_name})
3 cmake_minimum_required(VERSION 2.6...3.13)
4
5 option(BUILD_ML_ONLY "Build mv_machine_learning only" OFF)
6 option(BUILD_VISUALIZER "Build visualizer for testing 2D/3D output" OFF)
7
8 if(BUILD_VISUALIZER)
9     add_compile_definitions(BUILD_VISUALIZER)
10 endif()
11
12 if(MV_3D_POINTCLOUD_IS_AVAILABLE)
13     add_compile_definitions(MV_3D_POINTCLOUD_IS_AVAILABLE)
14 endif()
15
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
40 include(FindPkgConfig)
41 include(GNUInstallDirs)
42
43 add_subdirectory(mv_common)
44 add_subdirectory(mv_machine_learning)
45 if(NOT BUILD_ML_ONLY)
46 add_subdirectory(mv_barcode)
47 add_subdirectory(mv_image)
48 add_subdirectory(mv_face)
49 add_subdirectory(mv_surveillance)
50 add_subdirectory(mv_3d)
51 add_subdirectory(mv_roi_tracker)
52 add_subdirectory(test)
53 endif()
54
55 if(BUILD_ML_ONLY)
56 install(
57         DIRECTORY include/ DESTINATION include/media
58         FILES_MATCHING
59         PATTERN "*_private.h" EXCLUDE
60         PATTERN "*_inference*.h"
61         PATTERN "*_common*.h"
62         )
63 else()
64 install(
65         DIRECTORY include/ DESTINATION include/media
66         FILES_MATCHING
67         PATTERN "*_private.h" EXCLUDE
68         PATTERN "*.h"
69         )
70 endif()
71
72 set(PC_NAME ${fw_name})
73 if (${ENABLE_ML_FACE_RECOGNITION})
74     set(PC_REQUIRED "${fw_name}-barcode ${fw_name}-face ${fw_name}-image ${fw_name}-surveillance ${fw_name}-inference ${fw_name}-training ${fw_name}-face-recognition ${fw_name}-tracker ${fw_name}-3d")
75     set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME} -l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} \
76 -l${MV_IMAGE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_SURVEILLANCE_LIB_NAME} -l${MV_INFERENCE_LIB_NAME} -l${MV_TRAINING_LIB_NAME} -l${MV_FACE_RECOG_LIB_NAME} -l${MV_ROI_TRACKER_LIB_NAME} -l${MV_3D_LIB_NAME}")
77 else()
78     set(PC_REQUIRED "${fw_name}-barcode ${fw_name}-face ${fw_name}-image ${fw_name}-surveillance ${fw_name}-inference ${fw_name}-tracker ${fw_name}-3d")
79     set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME} -l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} \
80 -l${MV_IMAGE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_SURVEILLANCE_LIB_NAME} -l${MV_INFERENCE_LIB_NAME} -l${MV_ROI_TRACKER_LIB_NAME} -l${MV_3D_LIB_NAME}")
81 endif()
82
83 configure_file(
84     ${fw_name}.pc.in
85     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
86     @ONLY
87 )
88
89 if(NOT BUILD_ML_ONLY)
90 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
91 endif()
92
93 set(pc_dependents "capi-media-tool")
94 set(PC_NAME ${fw_name}-common)
95 set(PC_REQUIRED ${pc_dependents})
96 set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME}")
97 configure_file(
98     ${fw_name}.pc.in
99     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc
100     @ONLY
101 )
102 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
103
104 # now all sub package dependent common
105 set(PC_REQUIRED ${fw_name}-common)
106
107 if(NOT BUILD_ML_ONLY)
108 set(PC_NAME ${fw_name}-barcode)
109 set(PC_LDFLAGS "-l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
110 configure_file(
111     ${fw_name}.pc.in
112     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc
113     @ONLY
114 )
115 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
116
117 set(PC_NAME ${fw_name}-face)
118 set(PC_LDFLAGS "-l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
119 configure_file(
120     ${fw_name}.pc.in
121     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc
122     @ONLY
123 )
124 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
125
126 set(PC_NAME ${fw_name}-image)
127 set(PC_LDFLAGS "-l${MV_IMAGE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
128 configure_file(
129     ${fw_name}.pc.in
130     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc
131     @ONLY
132 )
133 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
134
135 set(PC_NAME ${fw_name}-surveillance)
136 set(PC_LDFLAGS "-l${MV_SURVEILLANCE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
137 configure_file(
138     ${fw_name}.pc.in
139     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc
140     @ONLY
141 )
142 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
143
144 set(PC_NAME ${fw_name}-3d)
145 set(PC_LDFLAGS "-l${MV_3D_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
146 configure_file(
147     ${fw_name}.pc.in
148     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-3d.pc
149     @ONLY
150 )
151 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-3d.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
152 endif()
153
154 set(PC_NAME ${fw_name}-inference)
155 set(PC_LDFLAGS "-l${MV_INFERENCE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
156 configure_file(
157     ${fw_name}.pc.in
158     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc
159     @ONLY
160 )
161 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
162
163 set(PC_NAME ${fw_name}-object-detection)
164 set(PC_LDFLAGS "-l${MV_OBJECT_DETECTION_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
165 configure_file(
166         ${fw_name}.pc.in
167         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-object-detection.pc
168         @ONLY
169 )
170 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-object-detection.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
171 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/object_detection/meta/object_detection_3d.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
172
173 if (${ENABLE_ML_FACE_RECOGNITION})
174     set(PC_NAME ${fw_name}-training)
175     set(PC_LDFLAGS "-l${MV_TRAINING_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
176     configure_file(
177         ${fw_name}.pc.in
178         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-training.pc
179         @ONLY
180     )
181     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-training.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
182
183         set(PC_NAME ${fw_name}-face-recognition)
184     set(PC_LDFLAGS "-l${MV_FACE_RECOG_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
185     configure_file(
186         ${fw_name}.pc.in
187         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face-recognition.pc
188         @ONLY
189     )
190     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face-recognition.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
191     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/face_recognition/meta/face_recognition.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
192 endif()
193
194 set(PC_NAME ${fw_name}-tracker)
195 set(PC_LDFLAGS "-l${MV_ROI_TRACKER_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
196 configure_file(
197     ${fw_name}.pc.in
198     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-tracker.pc
199     @ONLY
200 )
201 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-tracker.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
202
203 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/media-vision-config.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})