-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
133 lines (108 loc) · 3.35 KB
/
CMakeLists.txt
File metadata and controls
133 lines (108 loc) · 3.35 KB
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
cmake_minimum_required(VERSION 3.16)
# KDE Application Version, managed by release script
set(RELEASE_SERVICE_VERSION_MAJOR "26")
set(RELEASE_SERVICE_VERSION_MINOR "07")
set(RELEASE_SERVICE_VERSION_MICRO "70")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(kruler VERSION ${RELEASE_SERVICE_VERSION})
set(QT_MIN_VERSION "6.5.0")
set(KF_MIN_VERSION "6.1.0")
find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(KDEClangFormat)
include(KDEGitCommitHooks)
include(ECMInstallIcons)
include(FeatureSummary)
include(ECMAddAppIcon)
include(ECMSetupVersion)
include(ECMDeprecationSettings)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
Core
Gui
Widgets
)
if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")
find_package(Qt6GuiPrivate ${QT_MIN_VERSION} REQUIRED NO_MODULE)
endif()
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS
CoreAddons
I18n
Notifications
StatusNotifierItem
WindowSystem
XmlGui
Crash
)
find_package(KF6DocTools ${KF_MIN_VERSION})
set_package_properties(KF6DocTools PROPERTIES DESCRIPTION
"Tools to generate documentation"
TYPE OPTIONAL
)
if (NOT APPLE)
option(WITHOUT_X11 "Build without X11 integration (skips finding X11)" OFF)
if (NOT WITHOUT_X11)
find_package(XCB COMPONENTS XCB)
set (KRULER_HAVE_X11 ${XCB_FOUND})
endif()
endif()
ecm_set_disabled_deprecation_versions(QT 6.10
KF 6.23.0
)
add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
add_definitions(-DTRANSLATION_DOMAIN="kruler")
configure_file(krulerconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/krulerconfig.h)
add_subdirectory( pics )
if (KF6DocTools_FOUND)
add_subdirectory(doc)
endif()
ecm_setup_version(${RELEASE_SERVICE_VERSION}
VARIABLE_PREFIX KRULER
VERSION_HEADER kruler_version.h
)
add_executable(kruler)
target_sources(kruler PRIVATE
klineal.cpp
krulersystemtray.cpp
klineal.h
krulersystemtray.h
main.cpp
)
ki18n_wrap_ui(kruler
cfg_appearance.ui
cfg_advanced.ui
)
kconfig_add_kcfg_files(kruler kruler.kcfgc)
file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/*-apps-kruler.png")
ecm_add_app_icon(kruler ICONS ${ICONS_SRCS})
target_link_libraries(kruler
KF6::CoreAddons
KF6::I18n
KF6::Notifications
KF6::WindowSystem
KF6::XmlGui
KF6::StatusNotifierItem
KF6::Crash
)
if(KRULER_HAVE_X11)
target_link_libraries(kruler
${XCB_LIBRARIES}
Qt6::GuiPrivate
)
endif()
install(TARGETS kruler ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install( PROGRAMS org.kde.kruler.desktop DESTINATION ${KDE_INSTALL_APPDIR} )
install( FILES org.kde.kruler.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )
install( FILES kruler.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} )
install( FILES move.wav DESTINATION ${KDE_INSTALL_DATADIR}/kruler/sounds )
ki18n_install(po)
if (KF6DocTools_FOUND)
kdoctools_install(po)
endif()
# add clang-format target for all our real source files
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)