• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

phonon (Followup)

taki

Advanced Hacker
Die von mir versprochenen Informationen stelle ich in einen eigenen Thread, weil das ursprüngliche Thema ([1]) als gelöst gekennzeichnet ist .

Phonon ist vom KDE-Projekt entwickelt, aber von Trolltec in QT integriert worden. Ab Qt 4.4.1 ist phonon nicht von KDE4 abhängig. Wenn eines der benötigten RPMs eine Abhängigkeit zu kde-Paketen anzeigt, wäre m.E. ein Bugreport an den Paketersteller fällig.

Man benötigt zum Entwickeln einer QT-Anwendung mit Phonon:
  • libqt4
  • libqt4-devel
  • libphonon4
  • phonon-devel

...und um das ganze dann auch testen zu können mindestens das gstreamer-Backend, besser noch das xine-backend.

Der Linker muss natürlich auch wissen, wo er die phonon-Klassen findet. KDE4 ist nicht erforderlich, hilft aber ungemein.
Es folgt als Beispiel die CMAKE-Datei für kalva4, die von vom KDE-Projekt bereitgestellten Makros regen Gebrauch macht:

Code:
project(kalva2)
find_package(KDE4 REQUIRED)
find_package(Phonon REQUIRED)
include (KDE4Defaults)
include(MacroLibrary)

add_definitions(${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS})
include_directories(${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})

set(kalva2_SRCS
   kalva2.cpp
   main.cpp
   kalvaplayer.cpp
)

kde4_add_ui_files(kalva2_SRCS kalvaplayer_base.ui prefs_base.ui)

kde4_add_kcfg_files(kalva2_SRCS settings.kcfgc )

kde4_add_executable(kalva2 ${kalva2_SRCS})

target_link_libraries(kalva2 ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} ${PHONON_LIBS} )

install(TARGETS kalva2 DESTINATION ${BIN_INSTALL_DIR} )


########### install files ###############

install( FILES kalva2.desktop  DESTINATION  ${XDG_APPS_INSTALL_DIR} )
install( FILES kalva2.kcfg  DESTINATION  ${KCFG_INSTALL_DIR} )
install( FILES kalva2ui.rc  DESTINATION  ${DATA_INSTALL_DIR}/kalva2 )

Ich denke, dass man auch die Makros auch für eine reine QT-Anwendung verwenden kann. Man läßt dann eben die KDE4-Sachen weg. Hier ein absolut ungetestetes und sinnfreies Beispiel:

Code:
project(tequila)
cmake_minimum_required(VERSION 2.6)

find_package(Qt4 REQUIRED)

#if you don't want the full compiler output, remove the following line
#SET(CMAKE_VERBOSE_MAKEFILE ON)

#add definitions, compiler switches, etc.
#ADD_DEFINITIONS(-Wall -O2)

add_definitions(${QT_DEFINITIONS})

include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${QT_INCLUDE_DIR}})

set(tequila_SRCS
   tequila.cpp
   main.cpp
)

#list all source files here
ADD_EXECUTABLE(tequila main.cpp tequila.cpp)

#need to link to some other libraries ? just add them here
target_link_libraries(tequila ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} phonon )


install(TARGETS tequila DESTINATION build )

Installationsangaben fehlen hier völlig, da ich mir für kalva2 darüber keine Gedanken machen muss. Da ich eh eine kde4-Anwendung schreiben will, freue ich mich, dass bereits andere sich darüber die Köpfe zerbrochen haben, und ich auch dafür bereits vorbereitete Makros nutzen kann und das nicht nachvollziehen muss. Wenn jemand ein vollständiges Makefile für eine reine Qt-Anwendung mit Phonon postet, wäre das aber sicher interessant.



Der Vollständigkeit halber hier noch ein par Angaben zu den RPMs unter SUSE 11.0

Code:
taki@Rivendell:~> rpm -qf /usr/include/phonon/videoplayer.h
phonon-devel-4.2.0-11.1

Code:
taki@Rivendell:~> rpm -qa |grep phonon
libphonon4-4.2.0-11.1
phonon-devel-4.2.0-11.1
phonon-backend-gstreamer-0_10-4.2.0-11.1
phonon-backend-xine-4.1.0-17.2
phonon-4.2.0-11.1

Code:
taki@Rivendell:~> rpm -qa |grep qt4
libqt4-sql-4.4.0-12.2
libqt4-devel-doc-4.4.0-12.1
libqt4-devel-4.4.0-12.2
libqt4-4.4.0-12.2
libpoppler-qt4-3-0.8.2-3.1
libqt4-devel-doc-data-4.4.0-12.1
libqt4-sql-sqlite-4.4.0-12.2
libqt4-qt3support-4.4.0-12.2
libqt4-x11-4.4.0-12.2
taki@Rivendell:~>

Code:
taki@Rivendell:~> rpm -qi phonon
Name        : phonon                       Relocations: (not relocatable)
Version     : 4.2.0                             Vendor: openSUSE Build Service
Release     : 11.1                          Build Date: Di 22 Jul 2008 19:37:02 CEST
Install Date: Mi 23 Jul 2008 21:42:58 CEST      Build Host: build08
Group       : Development/Libraries/KDE     Source RPM: phonon-4.2.0-11.1.src.rpm
Size        : 494                              License: LGPL v2.0 or later
Signature   : DSA/SHA1, Di 22 Jul 2008 19:39:04 CEST, Key ID 58d8ff412e1efa87
URL         : http://phonon.kde.org/
Summary     : Phonon Multimedia Platform Abstraction
Description :
Phonon is a cross-platform portable Multimedia Support Abstraction,
which allows you to play multiple audio or video formats with the same
quality on all platforms, no matter which underlying architecture is
used.



Authors:
--------
    Matthias Kretz
Distribution: KDE:KDE4:Factory:Desktop / openSUSE_11.0

Code:
taki@Rivendell:~> rpm -qi phonon-devel
Name        : phonon-devel                 Relocations: (not relocatable)
Version     : 4.2.0                             Vendor: openSUSE Build Service
Release     : 11.1                          Build Date: Di 22 Jul 2008 19:37:02 CEST
Install Date: Mi 23 Jul 2008 21:43:38 CEST      Build Host: build08
Group       : Development/Libraries/KDE     Source RPM: phonon-4.2.0-11.1.src.rpm
Size        : 216102                           License: LGPL v2.0 or later
Signature   : DSA/SHA1, Di 22 Jul 2008 19:39:05 CEST, Key ID 58d8ff412e1efa87
URL         : http://phonon.kde.org/
Summary     : Phonon Multimedia Platform Abstraction
Description :
Phonon is a cross-platform portable Multimedia Support Abstraction,
which allows you to play multiple audio or video formats with the same
quality on all platforms, no matter which underlying architecture is
used.



Authors:
--------
    Matthias Kretz
Distribution: KDE:KDE4:Factory:Desktop / openSUSE_11.0

[1] http://www.linux-club.de/viewtopic.php?f=28&t=96198

[CMakeList.txt geändert. Jetzt funktioniert diese auch wirklich ohne Abhängigkeiten zu KDE4]
 
Oben