diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fc1c37..846bdd0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,92 +1,90 @@ cmake_minimum_required(VERSION 2.8.12) project(kmplayer) -cmake_policy(VERSION 2.6) - SET(KMPLAYER_MAJOR_VERSION "0") SET(KMPLAYER_MINOR_VERSION "12") SET(KMPLAYER_PATCH_VERSION "0b") SET(KMPLAYER_VERSION_STRING "${KMPLAYER_MAJOR_VERSION}.${KMPLAYER_MINOR_VERSION}.${KMPLAYER_PATCH_VERSION}") set(QT_MIN_VERSION "5.6.0") set(KF5_MIN_VERSION "5.25.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMInstallIcons) #include(ECMSetupVersion) include(FeatureSummary) Include(CheckIncludeFiles) include(ECMSetupVersion) include(FindXCB) ecm_setup_version(${KMPLAYER_VERSION_STRING} VARIABLE_PREFIX KMPLAYERPRIVATE SOVERSION ${KMPLAYER_MAJOR_VERSION} ) find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core DBus Widgets Svg X11Extras) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Config CoreAddons Init I18n KDELibs4Support KIO MediaPlayer Parts WidgetsAddons) find_package(KF5DocTools ${KF5_MIN_VERSION}) find_package(X11 REQUIRED) find_package(Phonon4Qt5 REQUIRED NO_MODULE) add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) if(NOT WIN32) OPTION(KMPLAYER_BUILT_WITH_CAIRO "Enable Cairo support" ON) OPTION(KMPLAYER_BUILT_WITH_NPP "Build NPP player" ON) OPTION(KMPLAYER_BUILT_WITH_EXPAT "Use expat XML parser" OFF) - INCLUDE(UsePkgConfig) + include(FindPkgConfig) if (KMPLAYER_BUILT_WITH_CAIRO) - PKGCONFIG(cairo CAIROIncDir CAIROLinkDir CAIROLinkFlags CAIROCflags) + pkg_check_modules(CAIRO cairo) - if (CAIROCflags) + if(CAIRO_FOUND) set(KMPLAYER_WITH_CAIRO 1) - endif (CAIROCflags) + endif() endif (KMPLAYER_BUILT_WITH_CAIRO) if (KMPLAYER_BUILT_WITH_NPP) - PKGCONFIG(dbus-glib-1 GLibDBusIncDir GLibDBusLinkDir GLibDBusLinkFlags GLibDBusCflags) - PKGCONFIG(gmodule-2.0 GModuleIncDir GModuleLinkDir GModuleLinkFlags GModuleCflags) + pkg_check_modules(GLibDBus dbus-glib-1) + pkg_check_modules(GModule gmodule-2.0) - if (GLibDBusCflags) + if(GLibDBus_FOUND) set(KMPLAYER_WITH_GDBUS 1) - PKGCONFIG(gtk+-x11-2.0 GTKIncDir GTKLinkDir GTKLinkFlags GTKCflags) - PKGCONFIG(gthread-2.0 GThreadIncDir GThreadLinkDir GThreadLinkFlags GThreadCflags) - if (GTKCflags) + pkg_check_modules(GTK gtk+-x11-2.0) + pkg_check_modules(GThread gthread-2.0) + if (GTK_FOUND) set(KMPLAYER_WITH_NPP 1) - endif (GTKCflags) - endif (GLibDBusCflags) + endif() + endif() endif (KMPLAYER_BUILT_WITH_NPP) if (KMPLAYER_BUILT_WITH_EXPAT) INCLUDE(FindEXPAT) if (EXPAT_FOUND) set(KMPLAYER_WITH_EXPAT 1) else (EXPAT_FOUND) MESSAGE(Expat found) endif (EXPAT_FOUND) endif (KMPLAYER_BUILT_WITH_EXPAT) endif(NOT WIN32) check_include_files(stdint.h HAVE_STDINT_H) configure_file (config-kmplayer.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kmplayer.h ) add_subdirectory(src) add_subdirectory(icons) if (KF5DocTools_FOUND) add_subdirectory(doc) kdoctools_install(po) endif() add_subdirectory(data) ki18n_install(po) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 37b1d16..4b6874e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,176 +1,158 @@ set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG ${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_DEBUGFULL "-DDEBUG ${CMAKE_CXX_FLAGS_DEBUGFULL}") set(CMAKE_CXX_FLAGS_PROFILE "-DDEBUG ${CMAKE_CXX_FLAGS_PROFILE}") ########### next target ############### -SET(optionalCFlags) -SET(optionalLinkFlags) - -IF (KMPLAYER_WITH_CAIRO) - SET(optionalCFlags ${optionalCFlags} ${CAIROCFlags}) - SET(optionalLinkFlags ${optionalLinkFlags} ${CAIROLinkFlags}) - MESSAGE("have cairo cflags:${optionalCFlags} ldflags:${optionalLinkFlags}") -endif (KMPLAYER_WITH_CAIRO) - add_definitions(-DKMPLAYER_VERSION_STRING="\\\"${KMPLAYER_VERSION_STRING}\\\"") -ADD_DEFINITIONS(${CAIROCFlags}) - -include_directories(${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR} ${CAIROIncDir} ${EXPAT_INCLUDE_DIRS}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR} ${CAIRO_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS}) set(libkmplayercommon_SRCS kmplayerview.cpp playmodel.cpp playlistview.cpp kmplayercontrolpanel.cpp kmplayerconfig.cpp pref.cpp kmplayerprocess.cpp kmplayerpartbase.cpp kmplayerplaylist.cpp kmplayer_asx.cpp kmplayer_smil.cpp kmplayer_rp.cpp kmplayer_rss.cpp kmplayer_atom.cpp kmplayer_opml.cpp kmplayer_xspf.cpp expression.cpp mediaobject.cpp triestring.cpp surface.cpp viewarea.cpp ) qt5_add_dbus_adaptor(libkmplayercommon_SRCS org.kde.kmplayer.master.xml ${CMAKE_CURRENT_SOURCE_DIR}/kmplayerprocess.h KMPlayer::MasterProcessInfo) qt5_add_dbus_adaptor(libkmplayercommon_SRCS org.kde.kmplayer.streammaster.xml ${CMAKE_CURRENT_SOURCE_DIR}/kmplayerprocess.h KMPlayer::MasterProcess) qt5_add_dbus_adaptor(libkmplayercommon_SRCS org.kde.kmplayer.part.xml ${CMAKE_CURRENT_SOURCE_DIR}/kmplayerpartbase.h KMPlayer::PartBase) if (KMPLAYER_WITH_NPP) qt5_add_dbus_adaptor(libkmplayercommon_SRCS org.kde.kmplayer.callback.xml ${CMAKE_CURRENT_SOURCE_DIR}/kmplayerprocess.h KMPlayer::NpPlayer) qt5_add_dbus_adaptor(libkmplayercommon_SRCS org.kde.kmplayer.stream.xml ${CMAKE_CURRENT_SOURCE_DIR}/kmplayerprocess.h KMPlayer::NpStream) endif (KMPLAYER_WITH_NPP) add_library(kmplayercommon SHARED ${libkmplayercommon_SRCS}) -MESSAGE("extra ${CAIROCflags} ${GLibDBusCflags} libs ${CAIROLinkFlags} ${GLibDBusLinkFlags}") - -SET_TARGET_PROPERTIES(kmplayercommon PROPERTIES COMPILE_FLAGS - "${CAIROCflags}") - target_link_libraries(kmplayercommon LINK_PRIVATE - ${CAIROLinkFlags} + ${CAIRO_LIBRARIES} KF5::KDELibs4Support KF5::Parts ${XCB_LIBRARIES} ${EXPAT_LIBRARIES} KF5::MediaPlayer Qt5::Svg Qt5::X11Extras ) install(TARGETS kmplayercommon ${INSTALL_TARGETS_DEFAULT_ARGS} ) ########### next target ############### set(kmplayerpart_SRCS kmplayer_part.cpp) add_library(kmplayerpart MODULE ${kmplayerpart_SRCS}) target_link_libraries(kmplayerpart kmplayercommon KF5::MediaPlayer KF5::KDELibs4Support KF5::Parts ) install(TARGETS kmplayerpart DESTINATION ${PLUGIN_INSTALL_DIR} ) install( FILES kmplayer_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) ########### next target ############### set(kmplayer_SRCS kmplayer.cpp kmplayer_lists.cpp kmplayertvsource.cpp ) #kmplayerbroadcast.cpp #kmplayervdr.cpp kf5_add_kdeinit_executable(kmplayer ${kmplayer_SRCS} main.cpp) target_link_libraries(kdeinit_kmplayer kmplayercommon KF5::MediaPlayer KF5::KDELibs4Support KF5::Parts ) target_link_libraries(kmplayer kdeinit_kmplayer) install(TARGETS kdeinit_kmplayer ${INSTALL_TARGETS_DEFAULT_ARGS} ) install(TARGETS kmplayer ${INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES org.kde.kmplayer.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(FILES org.kde.kmplayer.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) #qt5_add_dbus_interface(kmplayer_SRCS org.kde.Konqueror.Main.xml kmplayer_interface) ########### next target ############### if (KMPLAYER_WITH_NPP) MESSAGE("build npp") set(knpplayer_SRCS npplayer.cpp) add_executable(knpplayer ${knpplayer_SRCS}) - SET_TARGET_PROPERTIES(knpplayer PROPERTIES COMPILE_FLAGS - "${GLibDBusCflags} ${GTKCflags} ${GThreadCflags} ${GModuleCflags}" - ) + include_directories(${GLibDBus_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GThread_INCLUDE_DIRS} ${GModule_INCLUDE_DIRS}) - target_link_libraries(knpplayer ${GLibDBusLinkFlags} ${GTKLinkFlags} ${GThreadLinkFlags} ${GModuleLinkFlags} + target_link_libraries(knpplayer ${GLibDBus_LIBRARIES} ${GTK_LIBRARIES} ${GThread_LIBRARIES} ${GModule_LIBRARIES} ${X11_X11_LIB} ) install(TARGETS knpplayer ${INSTALL_TARGETS_DEFAULT_ARGS}) endif (KMPLAYER_WITH_NPP) #kxineplayer #kgstplayer #kxvplayer ########### next target ############### set(kphononplayer_SRCS phononplayer.cpp ) qt5_add_dbus_adaptor(kphononplayer_SRCS org.kde.kmplayer.slave.xml ${CMAKE_CURRENT_SOURCE_DIR}/phononplayer.h Slave) qt5_add_dbus_adaptor(kphononplayer_SRCS org.kde.kmplayer.streamslave.xml ${CMAKE_CURRENT_SOURCE_DIR}/phononplayer.h Stream) add_executable(kphononplayer ${kphononplayer_SRCS}) target_link_libraries(kphononplayer Phonon::phonon4qt5 ${XCB_LIBRARIES} Qt5::Core Qt5::DBus Qt5::Widgets Qt5::X11Extras ) install(TARGETS kphononplayer ${INSTALL_TARGETS_DEFAULT_ARGS}) ########### install files ############### install(FILES pluginsinfo bookmarks.xml DESTINATION ${DATA_INSTALL_DIR}/kmplayer) install(FILES kmplayerui.rc kmplayerpartui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/kmplayer) install(FILES kmplayerrc DESTINATION ${CONFIG_INSTALL_DIR}) #install(FILES kmplayer.kcfg DESTINATION ${KCFG_INSTALL_DIR})