blob: 540cae880b5dcc2ade42de9ec35d5b224e0734ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
project(QtGStreamer)
cmake_minimum_required(VERSION 2.8.9)
enable_testing()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
set(QTGSTREAMER_VERSION 0.10.2.1)
option(QTGSTREAMER_STATIC "Build QtGStreamer as a static library" OFF)
option(QTGSTREAMER_TESTS "Build QtGStreamer's tests" OFF)
option(QTGSTREAMER_EXAMPLES "Build QtGStreamer's examples" ON)
option(QTGSTREAMER_CODEGEN "Build and use QtGStreamer's codegen" OFF)
option(USE_GST_PLUGIN_DIR "Install gstreamer plugins at the system location" ON)
option(USE_QT_PLUGIN_DIR "Install qt plugins at the system location" ON)
set(QT_VERSION "4" CACHE STRING "Qt version used for the build")
include(MacroLogFeature)
include(QtHelpers)
macro_log_feature(QT_FOUND "Qt" "Required for building everything" "http://qt.nokia.com/" TRUE "${QT_MIN_VERSION}")
macro_log_feature(QT_QTOPENGL_FOUND "QtOpenGL"
"Required for OpenGL acceleration in qtvideosink and QtGStreamerUi"
"http://qt.nokia.com/" FALSE "${QT_MIN_VERSION}")
macro_log_feature(QT_QTDECLARATIVE_FOUND "QtDeclarative" "Required for building QML support"
"http://qt.nokia.com/" FALSE "${QT_MIN_VERSION}")
if (QTGSTREAMER_TESTS)
macro_log_feature(QT_QTTEST_FOUND "QtTest" "Required for building unit tests"
"http://qt.nokia.com/" FALSE "${QT_MIN_VERSION}")
if (NOT QT_QTTEST_FOUND)
set(QTGSTREAMER_TESTS OFF)
endif()
endif()
find_package(Boost 1.39)
macro_log_feature(Boost_FOUND "Boost" "Required for building QtGLib" "http://www.boost.org/" TRUE "1.39")
# set the QTGSTREAMER_* cmake variables
set(BUILDING_QTGSTREAMER TRUE)
if (USE_QT5)
set(QTGLIB_LIBRARY Qt5GLib)
set(QTGSTREAMER_LIBRARY Qt5GStreamer)
set(QTGSTREAMER_UI_LIBRARY Qt5GStreamerUi)
set(QTGSTREAMER_UTILS_LIBRARY Qt5GStreamerUtils)
set(QTGSTREAMER_PACKAGE_NAME Qt5GStreamer)
elseif (USE_QT4)
set(QTGLIB_LIBRARY QtGLib)
set(QTGSTREAMER_LIBRARY QtGStreamer)
set(QTGSTREAMER_UI_LIBRARY QtGStreamerUi)
set(QTGSTREAMER_UTILS_LIBRARY QtGStreamerUtils)
set(QTGSTREAMER_PACKAGE_NAME QtGStreamer)
endif()
set(QTGSTREAMER_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src)
include(QtGStreamerConfigCommon)
find_package(GStreamer 0.10.33 COMPONENTS base)
macro_log_feature(GSTREAMER_FOUND "GStreamer" "Required to build QtGStreamer"
"http://gstreamer.freedesktop.org/" TRUE "0.10.33")
macro_log_feature(GSTREAMER_BASE_LIBRARY_FOUND "GStreamer base library"
"Used for building the qwidgetvideosink element"
"http://gstreamer.freedesktop.org/" FALSE "0.10.33")
find_package(GStreamerPluginsBase 0.10.36 COMPONENTS app interfaces video pbutils)
macro_log_feature(GSTREAMER_APP_LIBRARY_FOUND "GStreamer app library"
"Required to build QtGStreamerUtils"
"http://gstreamer.freedesktop.org/" TRUE "0.10.33")
macro_log_feature(GSTREAMER_INTERFACES_LIBRARY_FOUND "GStreamer interfaces library"
"Required to build QtGStreamer"
"http://gstreamer.freedesktop.org/" TRUE "0.10.33")
macro_log_feature(GSTREAMER_VIDEO_LIBRARY_FOUND "GStreamer video library"
"Used for building the qwidgetvideosink element"
"http://gstreamer.freedesktop.org/" FALSE "0.10.33")
macro_log_feature(GSTREAMER_PBUTILS_LIBRARY_FOUND "GStreamer pbutils library"
"Used for building the Discoverer API"
"http://gstreamer.freedesktop.org/" TRUE "0.10.36")
find_package(GLIB2)
macro_log_feature(GLIB2_FOUND "GLib" "Required to build QtGLib" "http://www.gtk.org/" TRUE)
find_package(GObject)
macro_log_feature(GOBJECT_FOUND "GObject" "Required to build QtGLib" "http://www.gtk.org/" TRUE)
find_package(OpenGL)
macro_log_feature(OPENGL_FOUND "OpenGL"
"Required for OpenGL rendering support in qtvideosink (desktop only)"
"http://www.opengl.org" FALSE)
find_package(OpenGLES2)
macro_log_feature(OPENGLES2_FOUND "OpenGLES"
"Required for OpenGLES rendering support in qtvideosink (embedded only)"
"http://www.opengl.org" FALSE "2.0")
if (QTGSTREAMER_CODEGEN AND CMAKE_CROSSCOMPILING)
message(WARNING "Codegen use requested, but we are crosscompiling. Disabling...")
set(QTGSTREAMER_CODEGEN OFF)
endif()
if (QTGSTREAMER_CODEGEN)
find_package(FLEX)
macro_log_feature(FLEX_FOUND "Flex" "Required to build codegen, a helper code generator"
"http://flex.sourceforge.net/" TRUE)
find_package(BISON)
macro_log_feature(BISON_FOUND "Bison" "Required to build codegen, a helper code generator"
"http://www.gnu.org/software/bison/" TRUE)
endif()
if (CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wformat-security -Wundef -Wpointer-arith -fno-common")
endif ()
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE STRING "Destination directory for libraries")
set(INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/${QTGSTREAMER_PACKAGE_NAME})
if (USE_GST_PLUGIN_DIR)
set(PLUGINS_INSTALL_DIR ${GSTREAMER_PLUGIN_DIR})
else()
set(PLUGINS_INSTALL_DIR ${LIB_INSTALL_DIR}/gstreamer-0.10)
endif()
if (USE_QT_PLUGIN_DIR)
set(IMPORTS_INSTALL_DIR ${QT_IMPORTS_DIR})
else()
if (USE_QT5)
set(IMPORTS_INSTALL_DIR ${LIB_INSTALL_DIR}/qt5/imports)
else()
set(IMPORTS_INSTALL_DIR ${LIB_INSTALL_DIR}/qt4/imports)
endif()
endif()
if (QTGSTREAMER_CODEGEN AND FLEX_FOUND AND BISON_FOUND)
add_subdirectory(codegen)
endif()
add_subdirectory(src)
add_subdirectory(elements)
if (QTGSTREAMER_TESTS)
add_subdirectory(tests)
endif()
if (QTGSTREAMER_EXAMPLES)
add_subdirectory(examples)
endif()
# Add uninstall target. Taken from the KDE4 scripts
configure_file("${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" @ONLY)
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake")
# Add doc target
include(UseDoxygen)
macro_log_feature(DOXYGEN_FOUND "Doxygen" "Used to generate the API documentation"
"http://www.doxygen.org/" FALSE)
macro_display_feature_log()
|