File Use-more-target-centric-cmake-code.patch of Package kmplayer5

From 0b7535b408dfc665c55ddcbc3402cd749ed5c2a5 Mon Sep 17 00:00:00 2001
From: "Friedrich W. H. Kossebau" <kossebau@kde.org>
Date: Wed, 19 May 2021 01:40:47 +0200
Subject: [PATCH] Use more target-centric cmake code

GIT_SILENT
---
 CMakeLists.txt                     |  6 ++---
 src/CMakeLists.txt                 |  4 ----
 src/app/CMakeLists.txt             | 17 +++++++-------
 src/backends/npp/CMakeLists.txt    |  8 +++----
 src/backends/phonon/CMakeLists.txt | 14 ++++++-----
 src/lib/CMakeLists.txt             | 37 ++++++++++++++++++------------
 src/part/CMakeLists.txt            | 19 +++++++--------
 7 files changed, 55 insertions(+), 50 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30519f0e..c5ea6908 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.5)
+cmake_minimum_required(VERSION 3.16)
 
 project(kmplayer)
 
@@ -9,8 +9,8 @@ SET(KMPLAYER_PATCH_VERSION "0b")
 SET(KMPLAYER_VERSION_STRING
     "${KMPLAYER_MAJOR_VERSION}.${KMPLAYER_MINOR_VERSION}.${KMPLAYER_PATCH_VERSION}")
 
-set(QT_MIN_VERSION "5.12.0")
-set(KF5_MIN_VERSION "5.69.0")
+set(QT_MIN_VERSION "5.15.0")
+set(KF5_MIN_VERSION "5.80.0")
 
 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0b0a415a..e2e4369b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -2,10 +2,6 @@ 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}")
 
-include_directories(
-    ${CMAKE_CURRENT_BINARY_DIR}
-)
-
 configure_file(config-kmplayer.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kmplayer.h)
 
 add_subdirectory(lib)
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 4cc242bc..f89bf08c 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -1,14 +1,17 @@
-add_definitions(-DKMPLAYER_VERSION_STRING="\\\"${KMPLAYER_VERSION_STRING}\\\"")
+kf5_add_kdeinit_executable(kmplayer)
 
