[PATCH 3/3] Fix build without OpenGL.
Jon Severinsson
jon at severinsson.net
Sat Oct 6 18:12:08 UTC 2012
---
CMakeLists.txt | 3 --
phonon/CMakeLists.txt | 42 ++++++++++++++++++---------
phonon/graphicsview/CMakeLists.txt | 23 ---------------
phonon/graphicsview/videographicsobject.cpp | 11 ++++++-
4 filer ändrade, 39 tillägg(+), 40 borttagningar(-)
delete mode 100644 phonon/graphicsview/CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea709f2..2000d74 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,9 +36,6 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(cmake/FindPhononInternal.cmake)
-find_package(OpenGL)
-macro_log_feature(OPENGL_FOUND "OpenGL" "" "" FALSE)
-
# The following variables directly influence the library's soname version.
# It is highly advised to think twice before changing those.
# If you are unsure about the this: http://plan99.net/~mike/writing-shared-libraries.html
diff --git a/phonon/CMakeLists.txt b/phonon/CMakeLists.txt
index 8e2198b..0a33388 100644
--- a/phonon/CMakeLists.txt
+++ b/phonon/CMakeLists.txt
@@ -1,8 +1,14 @@
-add_subdirectory(graphicsview)
-
-if (PHONON_BUILD_EXPERIMENTAL)
- add_subdirectory(experimental)
-endif (PHONON_BUILD_EXPERIMENTAL)
+macro_optional_find_package(OpenGL)
+macro_log_feature(OPENGL_FOUND "OpenGL" "A cross-platform graphics programming language." "http://www.opengl.org" FALSE)
+macro_log_feature(QT_QTOPENGL_FOUND "QtOpenGL" "Qt Bindngs for OpenGL." "http://www.qt-project.org" FALSE)
+if (OPENGL_FOUND AND QT_QTOPENGL_FOUND)
+ set(PHONON_OPENGLSUPPORT TRUE CACHE BOOL "Has Phonon OpenGL support ?")
+ if(PHONON_OPENGLSUPPORT)
+ add_definitions(-DHAVE_OPENGL)
+ endif(PHONON_OPENGLSUPPORT)
+else (OPENGL_FOUND AND QT_QTOPENGL_FOUND)
+ set(PHONON_OPENGLSUPPORT FALSE CACHE BOOL "Has Phonon OpenGL support ?")
+endif (OPENGL_FOUND AND QT_QTOPENGL_FOUND)
macro_optional_find_package(PulseAudio 0.9.15)
macro_log_feature(PULSEAUDIO_FOUND "PulseAudio" "A cross-platform, networked sound server." "http://www.pulseaudio.org" FALSE "" "Allows audio playback via the PulseAudio soundserver when it is running")
@@ -13,13 +19,10 @@ if (GLIB2_FOUND AND PULSEAUDIO_FOUND)
set(PHONON_PULSESUPPORT TRUE CACHE BOOL "Has Phonon pulseaudio support ?")
if(PHONON_PULSESUPPORT)
add_definitions(-DHAVE_PULSEAUDIO)
+ include_directories(${GLIB2_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR})
endif(PHONON_PULSESUPPORT)
- include_directories(${GLIB2_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR})
else(GLIB2_FOUND AND PULSEAUDIO_FOUND)
set(PHONON_PULSESUPPORT FALSE CACHE BOOL "Has Phonon pulseaudio support ?")
- set(PULSEAUDIO_INCLUDE_DIR "")
- set(PULSEAUDIO_LIBRARY "")
- set(PULSEAUDIO_MAINLOOP_LIBRARY "")
endif(GLIB2_FOUND AND PULSEAUDIO_FOUND)
macro_optional_find_package(QZeitgeist 0.8)
@@ -31,6 +34,10 @@ endif(QZEITGEIST_FOUND)
include_directories(${CMAKE_BINARY_DIR}/includes/phonon)
+if (PHONON_BUILD_EXPERIMENTAL)
+ add_subdirectory(experimental)
+endif (PHONON_BUILD_EXPERIMENTAL)
+
set(phonon_LIB_SRCS
abstractaudiooutput.cpp
abstractaudiooutput_p.cpp
@@ -66,8 +73,16 @@ set(phonon_LIB_SRCS
volumeslider.cpp
videoplayer.cpp
videowidget.cpp
- ${phonon_VGO_SRCS}
+ graphicsview/qpainterpainter.cpp
+ graphicsview/videographicsobject.cpp
+ )
+
+if (PHONON_OPENGLSUPPORT)
+ list(APPEND phonon_LIB_SRCS
+ graphicsview/glpainter.cpp
+ graphicsview/glslpainter.cpp
)
+endif (PHONON_OPENGLSUPPORT)
if (PHONON_PULSESUPPORT)
list(APPEND phonon_LIB_SRCS
@@ -95,9 +110,9 @@ if (PHONON_PULSESUPPORT)
target_link_libraries(phonon ${GOBJECT_LIBRARIES} ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY})
endif (PHONON_PULSESUPPORT)
-if (QT_QTOPENGL_LIBRARY AND OPENGL_FOUND)
+if (PHONON_OPENGLSUPPORT)
target_link_libraries(phonon ${QT_QTOPENGL_LIBRARY} ${OPENGL_gl_LIBRARY})
-endif (QT_QTOPENGL_LIBRARY AND OPENGL_FOUND)
+endif (PHONON_OPENGLSUPPORT)
if (QZEITGEIST_FOUND)
target_link_libraries(phonon ${QZEITGEIST_LIBRARY})
@@ -170,7 +185,8 @@ install(FILES
volumefadereffect.h
volumefaderinterface.h
volumeslider.h
- ${phonon_VGO_HDRS}
+ graphicsview/videoframe.h
+ graphicsview/videographicsobjectinterface.h
${CMAKE_CURRENT_BINARY_DIR}/phononnamespace.h
DESTINATION ${INCLUDE_INSTALL_DIR}/phonon COMPONENT Devel)
diff --git a/phonon/graphicsview/CMakeLists.txt b/phonon/graphicsview/CMakeLists.txt
deleted file mode 100644
index 8ddaf8c..0000000
--- a/phonon/graphicsview/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-set(phonon_VGO_SRCS
- graphicsview/glpainter.cpp
- graphicsview/glslpainter.cpp
- graphicsview/qpainterpainter.cpp
- graphicsview/videographicsobject.cpp
-
- # Work around QtCreator not displaying random headers.
- graphicsview/abstractvideographicspainter.h
- graphicsview/glpainter.h
- graphicsview/videoframe.h
- graphicsview/videographicsobjectinterface.h
-
- PARENT_SCOPE
-)
-
-set(phonon_VGO_HDRS
- graphicsview/videoframe.h
- # VGO does not need to be public, as there is only pull but no push behavior.
- #graphicsview/videographicsobject.h
- graphicsview/videographicsobjectinterface.h
-
- PARENT_SCOPE
-)
diff --git a/phonon/graphicsview/videographicsobject.cpp b/phonon/graphicsview/videographicsobject.cpp
index f1e70fd..ef9c4a6 100644
--- a/phonon/graphicsview/videographicsobject.cpp
+++ b/phonon/graphicsview/videographicsobject.cpp
@@ -21,15 +21,20 @@
#include "videographicsobject.h"
+#include <QtGui/QPainter>
+
#include "abstractvideographicspainter.h"
#include "factory_p.h"
-#include "glslpainter.h"
#include "medianode_p.h"
#include "phonondefs_p.h"
#include "qpainterpainter.h"
#include "videoframe.h"
#include "videographicsobjectinterface.h"
+#ifdef HAVE_OPENGL
+# include "glslpainter.h"
+#endif
+
#define PHONON_INTERFACENAME VideoGraphicsObjectInterface
namespace Phonon {
@@ -37,7 +42,9 @@ namespace Phonon {
QMap<GraphicsPainterType, QList<VideoFrame::Format> > VideoGraphicsPainterMetaFactory::detectTypes()
{
QMap<GraphicsPainterType, QList<VideoFrame::Format> > map;
+#ifdef HAVE_OPENGL
map.insert(GraphicsPainterGlsl, GlslPainter().supportedFormats());
+#endif
map.insert(GraphicsPainterQPainter, QPainterPainter().supportedFormats());
return map;
}
@@ -73,8 +80,10 @@ public:
case GraphicsPainterNone:
// TODO: what to do what to do? :(
Q_ASSERT(painterType != GraphicsPainterNone);
+#ifdef HAVE_OPENGL
case GraphicsPainterGlsl:
return new GlslPainter;
+#endif
case GraphicsPainterQPainter:
return new QPainterPainter;
}
--
1.7.10.4
More information about the Kde-frameworks-devel
mailing list