-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
CMakeLists.txt
143 lines (118 loc) · 4.35 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
140
141
142
143
cmake_minimum_required(VERSION 3.16)
# KDE Application Version, managed by release script
set(RELEASE_SERVICE_VERSION_MAJOR "24")
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(parley VERSION ${RELEASE_SERVICE_VERSION})
set(QT_MIN_VERSION "6.5.0")
set(KF_MIN_VERSION "5.240.0")
set(KDE_COMPILERSETTINGS_LEVEL "5.82.0")
find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
include(KDEInstallDirs)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(KDECMakeSettings)
include(ECMEnableSanitizers)
include(FeatureSummary)
include(KDEClangFormat)
include(KDEGitCommitHooks)
include(ECMDeprecationSettings)
#Allows QString concatenation to use a single memory allocation per source line.
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
add_definitions(-DQT_NO_FOREACH)
add_definitions(-DKNEWSTUFFWIDGETS_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055A00)
option(BUILD_BROWSERINTEGRATION "Build integration for accessing the Internet (requires QtWebengine)" ON)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
Core
Svg
Concurrent
Multimedia
)
if (BUILD_BROWSERINTEGRATION)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED WebEngineWidgets)
endif()
find_package(KF6 ${KF_MIN_VERSION} MODULE REQUIRED COMPONENTS
DocTools #to produce the docbook
CoreAddons
Config
Crash
I18n
KIO
NewStuff
Sonnet
TextWidgets
XmlGui
Notifications
)
ecm_set_disabled_deprecation_versions(QT 5.15.2
KF 5.99.0
)
find_package(LibKEduVocDocument)
set_package_properties(LibKEduVocDocument PROPERTIES
TYPE REQUIRED
PURPOSE "Required to manipulate the KDE word files."
)
find_package(LibXslt)
set_package_properties(LibXslt PROPERTIES
URL "http://xmlsoft.org/XSLT"
TYPE OPTIONAL
PURPOSE "Required to build HTML export for Parley."
)
find_package(LibXml2)
set_package_properties(LibXml2 PROPERTIES
URL "http://xmlsoft.org"
TYPE OPTIONAL
PURPOSE "Required to build HTML export for Parley."
)
find_package(TranslateShell)
set_package_properties(TranslateShell PROPERTIES
URL "https://github.com/soimort/translate-shell"
TYPE RUNTIME
PURPOSE "Runtime dependency for online access to translations"
)
# at the end, output the configuration
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config-parley.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config-parley.h
)
# let our config-parley.h be found first in any case
include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR})
message(STATUS "cmake cflags ${CMAKE_C_FLAGS}")
message(STATUS "cmake link flags ${CMAKE_EXE_LINKER_FLAGS}")
if(${LIBXSLT_FOUND} AND ${LIBXML2_FOUND})
set(HAVE_LIBXSLT 1)
message(STATUS "XLST found")
else(${LIBXSLT_FOUND} AND ${LIBXML2_FOUND})
set(HAVE_LIBXSLT 0)
message(STATUS "XSLT not found, but not required")
endif(${LIBXSLT_FOUND} AND ${LIBXML2_FOUND})
if(X11_Xrender_FOUND)
message(STATUS "X11 Xrender found")
set( parley_LINK_LIBS ${parley_LINK_LIBS} ${X11_LIBRARIES} ${X11_Xrender_LIB})
else(X11_Xrender_FOUND)
message(STATUS "X11 Xrender not found, but not required")
endif(X11_Xrender_FOUND)
if(BUILD_TESTING)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED Test)
add_subdirectory( autotests )
add_subdirectory( tests )
endif()
add_subdirectory( docs )
add_subdirectory( src )
add_subdirectory( icons )
add_subdirectory( themes )
if(HAVE_LIBXSLT)
add_subdirectory( xslt )
endif(HAVE_LIBXSLT)
ki18n_install(po)
if (KF6DocTools_FOUND)
kdoctools_install(po)
endif()
install(FILES org.kde.parley.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
# 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 INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)