-set(kmplayer_SRCS
+target_sources(kdeinit_kmplayer PRIVATE
     kmplayer.cpp
     kmplayer_lists.cpp
     kmplayertvsource.cpp
 #kmplayerbroadcast.cpp
 #kmplayervdr.cpp
+    main.cpp
+
+    kmplayer.qrc
 )
 
-ecm_qt_declare_logging_category(kmplayer_SRCS
+ecm_qt_declare_logging_category(kdeinit_kmplayer
     HEADER kmplayerapp_log.h
     IDENTIFIER LOG_KMPLAYER_APP
     CATEGORY_NAME kmplayer.app
@@ -16,20 +19,16 @@ ecm_qt_declare_logging_category(kmplayer_SRCS
     EXPORT KMPLAYER
 )
 
-qt5_add_resources(kmplayer_SRCS
-    kmplayer.qrc
+target_compile_definitions(kdeinit_kmplayer PRIVATE
+    -DKMPLAYER_VERSION_STRING="\\\"${KMPLAYER_VERSION_STRING}\\\""
 )
 
-kf5_add_kdeinit_executable(kmplayer ${kmplayer_SRCS} main.cpp)
-
 target_link_libraries(kdeinit_kmplayer
     kmplayercommon
     KF5::IconThemes
     Qt5::X11Extras
 )
 
-target_link_libraries(kmplayer kdeinit_kmplayer)
-
 install(TARGETS kdeinit_kmplayer ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
 
 install(TARGETS kmplayer ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/src/backends/npp/CMakeLists.txt b/src/backends/npp/CMakeLists.txt
index d54fc9d0..b0b8e58f 100644
--- a/src/backends/npp/CMakeLists.txt
+++ b/src/backends/npp/CMakeLists.txt
@@ -1,16 +1,16 @@
-include_directories(
+add_executable(knpplayer)
+
+target_include_directories(knpplayer PRIVATE
     ${GLibDBus_INCLUDE_DIRS}
     ${GTK_INCLUDE_DIRS}
     ${GThread_INCLUDE_DIRS}
     ${GModule_INCLUDE_DIRS}
 )
 
-set(knpplayer_SRCS
+target_sources(knpplayer PRIVATE
     npplayer.cpp
 )
 
-add_executable(knpplayer ${knpplayer_SRCS})
-
 target_link_libraries(knpplayer
     ${GLibDBus_LIBRARIES}
     ${GTK_LIBRARIES}
diff --git a/src/backends/phonon/CMakeLists.txt b/src/backends/phonon/CMakeLists.txt
index b915b0c4..78b3e56c 100644
--- a/src/backends/phonon/CMakeLists.txt
+++ b/src/backends/phonon/CMakeLists.txt
@@ -1,17 +1,19 @@
-set(kphononplayer_SRCS
-    phononplayer.cpp
-)
+add_executable(kphononplayer)
 
-qt5_add_dbus_adaptor(kphononplayer_SRCS
+set(kphononplayer_dbus_SRCS)
+qt5_add_dbus_adaptor(kphononplayer_dbus_SRCS
     ${CMAKE_SOURCE_DIR}/src/lib/org.kde.kmplayer.agent.xml
     phononplayer.h Agent
 )
-qt5_add_dbus_adaptor(kphononplayer_SRCS
+qt5_add_dbus_adaptor(kphononplayer_dbus_SRCS
     ${CMAKE_SOURCE_DIR}/src/lib/org.kde.kmplayer.streamagent.xml
     phononplayer.h Stream
 )
 
-add_executable(kphononplayer ${kphononplayer_SRCS})
+target_sources(kphononplayer PRIVATE
+    phononplayer.cpp
+    ${kphononplayer_dbus_SRCS}
+)
 
 target_link_libraries(kphononplayer
     Phonon::phonon4qt5
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 129ea01a..931e58e5 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -1,11 +1,8 @@
-add_definitions(-DTRANSLATION_DOMAIN=\"kmplayer\")
+add_library(kmplayercommon SHARED)
 
-include_directories(
-    ${CAIRO_INCLUDE_DIRS}
-    ${EXPAT_INCLUDE_DIRS}
-)
+target_compile_definitions(kmplayercommon PRIVATE -DTRANSLATION_DOMAIN=\"kmplayer\")
 
-set(libkmplayercommon_SRCS
+target_sources(kmplayercommon PRIVATE
     kmplayerview.cpp
     playmodel.cpp
     playlistview.cpp
@@ -29,7 +26,7 @@ set(libkmplayercommon_SRCS
     viewarea.cpp
 )
 
-ecm_qt_declare_logging_category(libkmplayercommon_SRCS
+ecm_qt_declare_logging_category(kmplayercommon
     HEADER kmplayercommon_log.h
     IDENTIFIER LOG_KMPLAYER_COMMON
     CATEGORY_NAME kmplayer.common
@@ -37,39 +34,49 @@ ecm_qt_declare_logging_category(libkmplayercommon_SRCS
     EXPORT KMPLAYER
 )
 
-qt5_add_dbus_adaptor(libkmplayercommon_SRCS
+set(libkmplayercommon_dbus_SRCS)
+qt5_add_dbus_adaptor(libkmplayercommon_dbus_SRCS
     org.kde.kmplayer.master.xml
     kmplayerprocess.h KMPlayer::MasterProcessInfo
 )
-qt5_add_dbus_adaptor(libkmplayercommon_SRCS
+qt5_add_dbus_adaptor(libkmplayercommon_dbus_SRCS
     org.kde.kmplayer.streammaster.xml
     kmplayerprocess.h KMPlayer::MasterProcess
 )
-qt5_add_dbus_adaptor(libkmplayercommon_SRCS
+qt5_add_dbus_adaptor(libkmplayercommon_dbus_SRCS
     org.kde.kmplayer.part.xml
     kmplayerpartbase.h KMPlayer::PartBase
 )
 
 if (KMPLAYER_WITH_NPP)
-    qt5_add_dbus_adaptor(libkmplayercommon_SRCS
+    qt5_add_dbus_adaptor(libkmplayercommon_dbus_SRCS
         org.kde.kmplayer.callback.xml
         kmplayerprocess.h KMPlayer::NpPlayer
     )
-    qt5_add_dbus_adaptor(libkmplayercommon_SRCS
+    qt5_add_dbus_adaptor(libkmplayercommon_dbus_SRCS
         org.kde.kmplayer.stream.xml
         kmplayerprocess.h KMPlayer::NpStream
     )
-endif (KMPLAYER_WITH_NPP)
+endif ()
 
 set_source_files_properties(org.freedesktop.PowerManagement.Inhibit.xml
     PROPERTIES NO_NAMESPACE TRUE
 )
-qt5_add_dbus_interfaces(libkmplayercommon_SRCS org.freedesktop.PowerManagement.Inhibit.xml)
+qt5_add_dbus_interfaces(libkmplayercommon_dbus_SRCS org.freedesktop.PowerManagement.Inhibit.xml)
 
-add_library(kmplayercommon SHARED ${libkmplayercommon_SRCS})
+target_sources(kmplayercommon PRIVATE
+    ${libkmplayercommon_dbus_SRCS}
+)
 
 generate_export_header(kmplayercommon)
 
+target_include_directories(kmplayercommon
+    PUBLIC
+        "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/..>" # config file
+    PRIVATE
+        ${CAIRO_INCLUDE_DIRS}
+        ${EXPAT_INCLUDE_DIRS}
+)
 target_link_libraries(kmplayercommon
     PUBLIC
         KF5::MediaPlayer
diff --git a/src/part/CMakeLists.txt b/src/part/CMakeLists.txt
index 8bfcf31b..f5db0918 100644
--- a/src/part/CMakeLists.txt
+++ b/src/part/CMakeLists.txt
@@ -1,12 +1,18 @@
 configure_file(kmplayer_part.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/kmplayer_part.desktop @ONLY)
 
-add_definitions(-DTRANSLATION_DOMAIN=\"kmplayer\")
+add_library(kmplayerpart MODULE)
 
-add_definitions(-DKMPLAYER_VERSION_STRING="\\\"${KMPLAYER_VERSION_STRING}\\\"")
+target_compile_definitions(kmplayerpart PRIVATE
+    -DTRANSLATION_DOMAIN=\"kmplayer\"
+    -DKMPLAYER_VERSION_STRING="\\\"${KMPLAYER_VERSION_STRING}\\\""
+)
 
-set(kmplayerpart_SRCS kmplayer_part.cpp)
+target_sources(kmplayerpart PRIVATE
+    kmplayer_part.cpp
+    kmplayer_part.qrc
+)
 
-ecm_qt_declare_logging_category(kmplayerpart_SRCS
+ecm_qt_declare_logging_category(kmplayerpart
     HEADER kmplayerpart_log.h
     IDENTIFIER LOG_KMPLAYER_PART
     CATEGORY_NAME kmplayer.kpart
@@ -14,11 +20,6 @@ ecm_qt_declare_logging_category(kmplayerpart_SRCS
     EXPORT KMPLAYER
 )
 
-qt5_add_resources(kmplayerpart_SRCS
-    kmplayer_part.qrc
-)
-
-add_library(kmplayerpart MODULE ${kmplayerpart_SRCS})
 kcoreaddons_desktop_to_json(kmplayerpart ${CMAKE_CURRENT_BINARY_DIR}/kmplayer_part.desktop)
 
 target_link_libraries(kmplayerpart
-- 
GitLab

openSUSE Build Service is sponsored by