Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/highgui/CMakeLists.txt
16337 views
1
set(the_description "High-level GUI")
2
if(ANDROID)
3
ocv_add_module(highgui opencv_imgproc opencv_imgcodecs OPTIONAL opencv_videoio WRAP python)
4
else()
5
ocv_add_module(highgui opencv_imgproc opencv_imgcodecs OPTIONAL opencv_videoio WRAP python java)
6
endif()
7
8
# ----------------------------------------------------------------------------
9
# CMake file for highgui. See root CMakeLists.txt
10
# Some parts taken from version of Hartmut Seichter, HIT Lab NZ.
11
# Jose Luis Blanco, 2008
12
# ----------------------------------------------------------------------------
13
14
if(DEFINED WINRT AND NOT DEFINED ENABLE_WINRT_MODE_NATIVE)
15
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
16
endif()
17
18
if(APPLE)
19
ocv_include_directories(${ZLIB_INCLUDE_DIRS})
20
list(APPEND HIGHGUI_LIBRARIES ${ZLIB_LIBRARIES})
21
endif()
22
23
if(HAVE_WEBP)
24
add_definitions(-DHAVE_WEBP)
25
endif()
26
27
set(highgui_hdrs
28
${CMAKE_CURRENT_LIST_DIR}/src/precomp.hpp
29
)
30
31
set(highgui_srcs
32
${CMAKE_CURRENT_LIST_DIR}/src/window.cpp
33
${CMAKE_CURRENT_LIST_DIR}/src/roiSelector.cpp
34
)
35
36
file(GLOB highgui_ext_hdrs
37
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/*.hpp"
38
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.hpp"
39
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.h")
40
41
# Removing WinRT API headers by default
42
list(REMOVE_ITEM highgui_ext_hdrs "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/highgui_winrt.hpp")
43
44
if(HAVE_QT5)
45
# "Automoc" doesn't work properly with opencv_world build, use QT5_WRAP_CPP() directly
46
#set(CMAKE_AUTOMOC ON)
47
48
set(CMAKE_INCLUDE_CURRENT_DIR ON)
49
50
QT5_ADD_RESOURCES(_RCC_OUTFILES ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.qrc)
51
QT5_WRAP_CPP(_MOC_OUTFILES ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h)
52
list(APPEND highgui_srcs
53
${CMAKE_CURRENT_LIST_DIR}/src/window_QT.cpp
54
${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h
55
${_MOC_OUTFILES}
56
${_RCC_OUTFILES})
57
58
foreach(dt5_dep Core Gui Widgets Test Concurrent)
59
add_definitions(${Qt5${dt5_dep}_DEFINITIONS})
60
include_directories(${Qt5${dt5_dep}_INCLUDE_DIRS})
61
list(APPEND HIGHGUI_LIBRARIES ${Qt5${dt5_dep}_LIBRARIES})
62
endforeach()
63
64
if(HAVE_QT_OPENGL)
65
add_definitions(${Qt5OpenGL_DEFINITIONS})
66
include_directories(${Qt5OpenGL_INCLUDE_DIRS})
67
list(APPEND HIGHGUI_LIBRARIES ${Qt5OpenGL_LIBRARIES})
68
endif()
69
70
elseif(HAVE_QT)
71
if (HAVE_QT_OPENGL)
72
set(QT_USE_QTOPENGL TRUE)
73
endif()
74
include(${QT_USE_FILE})
75
76
QT4_ADD_RESOURCES(_RCC_OUTFILES ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.qrc)
77
QT4_WRAP_CPP(_MOC_OUTFILES ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h)
78
79
list(APPEND HIGHGUI_LIBRARIES ${QT_LIBRARIES})
80
list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.cpp ${_MOC_OUTFILES} ${_RCC_OUTFILES})
81
ocv_check_flag_support(CXX -Wno-missing-declarations _have_flag "")
82
if(${_have_flag})
83
set_source_files_properties(${_RCC_OUTFILES} PROPERTIES COMPILE_FLAGS -Wno-missing-declarations)
84
endif()
85
elseif(WINRT)
86
if(NOT WINRT_8_0)
87
# Dependencies used by the implementation referenced
88
# below are not available on WinRT 8.0.
89
# Enabling it for WiRT 8.1+ only.
90
91
# WinRT 8.1+ detected. Adding WinRT API header.
92
message(STATUS " ${name}: WinRT detected. Adding WinRT API header")
93
list(APPEND highgui_ext_hdrs "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/highgui_winrt.hpp")
94
95
96
list(APPEND highgui_srcs
97
${CMAKE_CURRENT_LIST_DIR}/src/window_winrt.cpp
98
${CMAKE_CURRENT_LIST_DIR}/src/window_winrt_bridge.cpp)
99
list(APPEND highgui_hdrs
100
${CMAKE_CURRENT_LIST_DIR}/src/window_winrt_bridge.hpp)
101
endif()
102
103
# libraries below are neither available nor required
104
# on ARM devices and/or Windows Phone
105
if(WINRT_PHONE OR (OpenCV_ARCH STREQUAL "ARM"))
106
list(REMOVE_ITEM HIGHGUI_LIBRARIES "comctl32" "gdi32" "ole32" "setupapi")
107
if(WINRT_PHONE)
108
message(STATUS " ${name}: Windows Phone detected")
109
elseif(OpenCV_ARCH STREQUAL "ARM")
110
message(STATUS " ${name}: ARM detected")
111
if(WINRT_STORE)
112
list(REMOVE_ITEM HIGHGUI_LIBRARIES "ws2_32")
113
message(STATUS " ${name}: Removing 'ws2_32.lib'")
114
endif()
115
endif()
116
message(STATUS " ${name}: Removing 'comctl32.lib, gdi32.lib, ole32.lib, setupapi.lib'")
117
message(STATUS " ${name}: Leaving '${HIGHGUI_LIBRARIES}'")
118
endif()
119
elseif(HAVE_WIN32UI)
120
list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_w32.cpp)
121
elseif(HAVE_GTK OR HAVE_GTK3)
122
list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_gtk.cpp)
123
elseif(HAVE_CARBON)
124
list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_carbon.cpp)
125
list(APPEND HIGHGUI_LIBRARIES "-framework Carbon" "-framework QuickTime")
126
elseif(HAVE_COCOA)
127
list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_cocoa.mm)
128
list(APPEND HIGHGUI_LIBRARIES "-framework Cocoa")
129
endif()
130
131
if(UNIX)
132
#these variables are set by CHECK_MODULE macro
133
foreach(P ${HIGHGUI_INCLUDE_DIRS})
134
ocv_include_directories(${P})
135
endforeach()
136
137
foreach(P ${HIGHGUI_LIBRARY_DIRS})
138
link_directories(${P})
139
endforeach()
140
endif()
141
142
source_group("Src" FILES ${highgui_srcs} ${highgui_hdrs})
143
source_group("Include" FILES ${highgui_ext_hdrs})
144
ocv_set_module_sources(HEADERS ${highgui_ext_hdrs} SOURCES ${highgui_srcs} ${highgui_hdrs})
145
ocv_module_include_directories()
146
147
ocv_create_module(${HIGHGUI_LIBRARIES})
148
149
macro(ocv_highgui_configure_target)
150
if(APPLE)
151
add_apple_compiler_options(the_module)
152
endif()
153
154
if(MSVC)
155
set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /NODEFAULTLIB:libcmt.lib /DEBUG")
156
endif()
157
158
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
159
endmacro()
160
161
if(NOT BUILD_opencv_world)
162
ocv_highgui_configure_target()
163
endif()
164
165
ocv_add_accuracy_tests()
166
ocv_add_perf_tests()
167
168