Publishing R5 content (#72)
[platform/upstream/dldt.git] / inference-engine / thirdparty / fluid / modules / gapi / CMakeLists.txt
1 # FIXME: Rework standalone build in more generic maner
2 # (Restructure directories, add common pass, etc)
3 if (NOT DEFINED OPENCV_INITIAL_PASS)
4     include("cmake/standalone.cmake")
5     return()
6 endif()
7
8 # FIXME: Remove CXX11 check after complete switch to OpenCV 4 branch
9 # (CI, bundle, workloads, etc)
10 if (NOT HAVE_CXX11 OR NOT TARGET ade)
11   # can't build G-API because of the above reasons
12   ocv_module_disable(gapi)
13   return()
14 endif()
15
16 set(the_description "OpenCV G-API Core Module")
17 ocv_add_module(gapi opencv_imgproc)
18
19 file(GLOB gapi_ext_hdrs
20     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/*.hpp"
21     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.hpp"
22     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.h"
23     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/util/*.hpp"
24     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/cpu/*.hpp"
25     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/gpu/*.hpp"
26     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/fluid/*.hpp"
27     "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/own/*.hpp"
28     )
29
30 set(gapi_srcs
31     # Front-end part
32     src/api/gapi_priv.cpp
33     src/api/gmat.cpp
34     src/api/garray.cpp
35     src/api/gscalar.cpp
36     src/api/gkernel.cpp
37     src/api/gbackend.cpp
38     src/api/gproto.cpp
39     src/api/gnode.cpp
40     src/api/gcall.cpp
41     src/api/gcomputation.cpp
42     src/api/operators.cpp
43     src/api/kernels_core.cpp
44     src/api/kernels_imgproc.cpp
45
46     # Compiler part
47     src/compiler/gmodel.cpp
48     src/compiler/gmodelbuilder.cpp
49     src/compiler/gislandmodel.cpp
50     src/compiler/gcompiler.cpp
51     src/compiler/gcompiled.cpp
52     src/compiler/passes/helpers.cpp
53     src/compiler/passes/dump_dot.cpp
54     src/compiler/passes/islands.cpp
55     src/compiler/passes/meta.cpp
56     src/compiler/passes/kernels.cpp
57     src/compiler/passes/exec.cpp
58
59     # Executor
60     src/executor/gexecutor.cpp
61
62     # CPU Backend (currently built-in)
63     src/backends/cpu/gcpubackend.cpp
64     src/backends/cpu/gcpukernel.cpp
65     src/backends/cpu/gcpuimgproc.cpp
66     src/backends/cpu/gcpucore.cpp
67
68     # Fluid Backend (also built-in, FIXME:move away)
69     src/backends/fluid/gfluidbuffer.cpp
70     src/backends/fluid/gfluidbackend.cpp
71     src/backends/fluid/gfluidimgproc.cpp
72     src/backends/fluid/gfluidimgproc_func.dispatch.cpp
73     src/backends/fluid/gfluidcore.cpp
74
75     # GPU Backend (currently built-in)
76     src/backends/gpu/ggpubackend.cpp
77     src/backends/gpu/ggpukernel.cpp
78     src/backends/gpu/ggpuimgproc.cpp
79     src/backends/gpu/ggpucore.cpp
80
81     # Compound
82     src/backends/common/gcompoundbackend.cpp
83     src/backends/common/gcompoundkernel.cpp
84     )
85
86 ocv_add_dispatched_file(backends/fluid/gfluidimgproc_func SSE4_1 AVX2)
87
88 ocv_list_add_prefix(gapi_srcs "${CMAKE_CURRENT_LIST_DIR}/")
89
90 # For IDE users
91 ocv_source_group("Src"     FILES ${gapi_srcs})
92 ocv_source_group("Include" FILES ${gapi_ext_hdrs})
93
94 ocv_set_module_sources(HEADERS ${gapi_ext_hdrs} SOURCES ${gapi_srcs})
95 ocv_module_include_directories("${CMAKE_CURRENT_LIST_DIR}/src")
96
97 # Note `ade` is not a module name but link dependency for ${the_module}
98 # (which is opencv_gapi)
99 ocv_create_module(ade)
100
101 ocv_add_accuracy_tests()
102 # FIXME: test binary is linked with ADE directly since ADE symbols
103 # are not exported from libopencv_gapi.so in any form - thus
104 # there're two copies of ADE code in memory when tests run (!)
105 # src/ is specified to include dirs for INTERNAL tests only.
106 if(TARGET opencv_test_gapi)
107   target_include_directories(opencv_test_gapi PRIVATE "${CMAKE_CURRENT_LIST_DIR}/src")
108   target_link_libraries(opencv_test_gapi PRIVATE ade)
109 endif()
110
111 ocv_add_perf_tests()
112 ocv_add_samples()