Changeset View
Changeset View
Standalone View
Standalone View
CMakeLists.txt
1 | cmake_minimum_required(VERSION 3.0 FATAL_ERROR) | 1 | cmake_minimum_required(VERSION 3.0 FATAL_ERROR) | ||
---|---|---|---|---|---|
2 | find_package(ECM 1.8.0 REQUIRED NOMODULE) | 2 | find_package(ECM 1.8.0 REQUIRED NOMODULE) | ||
3 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | 3 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | ||
4 | include(SetKexiCMakePolicies NO_POLICY_SCOPE) | 4 | include(SetKexiCMakePolicies NO_POLICY_SCOPE) | ||
5 | include(SetKexiVersionInfo) | 5 | include(SetKexiVersionInfo) | ||
6 | 6 | | |||
7 | project(Kexi VERSION ${PROJECT_VERSION}) | 7 | project(KEXI VERSION ${PROJECT_VERSION}) | ||
8 | 8 | | |||
9 | include(KexiAddTests) | 9 | include(KexiAddTests) | ||
10 | kexi_add_tests(OFF) | 10 | kexi_add_tests(OFF) | ||
11 | 11 | | |||
12 | # ECM | 12 | # ECM | ||
13 | include(ECMAddAppIcon) | 13 | include(ECMAddAppIcon) | ||
14 | include(ECMAddTests) | 14 | include(ECMAddTests) | ||
15 | include(ECMGenerateHeaders) | 15 | include(ECMGenerateHeaders) | ||
▲ Show 20 Lines • Show All 104 Lines • ▼ Show 20 Line(s) | 113 | add_definitions( | |||
120 | -DQT_USE_QSTRINGBUILDER | 120 | -DQT_USE_QSTRINGBUILDER | ||
121 | ) | 121 | ) | ||
122 | 122 | | |||
123 | # overcome some platform incompatibilities | 123 | # overcome some platform incompatibilities | ||
124 | if(WIN32) | 124 | if(WIN32) | ||
125 | find_package(KDEWin REQUIRED) | 125 | find_package(KDEWin REQUIRED) | ||
126 | endif() | 126 | endif() | ||
127 | 127 | | |||
128 | # set custom Kexi plugin installdir | 128 | # set custom KEXI plugin installdir | ||
129 | set(KEXI_PLUGIN_INSTALL_DIR ${PLUGIN_INSTALL_DIR}/${KEXI_BASE_PATH}) | 129 | set(KEXI_PLUGIN_INSTALL_DIR ${PLUGIN_INSTALL_DIR}/${KEXI_BASE_PATH}) | ||
130 | 130 | | |||
131 | simple_option(BUILD_EXAMPLES "Build and install examples" ON) | 131 | simple_option(BUILD_EXAMPLES "Build and install examples" ON) | ||
132 | 132 | | |||
133 | macro_bool_to_01(BUILD_EXAMPLES COMPILING_EXAMPLES) | 133 | macro_bool_to_01(BUILD_EXAMPLES COMPILING_EXAMPLES) | ||
134 | 134 | | |||
135 | # set custom Kexi examples installdir | 135 | # set custom KEXI examples installdir | ||
136 | set(KEXI_EXAMPLES_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/examples/${KEXI_BASE_PATH}) | 136 | set(KEXI_EXAMPLES_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/examples/${KEXI_BASE_PATH}) | ||
137 | 137 | | |||
138 | # TEMPORARY: for initial Qt5/KF5 build porting phase deprecation warnings are only annoying noise | 138 | # TEMPORARY: for initial Qt5/KF5 build porting phase deprecation warnings are only annoying noise | ||
139 | # remove once code porting phase starts, perhaps first locally in product subdirs | 139 | # remove once code porting phase starts, perhaps first locally in product subdirs | ||
140 | #if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC) | 140 | #if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC) | ||
141 | # add_definitions(-Wno-deprecated -Wno-deprecated-declarations) | 141 | # add_definitions(-Wno-deprecated -Wno-deprecated-declarations) | ||
142 | #endif () | 142 | #endif () | ||
143 | 143 | | |||
144 | ########################### | 144 | ########################### | ||
145 | ############################ | 145 | ############################ | ||
146 | ## Required dependencies ## | 146 | ## Required dependencies ## | ||
147 | ############################ | 147 | ############################ | ||
148 | ########################### | 148 | ########################### | ||
149 | 149 | | |||
150 | set(KEXI_LIBS_MIN_VERSION 3.0.95) | 150 | set(KEXI_LIBS_MIN_VERSION 3.0.95) | ||
151 | 151 | | |||
152 | ## | 152 | ## | ||
153 | ## Test for KDb | 153 | ## Test for KDb | ||
154 | ## | 154 | ## | ||
155 | simple_option(KEXI_DEBUG_GUI "Debugging GUI for Kexi (requires KDB_DEBUG_GUI to be set too)" OFF) | 155 | simple_option(KEXI_DEBUG_GUI "Debugging GUI for KEXI (requires KDB_DEBUG_GUI to be set too)" OFF) | ||
156 | if(KEXI_DEBUG_GUI) | 156 | if(KEXI_DEBUG_GUI) | ||
157 | set(KDB_REQUIRED_COMPONENTS DEBUG_GUI) | 157 | set(KDB_REQUIRED_COMPONENTS DEBUG_GUI) | ||
158 | endif() | 158 | endif() | ||
159 | find_package(KDb ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS ${KDB_REQUIRED_COMPONENTS}) | 159 | find_package(KDb ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS ${KDB_REQUIRED_COMPONENTS}) | ||
160 | set_package_properties(KDb PROPERTIES TYPE REQUIRED | 160 | set_package_properties(KDb PROPERTIES TYPE REQUIRED | ||
161 | PURPOSE "Required by Kexi for data handling") | 161 | PURPOSE "Required by KEXI for data handling") | ||
162 | 162 | | |||
163 | ## | 163 | ## | ||
164 | ## Test for KReport | 164 | ## Test for KReport | ||
165 | ## | 165 | ## | ||
166 | find_package(KReport ${KEXI_LIBS_MIN_VERSION}) | 166 | find_package(KReport ${KEXI_LIBS_MIN_VERSION}) | ||
167 | set_package_properties(KReport PROPERTIES TYPE REQUIRED | 167 | set_package_properties(KReport PROPERTIES TYPE REQUIRED | ||
168 | PURPOSE "Required by Kexi for report handling") | 168 | PURPOSE "Required by KEXI for report handling") | ||
169 | if (KReport_FOUND) | 169 | if (KReport_FOUND) | ||
170 | if(NOT KREPORT_SCRIPTING) | 170 | if(NOT KREPORT_SCRIPTING) | ||
171 | message(FATAL_ERROR "Kexi requires KReport package with scripting support enabled (KREPORT_SCRIPTING)") | 171 | message(FATAL_ERROR "KEXI requires KReport package with scripting support enabled (KREPORT_SCRIPTING)") | ||
172 | endif() | 172 | endif() | ||
173 | endif() | 173 | endif() | ||
174 | 174 | | |||
175 | ## | 175 | ## | ||
176 | ## Test for KPropertyWidgets | 176 | ## Test for KPropertyWidgets | ||
177 | ## | 177 | ## | ||
178 | if(SHOULD_BUILD_KEXI_DESKTOP_APP) | 178 | if(SHOULD_BUILD_KEXI_DESKTOP_APP) | ||
179 | find_package(KPropertyWidgets ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS KF) | 179 | find_package(KPropertyWidgets ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS KF) | ||
180 | set_package_properties(KPropertyWidgets PROPERTIES TYPE REQUIRED | 180 | set_package_properties(KPropertyWidgets PROPERTIES TYPE REQUIRED | ||
181 | PURPOSE "Required by Kexi for handling properties") | 181 | PURPOSE "Required by KEXI for handling properties") | ||
182 | else() # only KPropertyCore | 182 | else() # only KPropertyCore | ||
183 | find_package(KPropertyCore ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS KF) | 183 | find_package(KPropertyCore ${KEXI_LIBS_MIN_VERSION} REQUIRED COMPONENTS KF) | ||
184 | set_package_properties(KPropertyCore PROPERTIES TYPE REQUIRED | 184 | set_package_properties(KPropertyCore PROPERTIES TYPE REQUIRED | ||
185 | PURPOSE "Required by Kexi for handling properties") | 185 | PURPOSE "Required by KEXI for handling properties") | ||
186 | endif() | 186 | endif() | ||
187 | include(CheckIfQtGuiCanBeExecuted) | 187 | include(CheckIfQtGuiCanBeExecuted) | ||
188 | 188 | | |||
189 | if(SHOULD_BUILD_KEXI_DESKTOP_APP) | 189 | if(SHOULD_BUILD_KEXI_DESKTOP_APP) | ||
190 | include(CheckGlobalBreezeIcons) | 190 | include(CheckGlobalBreezeIcons) | ||
191 | endif() | 191 | endif() | ||
192 | ########################### | 192 | ########################### | ||
193 | ############################ | 193 | ############################ | ||
194 | ## Optional dependencies ## | 194 | ## Optional dependencies ## | ||
195 | ############################ | 195 | ############################ | ||
196 | ########################### | 196 | ########################### | ||
197 | 197 | | |||
198 | ## | 198 | ## | ||
199 | ## Test for marble | 199 | ## Test for marble | ||
200 | ## | 200 | ## | ||
201 | set(MARBLE_MIN_VERSION "0.19.2") | 201 | set(MARBLE_MIN_VERSION "0.19.2") | ||
202 | find_package(KexiMarble ${MARBLE_MIN_VERSION}) | 202 | find_package(KexiMarble ${MARBLE_MIN_VERSION}) | ||
203 | set_package_properties(KexiMarble PROPERTIES | 203 | set_package_properties(KexiMarble PROPERTIES | ||
204 | DESCRIPTION "KDE World Globe Widget library" | 204 | DESCRIPTION "KDE World Globe Widget library" | ||
205 | URL "https://marble.kde.org" | 205 | URL "https://marble.kde.org" | ||
206 | TYPE RECOMMENDED | 206 | TYPE RECOMMENDED | ||
207 | PURPOSE "Required by Kexi form map widget" | 207 | PURPOSE "Required by KEXI form map widget" | ||
208 | ) | 208 | ) | ||
209 | if(NOT MARBLE_FOUND) | 209 | if(NOT MARBLE_FOUND) | ||
210 | set(MARBLE_INCLUDE_DIR "") | 210 | set(MARBLE_INCLUDE_DIR "") | ||
211 | else() | 211 | else() | ||
212 | set(HAVE_MARBLE TRUE) | 212 | set(HAVE_MARBLE TRUE) | ||
213 | endif() | 213 | endif() | ||
214 | set_package_properties(GLIB2 PROPERTIES TYPE RECOMMENDED PURPOSE "${_REQUIRED_BY_MDB}") | 214 | set_package_properties(GLIB2 PROPERTIES TYPE RECOMMENDED PURPOSE "${_REQUIRED_BY_MDB}") | ||
215 | 215 | | |||
216 | ## | 216 | ## | ||
217 | ## Test for Qt WebKitWidgets | 217 | ## Test for Qt WebKitWidgets | ||
218 | ## | 218 | ## | ||
219 | #TODO switch to Qt WebEngine | 219 | #TODO switch to Qt WebEngine | ||
220 | macro_bool_to_01(Qt5WebKitWidgets_FOUND HAVE_QTWEBKITWIDGETS) | 220 | macro_bool_to_01(Qt5WebKitWidgets_FOUND HAVE_QTWEBKITWIDGETS) | ||
221 | set_package_properties(Qt5WebKit PROPERTIES | 221 | set_package_properties(Qt5WebKit PROPERTIES | ||
222 | DESCRIPTION "Webkit for Qt, the HTML engine." | 222 | DESCRIPTION "Webkit for Qt, the HTML engine." | ||
223 | URL "http://qt.io" | 223 | URL "http://qt.io" | ||
224 | TYPE RECOMMENDED PURPOSE "Required by Kexi web form widget" | 224 | TYPE RECOMMENDED PURPOSE "Required by KEXI web form widget" | ||
225 | ) | 225 | ) | ||
226 | set_package_properties(Qt5WebKitWidgets PROPERTIES | 226 | set_package_properties(Qt5WebKitWidgets PROPERTIES | ||
227 | DESCRIPTION "QWidgets module for Webkit, the HTML engine." | 227 | DESCRIPTION "QWidgets module for Webkit, the HTML engine." | ||
228 | URL "http://qt.io" | 228 | URL "http://qt.io" | ||
229 | TYPE RECOMMENDED PURPOSE "Required by Kexi web form widget" | 229 | TYPE RECOMMENDED PURPOSE "Required by KEXI web form widget" | ||
230 | ) | 230 | ) | ||
231 | 231 | | |||
232 | ################## | 232 | ################## | ||
233 | ################### | 233 | ################### | ||
234 | ## Helper macros ## | 234 | ## Helper macros ## | ||
235 | ################### | 235 | ################### | ||
236 | ################## | 236 | ################## | ||
237 | 237 | | |||
▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines |