Add camera packet test
[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 option(BUILD_DESIGNQR "Build Design QR feature" OFF)
8 option(BUILD_CAMERA_PACKET "Build camera packet output test" OFF)
9
10 if(BUILD_VISUALIZER)
11     add_compile_definitions(BUILD_VISUALIZER)
12 endif()
13
14 if(MV_3D_POINTCLOUD_IS_AVAILABLE)
15     add_compile_definitions(MV_3D_POINTCLOUD_IS_AVAILABLE)
16 endif()
17
18 set(MV_COMMON_LIB_NAME "mv_common")
19 set(MV_BARCODE_DETECTOR_LIB_NAME "mv_barcode_detector" CACHE STRING
20        "Name of the library will be built for barcode detecting module (without extension).")
21 set(MV_BARCODE_GENERATOR_LIB_NAME "mv_barcode_generator" CACHE STRING
22        "Name of the library will be built for barcode generating module (without extension).")
23 set(MV_IMAGE_LIB_NAME "mv_image" CACHE STRING
24        "Name of the library will be built for image module (without extension).")
25 set(MV_FACE_LIB_NAME "mv_face" CACHE STRING
26        "Name of the library will be built for barcode generating module (without extension).")
27 set(MV_SURVEILLANCE_LIB_NAME "mv_surveillance" CACHE STRING
28        "Name of the library will be built for surveillance module (without extension).")
29 set(MV_INFERENCE_LIB_NAME "mv_inference" CACHE STRING
30        "Name of the library will be built for inference module (without extension).")
31 set(MV_TRAINING_LIB_NAME "mv_training" CACHE STRING
32        "Name of the library will be built for training module (without extension).")
33 set(MV_FACE_RECOG_LIB_NAME "mv_face_recognition" CACHE STRING
34        "Name of the library will be built for face recognition module (without extension).")
35 set(MV_3D_LIB_NAME "mv_3d" CACHE STRING
36        "Name of the library will be built for 3d module (without extension).")
37 set(MV_ROI_TRACKER_LIB_NAME "mv_roi_tracker" CACHE STRING
38        "Name of the library will be built for tracker 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 "*_internal.h" EXCLUDE
69         PATTERN "*.h"
70         )
71 endif()
72
73 if(WITH_DA_PROFILE)
74 install(
75         DIRECTORY include/ DESTINATION include/media
76         FILES_MATCHING
77         PATTERN "mv_common_internal.h"
78         )
79 endif()
80
81 if(BUILD_DESIGNQR)
82 install(
83         DIRECTORY include/ DESTINATION include/media
84         FILES_MATCHING
85         PATTERN "mv_barcode_generate_internal.h"
86         )
87 endif()
88
89 set(PC_NAME ${fw_name})
90 if (${ENABLE_ML_FACE_RECOGNITION})
91     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")
92     set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME} -l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} \
93 -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}")
94 else()
95     set(PC_REQUIRED "${fw_name}-barcode ${fw_name}-face ${fw_name}-image ${fw_name}-surveillance ${fw_name}-inference ${fw_name}-tracker ${fw_name}-3d")
96     set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME} -l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} \
97 -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}")
98 endif()
99
100 configure_file(
101     ${fw_name}.pc.in
102     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
103     @ONLY
104 )
105
106 if(NOT BUILD_ML_ONLY)
107 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
108 endif()
109
110 set(pc_dependents "capi-media-tool")
111 set(PC_NAME ${fw_name}-common)
112 set(PC_REQUIRED ${pc_dependents})
113 set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME}")
114 configure_file(
115     ${fw_name}.pc.in
116     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc
117     @ONLY
118 )
119 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
120
121 # now all sub package dependent common
122 set(PC_REQUIRED ${fw_name}-common)
123
124 if(NOT BUILD_ML_ONLY)
125 set(PC_NAME ${fw_name}-barcode)
126 set(PC_LDFLAGS "-l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
127 configure_file(
128     ${fw_name}.pc.in
129     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc
130     @ONLY
131 )
132 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
133
134 set(PC_NAME ${fw_name}-face)
135 set(PC_LDFLAGS "-l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
136 configure_file(
137     ${fw_name}.pc.in
138     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc
139     @ONLY
140 )
141 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
142
143 set(PC_NAME ${fw_name}-image)
144 set(PC_LDFLAGS "-l${MV_IMAGE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
145 configure_file(
146     ${fw_name}.pc.in
147     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc
148     @ONLY
149 )
150 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
151
152 set(PC_NAME ${fw_name}-surveillance)
153 set(PC_LDFLAGS "-l${MV_SURVEILLANCE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
154 configure_file(
155     ${fw_name}.pc.in
156     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc
157     @ONLY
158 )
159 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
160
161 set(PC_NAME ${fw_name}-3d)
162 set(PC_LDFLAGS "-l${MV_3D_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
163 configure_file(
164     ${fw_name}.pc.in
165     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-3d.pc
166     @ONLY
167 )
168 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-3d.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
169 endif()
170
171 set(PC_NAME ${fw_name}-inference)
172 set(PC_LDFLAGS "-l${MV_INFERENCE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
173 configure_file(
174     ${fw_name}.pc.in
175     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc
176     @ONLY
177 )
178 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
179
180 if (${ENABLE_ML_FACE_RECOGNITION})
181     set(PC_NAME ${fw_name}-training)
182     set(PC_LDFLAGS "-l${MV_TRAINING_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
183     configure_file(
184         ${fw_name}.pc.in
185         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-training.pc
186         @ONLY
187     )
188     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-training.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
189
190         set(PC_NAME ${fw_name}-face-recognition)
191     set(PC_LDFLAGS "-l${MV_FACE_RECOG_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
192     configure_file(
193         ${fw_name}.pc.in
194         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face-recognition.pc
195         @ONLY
196     )
197     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face-recognition.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
198     install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mv_machine_learning/face_recognition/meta/face_recognition.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})
199 endif()
200
201 set(PC_NAME ${fw_name}-tracker)
202 set(PC_LDFLAGS "-l${MV_ROI_TRACKER_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
203 configure_file(
204     ${fw_name}.pc.in
205     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-tracker.pc
206     @ONLY
207 )
208 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-tracker.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
209
210 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/media-vision-config.json DESTINATION ${CMAKE_INSTALL_DATADIR}/${fw_name})