1 # FIXME: Rework standalone build in more generic maner
2 # (Restructure directories, add common pass, etc)
3 if (NOT DEFINED OPENCV_INITIAL_PASS)
4 cmake_minimum_required(VERSION 3.3)
5 include("cmake/standalone.cmake")
9 # FIXME: Remove CXX11 check after complete switch to OpenCV 4 branch
10 # (CI, bundle, workloads, etc)
11 if (NOT HAVE_CXX11 OR NOT TARGET ade)
12 # can't build G-API because of the above reasons
13 ocv_module_disable(gapi)
17 set(the_description "OpenCV G-API Core Module")
18 ocv_add_module(gapi opencv_imgproc)
20 file(GLOB gapi_ext_hdrs
21 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/*.hpp"
22 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.hpp"
23 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.h"
24 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/util/*.hpp"
25 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/cpu/*.hpp"
26 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/gpu/*.hpp"
27 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/ocl/*.hpp"
28 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/fluid/*.hpp"
29 "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/own/*.hpp"
43 src/api/gcomputation.cpp
45 src/api/kernels_core.cpp
46 src/api/kernels_imgproc.cpp
50 src/compiler/gmodel.cpp
51 src/compiler/gmodelbuilder.cpp
52 src/compiler/gislandmodel.cpp
53 src/compiler/gcompiler.cpp
54 src/compiler/gcompiled.cpp
55 src/compiler/passes/helpers.cpp
56 src/compiler/passes/dump_dot.cpp
57 src/compiler/passes/islands.cpp
58 src/compiler/passes/meta.cpp
59 src/compiler/passes/kernels.cpp
60 src/compiler/passes/exec.cpp
63 src/executor/gexecutor.cpp
64 src/executor/gasync.cpp
66 # CPU Backend (currently built-in)
67 src/backends/cpu/gcpubackend.cpp
68 src/backends/cpu/gcpukernel.cpp
69 src/backends/cpu/gcpuimgproc.cpp
70 src/backends/cpu/gcpucore.cpp
72 # Fluid Backend (also built-in, FIXME:move away)
73 src/backends/fluid/gfluidbuffer.cpp
74 src/backends/fluid/gfluidbackend.cpp
75 src/backends/fluid/gfluidimgproc.cpp
76 src/backends/fluid/gfluidimgproc_func.dispatch.cpp
77 src/backends/fluid/gfluidcore.cpp
79 # OCL Backend (currently built-in)
80 src/backends/ocl/goclbackend.cpp
81 src/backends/ocl/goclkernel.cpp
82 src/backends/ocl/goclimgproc.cpp
83 src/backends/ocl/goclcore.cpp
86 src/backends/common/gcompoundbackend.cpp
87 src/backends/common/gcompoundkernel.cpp
90 ocv_add_dispatched_file(backends/fluid/gfluidimgproc_func SSE4_1 AVX2)
92 ocv_list_add_prefix(gapi_srcs "${CMAKE_CURRENT_LIST_DIR}/")
95 ocv_source_group("Src" FILES ${gapi_srcs})
96 ocv_source_group("Include" FILES ${gapi_ext_hdrs})
98 ocv_set_module_sources(HEADERS ${gapi_ext_hdrs} SOURCES ${gapi_srcs})
99 ocv_module_include_directories("${CMAKE_CURRENT_LIST_DIR}/src")
101 # Note `ade` is not a module name but link dependency for ${the_module}
102 # (which is opencv_gapi)
103 ocv_create_module(ade)
105 ocv_add_accuracy_tests()
106 # FIXME: test binary is linked with ADE directly since ADE symbols
107 # are not exported from libopencv_gapi.so in any form - thus
108 # there're two copies of ADE code in memory when tests run (!)
109 # src/ is specified to include dirs for INTERNAL tests only.
110 if(TARGET opencv_test_gapi)
111 target_include_directories(opencv_test_gapi PRIVATE "${CMAKE_CURRENT_LIST_DIR}/src")
112 target_link_libraries(opencv_test_gapi PRIVATE ade)