forked from KDE/haruna
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
139 lines (104 loc) · 4.66 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#
# SPDX-FileCopyrightText: 2020 George Florea Bănuș <georgefb899@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
cmake_minimum_required(VERSION 3.15)
cmake_policy(SET CMP0048 NEW)
project(haruna VERSION 1.3.2 LANGUAGES CXX)
set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src)
set(QML_IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} CACHE PATH "Extra QML import paths to make Qt Creator happy")
set(QT_MIN_VERSION 6.6.0)
set(KF6_MIN_VERSION 6.0.0)
include(FeatureSummary)
find_package(ECM ${KF6_MIN_VERSION} NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/ecm/"
DESCRIPTION "extra cmake modules")
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(DBUS_PLATFORMS Linux FreeBSD GNU/kFreeBSD NetBSD OpenBSD)
find_package(Qt6Core ${QT_MIN_VERSION})
set_package_properties(Qt6Core PROPERTIES TYPE REQUIRED)
find_package(Qt6Core5Compat ${QT_MIN_VERSION})
set_package_properties(Qt6Core5Compat PROPERTIES TYPE REQUIRED)
find_package(Qt6Gui ${QT_MIN_VERSION})
set_package_properties(Qt6Gui PROPERTIES TYPE REQUIRED)
find_package(Qt6Qml ${QT_MIN_VERSION})
set_package_properties(Qt6Qml PROPERTIES TYPE REQUIRED)
find_package(Qt6Quick ${QT_MIN_VERSION})
set_package_properties(Qt6Quick PROPERTIES TYPE REQUIRED)
find_package(Qt6QuickControls2 ${QT_MIN_VERSION})
set_package_properties(Qt6QuickControls2 PROPERTIES TYPE REQUIRED)
set(HAVE_DBUS FALSE)
if (CMAKE_SYSTEM_NAME IN_LIST DBUS_PLATFORMS)
find_package(Qt6DBus ${QT_MIN_VERSION})
set_package_properties(Qt6DBus PROPERTIES TYPE REQUIRED)
set(HAVE_DBUS TRUE)
endif ()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config-haruna.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/src/config-haruna.h
)
find_package(MpvQt)
set_package_properties(MpvQt PROPERTIES TYPE REQUIRED
URL "https://invent.kde.org/libraries/mpvqt")
find_package(FFmpeg)
set_package_properties(FFmpeg PROPERTIES TYPE REQUIRED
URL "https://ffmpeg.org"
DESCRIPTION "needed for playlist and mpris thumbnails")
find_package(Breeze)
set_package_properties(Breeze PROPERTIES TYPE RECOMMENDED
URL "https://api.kde.org/frameworks/breeze-icons/html/index.html")
find_package(KF6ColorScheme ${KF6_MIN_VERSION})
set_package_properties(KF6ColorScheme PROPERTIES TYPE REQUIRED
URL "https://invent.kde.org/frameworks/kcolorscheme")
find_package(KF6Config ${KF6_MIN_VERSION})
set_package_properties(KF6Config PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kconfig/html/index.html")
find_package(KF6CoreAddons ${KF6_MIN_VERSION})
set_package_properties(KF6CoreAddons PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kcoreaddons/html/index.html")
find_package(KF6FileMetaData ${KF6_MIN_VERSION})
set_package_properties(KF6FileMetaData PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kfilemetadata/html/index.html")
find_package(KF6I18n ${KF6_MIN_VERSION})
set_package_properties(KF6I18n PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/ki18n/html/index.html")
find_package(KF6IconThemes ${KF6_MIN_VERSION})
set_package_properties(KF6IconThemes PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kiconthemes/html/index.html")
find_package(KF6KIO ${KF6_MIN_VERSION})
set_package_properties(KF6KIO PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kio/html/index.html")
find_package(KF6Kirigami ${KF6_MIN_VERSION})
set_package_properties(KF6Kirigami PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kirigami/html/index.html")
find_package(KF6WindowSystem ${KF6_MIN_VERSION})
set_package_properties(KF6WindowSystem PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kwindowsystem/html/index.html")
find_package(KF6Crash ${KF6_MIN_VERSION})
set_package_properties(KF6Crash PROPERTIES TYPE REQUIRED
URL "https://api.kde.org/frameworks/kcrash/html/index.html")
find_package(Ytdlp)
set_package_properties(Ytdlp PROPERTIES TYPE RUNTIME
URL "https://github.com/yt-dlp/yt-dlp"
DESCRIPTION "needed to play videos from youtube and other online sources")
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
include(KDEInstallDirs)
include(ECMInstallIcons)
include(ECMAddAppIcon)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(KDEClangFormat)
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.hpp *.c)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
include(KDEGitCommitHooks)
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
include(ECMSetupVersion)
ecm_setup_version(${PROJECT_VERSION}
VARIABLE_PREFIX HARUNA
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/haruna-version.h"
)
ki18n_install(po)
add_subdirectory(data)
add_subdirectory(src)