mv_machine_learning: add SNPE and NNTRAINER backend types
[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)
4
5 option(BUILD_ML_ONLY "Build mv_machine_learning only" OFF)
6
7 set(MV_COMMON_LIB_NAME "mv_common")
8 set(MV_BARCODE_DETECTOR_LIB_NAME "mv_barcode_detector" CACHE STRING
9        "Name of the library will be built for barcode detecting module (without extension).")
10 set(MV_BARCODE_GENERATOR_LIB_NAME "mv_barcode_generator" CACHE STRING
11        "Name of the library will be built for barcode generating module (without extension).")
12 set(MV_IMAGE_LIB_NAME "mv_image" CACHE STRING
13        "Name of the library will be built for image module (without extension).")
14 set(MV_FACE_LIB_NAME "mv_face" CACHE STRING
15        "Name of the library will be built for barcode generating module (without extension).")
16 set(MV_SURVEILLANCE_LIB_NAME "mv_surveillance" CACHE STRING
17        "Name of the library will be built for surveillance module (without extension).")
18 set(MV_INFERENCE_LIB_NAME "mv_inference" CACHE STRING
19        "Name of the library will be built for inference module (without extension).")
20
21 include(FindPkgConfig)
22 include(GNUInstallDirs)
23
24 add_subdirectory(mv_common)
25 add_subdirectory(mv_machine_learning)
26 if(NOT BUILD_ML_ONLY)
27 add_subdirectory(mv_barcode)
28 add_subdirectory(mv_image)
29 add_subdirectory(mv_face)
30 add_subdirectory(mv_surveillance)
31 add_subdirectory(test)
32 endif()
33
34 if(BUILD_ML_ONLY)
35 install(
36         DIRECTORY include/ DESTINATION include/media
37         FILES_MATCHING
38         PATTERN "*_private.h" EXCLUDE
39         PATTERN "*_inference*.h"
40         PATTERN "*_common*.h"
41         )
42 else()
43 install(
44         DIRECTORY include/ DESTINATION include/media
45         FILES_MATCHING
46         PATTERN "*_private.h" EXCLUDE
47         PATTERN "*.h"
48         )
49 endif()
50
51 set(PC_NAME ${fw_name})
52 set(PC_REQUIRED "${fw_name}-barcode ${fw_name}-face ${fw_name}-image ${fw_name}-surveillance ${fw_name}-inference")
53 set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME} -l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} \
54 -l${MV_IMAGE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_SURVEILLANCE_LIB_NAME} -l${MV_INFERENCE_LIB_NAME}")
55
56 configure_file(
57     ${fw_name}.pc.in
58     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
59     @ONLY
60 )
61
62 if(NOT BUILD_ML_ONLY) 
63 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
64 endif()
65
66 set(pc_dependents "capi-media-tool")
67 set(PC_NAME ${fw_name}-common)
68 set(PC_REQUIRED ${pc_dependents})
69 set(PC_LDFLAGS "-l${MV_COMMON_LIB_NAME}")
70 configure_file(
71     ${fw_name}.pc.in
72     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc
73     @ONLY
74 )
75 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-common.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
76
77 # now all sub package dependent common
78 set(PC_REQUIRED ${fw_name}-common)
79
80 if(NOT BUILD_ML_ONLY)
81 set(PC_NAME ${fw_name}-barcode)
82 set(PC_LDFLAGS "-l${MV_BARCODE_DETECTOR_LIB_NAME} -l${MV_BARCODE_GENERATOR_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
83 configure_file(
84     ${fw_name}.pc.in
85     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc
86     @ONLY
87 )
88 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-barcode.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
89
90 set(PC_NAME ${fw_name}-face)
91 set(PC_LDFLAGS "-l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
92 configure_file(
93     ${fw_name}.pc.in
94     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc
95     @ONLY
96 )
97 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-face.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
98
99 set(PC_NAME ${fw_name}-image)
100 set(PC_LDFLAGS "-l${MV_IMAGE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
101 configure_file(
102     ${fw_name}.pc.in
103     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc
104     @ONLY
105 )
106 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-image.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
107
108 set(PC_NAME ${fw_name}-surveillance)
109 set(PC_LDFLAGS "-l${MV_SURVEILLANCE_LIB_NAME} -l${MV_FACE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
110 configure_file(
111     ${fw_name}.pc.in
112     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc
113     @ONLY
114 )
115 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-surveillance.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
116 endif()
117
118 set(PC_NAME ${fw_name}-inference)
119 set(PC_LDFLAGS "-l${MV_INFERENCE_LIB_NAME} -l${MV_COMMON_LIB_NAME}")
120 configure_file(
121     ${fw_name}.pc.in
122     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc
123     @ONLY
124 )
125 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}-inference.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)