Files
cantata/CMakeLists.txt

567 lines
22 KiB
CMake

PROJECT( cantata )
cmake_minimum_required( VERSION 2.6 )
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
SET(CPACK_SOURCE_IGNORE_FILES ${CPACK_SOURCE_IGNORE_FILES} "/.svn/")
set(CPACK_GENERATOR "DEB;RPM;TGZ")
set(DEBIAN_PACKAGE_DESCRIPTION "Qt4/KDE4 Client for MPD")
set(DEBIAN_PACKAGE_SECTION "kde4")
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_CONTACT "Craig Drummond <craig.p.drummond@gmail.com>")
set(CANTATA_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(CANTATA_VERSION_FULL "${CANTATA_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CANTATA_VERSION_FULL}")
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CANTATA_VERSION_FULL}")
include(CPack)
OPTION(ENABLE_TAGLIB "Enable TagLib library (required for tag editing, replaygain calculation, device support, etc)" ON)
OPTION(ENABLE_TAGLIB_EXTRAS "Enable TagLib-Extras library (required for tag editing, replaygain calculation, device support, etc)" ON)
OPTION(ENABLE_PHONON "Enable Phonon library (required to playback MPD HTTP streams)" ON)
OPTION(ENABLE_KDE "Enable KDE libraries (required for device support, and to use KDE dialogs)" ON)
OPTION(ENABLE_MTP "Enable MTP library (required to support MTP devices)" ON)
OPTION(ENABLE_WEBKIT "Enable WebKit library (required for artist/album information)" ON)
OPTION(ENABLE_FFMPEG "Enable ffmpeg/libav libraries (required for replaygain calculation)" ON)
OPTION(ENABLE_MPG123 "Enable mpg123 libraries (required for replaygain calculation)" ON)
OPTION(ENABLE_SPEEXDSP "Enable SpeexDSP libraries (used to speed-up replaygain calculation)" ON)
macro(cantata_check_for_sse)
# check for SSE extensions
include(CheckCXXSourceRuns)
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
set(CMAKE_REQUIRED_FLAGS "-msse3")
check_cxx_source_runs("
#include <pmmintrin.h>
int main() { __m128d a, b; double vals[2] = {0}; a = _mm_loadu_pd(vals); b = _mm_hadd_pd(a,a); _mm_storeu_pd(vals, b); return 0; }"
HAS_SSE3_EXTENSIONS)
if(HAS_SSE3_EXTENSIONS)
add_definitions("-msse3 -mfpmath=sse")
else(HAS_SSE3_EXTENSIONS)
# No sse3, check sse2
set(CMAKE_REQUIRED_FLAGS "-msse2")
check_cxx_source_runs("
#include <emmintrin.h>
int main() { __m128d a, b; double vals[2] = {0}; a = _mm_loadu_pd(vals); b = _mm_add_pd(a,a); _mm_storeu_pd(vals,b); return 0; }"
HAS_SSE2_EXTENSIONS)
if(HAS_SSE2_EXTENSIONS)
add_definitions("-msse2 -mfpmath=sse")
else(HAS_SSE2_EXTENSIONS)
# No sse2, check sse
set(CMAKE_REQUIRED_FLAGS "-msse")
check_cxx_source_runs("
#include <xmmintrin.h>
int main() { __m128 a, b; float vals[4] = {0}; a = _mm_loadu_ps(vals); b = a; b = _mm_add_ps(a,b); _mm_storeu_ps(vals,b); return 0; }"
HAS_SSE_EXTENSIONS)
if(HAS_SSE_EXTENSIONS)
add_definitions("-msse -mfpmath=sse")
endif(HAS_SSE_EXTENSIONS)
endif(HAS_SSE2_EXTENSIONS)
endif(HAS_SSE3_EXTENSIONS)
set(CMAKE_REQUIRED_FLAGS)
elseif(MSVC)
check_cxx_source_runs("
#include <emmintrin.h>
int main() { __m128d a, b; double vals[2] = {0}; a = _mm_loadu_pd(vals); b = _mm_add_pd(a,a); _mm_storeu_pd(vals,b); return 0; }"
HAS_SSE2_EXTENSIONS)
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
endmacro(cantata_check_for_sse)
SET( CANTATA_SRCS
application.cpp
main.cpp
gui/mainwindow.cpp
gui/preferencesdialog.cpp
gui/settings.cpp
gui/covers.cpp
gui/interfacesettings.cpp
gui/externalsettings.cpp
gui/playbacksettings.cpp
gui/serverplaybacksettings.cpp
gui/serversettings.cpp
gui/streamspage.cpp
gui/streamdialog.cpp
gui/streamcategorydialog.cpp
gui/librarypage.cpp
gui/albumspage.cpp
gui/folderpage.cpp
gui/serverinfopage.cpp
gui/playlistspage.cpp
models/musiclibraryitemroot.cpp
models/musiclibraryitemartist.cpp
models/musiclibraryitemalbum.cpp
models/musiclibrarymodel.cpp
models/musiclibraryproxymodel.cpp
models/playlistsmodel.cpp
models/playlistsproxymodel.cpp
models/playqueuemodel.cpp
models/playqueueproxymodel.cpp
models/dirviewmodel.cpp
models/dirviewproxymodel.cpp
models/dirviewitem.cpp
models/dirviewitemdir.cpp
models/streamsmodel.cpp
models/streamsproxymodel.cpp
models/albumsmodel.cpp
models/albumsproxymodel.cpp
models/streamfetcher.cpp
models/proxymodel.cpp
mpd/mpdconnection.cpp
mpd/mpdparseutils.cpp
mpd/mpdstats.cpp
mpd/mpdstatus.cpp
mpd/song.cpp
dynamic/dynamic.cpp
dynamic/dynamicpage.cpp
dynamic/dynamicproxymodel.cpp
dynamic/dynamicruledialog.cpp
dynamic/dynamicrulesdialog.cpp
widgets/treeview.cpp
widgets/fancytabwidget.cpp
widgets/listview.cpp
widgets/itemview.cpp
widgets/autohidingsplitter.cpp
widgets/timeslider.cpp
widgets/actionlabel.cpp
widgets/playqueueview.cpp
widgets/groupedview.cpp
widgets/messagewidget.cpp
widgets/actionitemdelegate.cpp
widgets/textbrowser.cpp
widgets/coverwidget.cpp
widgets/icon.cpp
widgets/volumecontrol.cpp
widgets/onoffbutton.cpp
lyrics/lyricspage.cpp
lyrics/lyricsettings.cpp
lyrics/ultimatelyricsprovider.cpp
lyrics/ultimatelyricsreader.cpp
lyrics/songinfoprovider.cpp
lyrics/lyricsdialog.cpp
network/networkaccessmanager.cpp
network/network.cpp
libmaia/maiaObject.cpp
libmaia/maiaFault.cpp
libmaia/maiaXmlRpcClient.cpp
devices/utils.cpp
)
SET( CANTATA_MOC_HDRS
gui/mainwindow.h
gui/settings.h
gui/covers.h
gui/folderpage.h
gui/librarypage.h
gui/albumspage.h
gui/playlistspage.h
gui/streamspage.h
gui/serverinfopage.h
gui/streamdialog.h
gui/streamcategorydialog.h
gui/serverplaybacksettings.h
gui/serversettings.h
gui/preferencesdialog.h
gui/interfacesettings.h
gui/externalsettings.h
models/musiclibrarymodel.h
models/musiclibraryproxymodel.h
models/playlistsmodel.h
models/playlistsproxymodel.h
models/playqueuemodel.h
models/playqueueproxymodel.h
models/dirviewmodel.h
models/dirviewproxymodel.h
models/albumsmodel.h
models/streamfetcher.h
models/streamsmodel.h
mpd/mpdconnection.h
mpd/mpdstats.h
mpd/mpdstatus.h
dynamic/dynamic.h
dynamic/dynamicpage.h
dynamic/dynamicruledialog.h
dynamic/dynamicrulesdialog.h
widgets/fancytabwidget.h
widgets/treeview.h
widgets/listview.h
widgets/itemview.h
widgets/autohidingsplitter.h
widgets/timeslider.h
widgets/actionlabel.h
widgets/playqueueview.h
widgets/groupedview.h
widgets/messagewidget.h
widgets/coverwidget.h
widgets/volumecontrol.h
lyrics/lyricspage.h
lyrics/lyricsettings.h
lyrics/ultimatelyricsprovider.h
lyrics/songinfoprovider.h
lyrics/lyricsdialog.h
network/networkaccessmanager.h
network/network.h
libmaia/maiaObject.h
libmaia/maiaFault.h
libmaia/maiaXmlRpcClient.h
)
SET( CANTATA_UIS
gui/mainwindow.ui
gui/folderpage.ui
gui/librarypage.ui
gui/albumspage.ui
gui/playlistspage.ui
gui/streamspage.ui
gui/serverinfopage.ui
gui/interfacesettings.ui
gui/externalsettings.ui
gui/playbacksettings.ui
gui/serverplaybacksettings.ui
gui/serversettings.ui
dynamic/dynamicpage.ui
dynamic/dynamicrule.ui
dynamic/dynamicrules.ui
lyrics/lyricspage.ui
lyrics/lyricsettings.ui
widgets/itemview.ui
)
if (ENABLE_TAGLIB)
set(TAGLIB_MIN_VERSION "1.6")
find_package(Taglib)
endif (ENABLE_TAGLIB)
if (TAGLIB_FOUND)
SET( CANTATA_SRCS ${CANTATA_SRCS}
gui/httpserversettings.cpp
gui/tageditor.cpp
devices/deviceoptions.cpp
devices/trackorganiser.cpp
http/httpserver.cpp
http/httpsocket.cpp
devices/filenameschemedialog.cpp
devices/tags.cpp
)
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS}
gui/tageditor.h
http/httpsocket.h
devices/filenameschemedialog.h
devices/trackorganiser.h
)
SET( CANTATA_UIS ${CANTATA_UIS}
gui/httpserversettings.ui
gui/tageditor.ui
devices/filenameschemedialog.ui
devices/trackorganiser.ui
)
endif (TAGLIB_FOUND)
if (ENABLE_WEBKIT)
SET( CANTATA_SRCS ${CANTATA_SRCS} gui/infopage.cpp )
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} gui/infopage.h )
ADD_DEFINITIONS( -DENABLE_WEBKIT )
endif (ENABLE_WEBKIT)
if (NOT WIN32)
SET( CANTATA_SRCS ${CANTATA_SRCS} dbus/mpris.cpp dbus/dockmanager.cpp)
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} dbus/mpris.h dbus/dockmanager.h)
endif(NOT WIN32)
SET( CANTATA_RCS cantata.qrc )
include_directories( ${CMAKE_SOURCE_DIR}/libmaia
${CMAKE_SOURCE_DIR}/gui
${CMAKE_SOURCE_DIR}/mpd
${CMAKE_SOURCE_DIR}/models
${CMAKE_SOURCE_DIR}/widgets
${CMAKE_SOURCE_DIR}/lyrics
${CMAKE_SOURCE_DIR}/network
${CMAKE_SOURCE_DIR}/dbus
${CMAKE_SOURCE_DIR}/http
${CMAKE_SOURCE_DIR}/devices
${CMAKE_SOURCE_DIR}/dynamic
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
)
# this command finds Qt4 libraries and sets all required variables
FIND_PACKAGE( Qt4 REQUIRED QtCore QtGui QtXml QtNetwork )
if (ENABLE_PHONON)
FIND_PACKAGE( Phonon )
endif (ENABLE_PHONON)
if(NOT WIN32)
qt4_add_dbus_adaptor(CANTATA_SRCS dbus/org.mpris.MediaPlayer2.Player.xml dbus/mpris.h Mpris)
qt4_add_dbus_adaptor(CANTATA_SRCS dbus/org.mpris.MediaPlayer2.root.xml dbus/mpris.h Mpris)
qt4_add_dbus_adaptor(CANTATA_SRCS dbus/org.kde.cantata.xml gui/mainwindow.h MainWindow)
qt4_add_dbus_interfaces(CANTATA_SRCS dbus/net.launchpad.DockItem.xml )
qt4_add_dbus_interfaces(CANTATA_SRCS dbus/net.launchpad.DockManager.xml)
endif(NOT WIN32)
IF( ENABLE_KDE )
FIND_PACKAGE( KDE4 )
IF( KDE4_FOUND )
ADD_DEFINITIONS( -DENABLE_KDE_SUPPORT )
SET( ENABLE_KDE_SUPPORT TRUE )
ENDIF( KDE4_FOUND )
ENDIF( ENABLE_KDE )
if (TAGLIB_FOUND)
set(ENABLE_TAGEDITOR_SUPPORT 1)
set(ENABLE_TRACKORGANIZER_SUPPORT 1)
include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_INCLUDES "${TAGLIB_INCLUDES}")
set(CMAKE_REQUIRED_LIBRARIES "${TAGLIB_LIBRARIES}")
check_cxx_source_compiles("#include <asftag.h>
int main() { TagLib::ASF::Tag tag; return 0;}" TAGLIB_ASF_FOUND)
if( NOT TAGLIB_ASF_FOUND )
# message(FATAL_ERROR "TagLib does not have ASF support compiled in.")
message("TagLib does not have ASF support compiled in.")
endif( NOT TAGLIB_ASF_FOUND )
check_cxx_source_compiles("#include <mp4tag.h>
int main() { TagLib::MP4::Tag tag(0, 0); return 0;}" TAGLIB_MP4_FOUND)
if( NOT TAGLIB_MP4_FOUND )
# message(FATAL_ERROR "TagLib does not have MP4 support compiled in.")
message("TagLib does not have MP4 support compiled in.")
endif( NOT TAGLIB_MP4_FOUND )
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
set(TAGLIB-EXTRAS_MIN_VERSION "1.0")
if (ENABLE_TAGLIB_EXTRAS)
find_package(Taglib-Extras)
endif (ENABLE_TAGLIB_EXTRAS)
set(TAGLIB_EXTRAS_FOUND ${TAGLIB-EXTRAS_FOUND}) # we need a c-compatible name for the include file
include(CheckTagLibFileName)
check_taglib_filename(COMPLEX_TAGLIB_FILENAME)
add_definitions(${TAGLIB_CFLAGS})
if (TAGLIB-EXTRAS_FOUND)
include_directories(${TAGLIB-EXTRAS_INCLUDES})
add_definitions(${TAGLIB-EXTRAS_CFLAGS})
endif (TAGLIB-EXTRAS_FOUND)
if (ENABLE_FFMPEG)
find_package(FFMPEG)
endif (ENABLE_FFMPEG)
if (ENABLE_MPG123)
find_package(MPG123)
endif (ENABLE_MPG123)
if(FFMPEG_FOUND AND MPG123_FOUND)
cantata_check_for_sse()
set (ENABLE_REPLAYGAIN_SUPPORT 1)
if (ENABLE_SPEEXDSP)
find_package(SPEEXDSP)
endif (ENABLE_SPEEXDSP)
set(USE_SPEEX_RESAMPLER ${SPEEXDSP_FOUND})
SET(CANTATA_SRCS ${CANTATA_SRCS} replaygain/ffmpeginput.cpp replaygain/mpg123input.cpp)
include_directories(${CMAKE_SOURCE_DIR}/replaygain )
SET(CANTATA_SRCS ${CANTATA_SRCS} replaygain/ebur128.c replaygain/scanner.cpp replaygain/rgdialog.cpp replaygain/tagreader.cpp replaygain/jobcontroller.cpp )
SET(CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} replaygain/scanner.h replaygain/rgdialog.h replaygain/tagreader.h replaygain/jobcontroller.h )
endif(FFMPEG_FOUND AND MPG123_FOUND)
if (NOT WIN32)
set (ENABLE_DEVICES_SUPPORT 1)
if (NOT ENABLE_KDE_SUPPORT)
add_subdirectory(solid-lite)
endif (NOT ENABLE_KDE_SUPPORT)
if (ENABLE_MTP)
find_package(Mtp)
endif (ENABLE_MTP)
if (MTP_FOUND)
SET( CANTATA_SRCS ${CANTATA_SRCS} devices/mtpdevice.cpp )
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} devices/mtpdevice.h )
endif (MTP_FOUND)
SET( CANTATA_SRCS ${CANTATA_SRCS} devices/mediadevicecache.cpp devices/devicespage.cpp devices/filejob.cpp
devices/device.cpp devices/fsdevice.cpp devices/umsdevice.cpp
models/devicesmodel.cpp devices/filetyperesolver.cpp devices/actiondialog.cpp devices/devicepropertieswidget.cpp
devices/devicepropertiesdialog.cpp devices/encoders.cpp devices/freespaceinfo.cpp
devices/transcodingjob.cpp devices/valueslider.cpp devices/syncdialog.cpp devices/synccollectionwidget.cpp)
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} devices/mediadevicecache.h devices/devicespage.h devices/filejob.h
devices/device.h devices/fsdevice.h devices/umsdevice.h models/devicesmodel.h
devices/actiondialog.h devices/devicepropertieswidget.h devices/devicepropertiesdialog.h
devices/transcodingjob.h devices/valueslider.h devices/syncdialog.h devices/synccollectionwidget.h)
SET( CANTATA_UIS ${CANTATA_UIS} devices/devicespage.ui devices/actiondialog.ui devices/devicepropertieswidget.ui
devices/synccollectionwidget.ui)
if (NOT WIN32 AND ENABLE_REMOTE_DEVICES)
SET(CANTATA_SRCS ${CANTATA_SRCS} devices/remotefsdevice.cpp devices/remotedevicepropertiesdialog.cpp
devices/remotedevicepropertieswidget.cpp)
SET(CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} devices/remotefsdevice.h devices/remotedevicepropertiesdialog.h
devices/remotedevicepropertieswidget.h)
SET(CANTATA_UIS ${CANTATA_UIS} devices/remotedevicepropertieswidget.ui)
endif (NOT WIN32 AND ENABLE_REMOTE_DEVICES)
endif (NOT WIN32)
endif (TAGLIB_FOUND)
add_subdirectory(po)
IF( ENABLE_KDE_SUPPORT )
macro_ensure_version("4.7.0" ${KDE_VERSION} KDE_VERSION_47)
if (NOT KDE_VERSION_47)
SET( CANTATA_SRCS ${CANTATA_SRCS} widgets/kmessagewidget.cpp )
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} widgets/kmessagewidget.h )
endif (NOT KDE_VERSION_47)
include_directories( ${KDE4_INCLUDES})
add_definitions( ${KDE4_DEFINITIONS} )
QT4_ADD_RESOURCES( CANTATA_RC_SRCS ${CANTATA_RCS} )
KDE4_ADD_UI_FILES( CANTATA_UI_HDRS ${CANTATA_UIS} )
KDE4_ADD_EXECUTABLE( cantata ${CANTATA_SRCS} ${CANTATA_MOC_SRCS} ${CANTATA_RC_SRCS} ${CANTATA_UI_HDRS} )
TARGET_LINK_LIBRARIES( cantata ${KDE4_KDEWEBKIT_LIBRARY} ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_SOLID_LIBS} )
if (NOT WIN32 AND TAGLIB_FOUND AND ENABLE_REMOTE_DEVICES)
TARGET_LINK_LIBRARIES(cantata ${KDE4_KFILE_LIBS})
endif (NOT WIN32 AND TAGLIB_FOUND AND ENABLE_REMOTE_DEVICES)
install( TARGETS cantata ${INSTALL_TARGETS_DEFAULT_ARGS} )
install( PROGRAMS dynamic/cantata-dynamic DESTINATION bin)
install( FILES cantataui.rc DESTINATION ${DATA_INSTALL_DIR}/cantata )
install( FILES cantata.notifyrc DESTINATION ${DATA_INSTALL_DIR}/cantata )
ELSE( ENABLE_KDE_SUPPORT )
SET( CANTATA_SRCS ${CANTATA_SRCS} widgets/dirrequester.cpp widgets/lineedit.cpp network/networkproxyfactory.cpp network/proxysettings.cpp widgets/kmessagewidget.cpp
widgets/dialog.cpp widgets/messagebox.cpp )
SET( CANTATA_MOC_HDRS ${CANTATA_MOC_HDRS} application.h widgets/dirrequester.h widgets/lineedit.h network/proxysettings.h widgets/kmessagewidget.h widgets/urllabel.h
widgets/dialog.h )
SET( CANTATA_UIS ${CANTATA_UIS} network/proxysettings.ui )
SET( CANTATA_RCS ${CANTATA_RCS} cantata_qt.qrc )
QT4_ADD_RESOURCES( CANTATA_RC_SRCS ${CANTATA_RCS} )
QT4_WRAP_UI( CANTATA_UI_HDRS ${CANTATA_UIS} )
INCLUDE( ${QT_USE_FILE} )
QT4_WRAP_CPP( CANTATA_MOC_SRCS ${CANTATA_MOC_HDRS} )
if (WIN32)
IF( MINGW )
# resource compilation for MinGW
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cantataico.o
COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_SOURCE_DIR}/icons/cantataico.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/cantataico.o )
SET(CANTATA_SRCS ${CANTATA_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/cantataico.o)
ELSE( MINGW )
SET(CANTATA_SRCS ${CANTATA_SRCS} icons/cantataico.rc)
ENDIF( MINGW )
ADD_EXECUTABLE( cantata WIN32 ${CANTATA_SRCS} ${CANTATA_MOC_SRCS} ${CANTATA_RC_SRCS} ${CANTATA_UI_HDRS} ${CANTATA_PO})
else (WIN32)
ADD_EXECUTABLE( cantata ${CANTATA_SRCS} ${CANTATA_MOC_SRCS} ${CANTATA_RC_SRCS} ${CANTATA_UI_HDRS})
install( PROGRAMS dynamic/cantata-dynamic DESTINATION bin)
endif (WIN32)
install( TARGETS cantata RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib )
ADD_DEFINITIONS( -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -Wall -Wextra )
SET( XDG_APPS_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/applications" )
add_subdirectory(qtsingleapplication)
TARGET_LINK_LIBRARIES(cantata qtsingleapplication)
include_directories(${CMAKE_BINARY_DIR}/qtsingleapplication)
ENDIF( ENABLE_KDE_SUPPORT )
if (MTP_FOUND AND NOT WIN32)
TARGET_LINK_LIBRARIES(cantata ${MTP_LIBRARIES})
include_directories( ${MTP_INCLUDE_DIR})
endif (MTP_FOUND AND NOT WIN32)
ADD_SUBDIRECTORY( icons )
TARGET_LINK_LIBRARIES(cantata ${QT_QTXML_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTDBUS_LIBRARY})
include_directories( ${QT_INCLUDES})
if (TAGLIB_FOUND)
TARGET_LINK_LIBRARIES(cantata ${TAGLIB_LIBRARIES})
include_directories(${TAGLIB_INCLUDES})
if (TAGLIB-EXTRAS_FOUND)
TARGET_LINK_LIBRARIES(cantata ${TAGLIB-EXTRAS_LIBRARIES})
include_directories( ${TAGLIB-EXTRAS_INCLUDES})
endif (TAGLIB-EXTRAS_FOUND)
if(FFMPEG_FOUND AND MPG123_FOUND)
TARGET_LINK_LIBRARIES(cantata ${FFMPEG_LIBRARIES} ${MPG123_LIBRARIES})
include_directories(${FFMPEG_INCLUDE_DIRS} ${MPG123_INCLUDE_DIRS})
if(SPEEXDSP_FOUND)
TARGET_LINK_LIBRARIES(cantata ${SPEEXDSP_LIBRARIES})
include_directories( ${SPEEXDSP_INCLUDE_DIRS})
endif(SPEEXDSP_FOUND)
endif(FFMPEG_FOUND AND MPG123_FOUND)
if (NOT ENABLE_KDE_SUPPORT)
TARGET_LINK_LIBRARIES(cantata solidlite)
endif (NOT ENABLE_KDE_SUPPORT)
endif (TAGLIB_FOUND)
if (PHONON_FOUND)
TARGET_LINK_LIBRARIES(cantata ${PHONON_LIBS})
include_directories( ${PHONON_INCLUDES})
endif (PHONON_FOUND)
if (ENABLE_WEBKIT)
IF( ENABLE_KDE_SUPPORT )
TARGET_LINK_LIBRARIES( cantata ${KDE4_KDEWEBKIT_LIBRARY} ${QT_QTWEBKIT_LIBRARY} )
ELSE( ENABLE_KDE_SUPPORT )
TARGET_LINK_LIBRARIES( cantata ${QT_QTWEBKIT_LIBRARY} )
ENDIF( ENABLE_KDE_SUPPORT )
endif (ENABLE_WEBKIT)
# enable warnings
ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT )
IF( UNIX AND NOT APPLE)
install(FILES cantata.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
ENDIF( UNIX AND NOT APPLE)
configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
message("")
IF( ENABLE_KDE_SUPPORT )
message("INFO: Building with KDE support")
else ( ENABLE_KDE_SUPPORT )
if (NOT WIN32)
message("INFO: Building WITHOUT KDE support")
endif (NOT WIN32)
endif ( ENABLE_KDE_SUPPORT )
if (TAGLIB_FOUND)
if (ENABLE_REMOTE_DEVICES)
message(" Extra enabled features:")
message(" - Remote device sync (EXPERIMENTAL)")
endif (ENABLE_REMOTE_DEVICES)
if( NOT TAGLIB_FOUND OR NOT MTP_FOUND OR NOT FFMPEG_FOUND OR NOT MPG123_FOUND )
message(" Disabled features:")
if (NOT TAGLIB_FOUND)
message(" - Tag Editor (taglib required)")
message(" - Track Organizer (taglib required)")
message(" - Commandline support (taglib required)")
message(" - HTTP server support (taglib required)")
if (NOT WIN32)
message(" - UMS device sync (taglib required)")
endif (NOT WIN32)
endif (NOT TAGLIB_FOUND)
if (NOT MTP_FOUND AND NOT WIN32)
message(" - MTP device sync (taglib and libmtp required)")
endif (NOT MTP_FOUND AND NOT WIN32)
if(NOT FFMPEG_FOUND OR NOT MPG123_FOUND)
message(" - ReplayGain calculation (taglib, ffmpeg, and mpg123 required)")
endif(NOT FFMPEG_FOUND OR NOT MPG123_FOUND)
endif( NOT TAGLIB_FOUND OR NOT MTP_FOUND OR NOT FFMPEG_FOUND OR NOT MPG123_FOUND )
endif (TAGLIB_FOUND)
IF ( NOT ENABLE_KDE_SUPPORT )
message("")
message("*************************************************************")
message("*************************************************************")
message("** NOTE: You NEED to have the Oxygen icons installed!! **")
message("** If not, Cantata may have *lots* of missing icons. **")
message("*************************************************************")
message("*************************************************************")
message("")
ENDIF( NOT ENABLE_KDE_SUPPORT )
message("")