Changeset 183505 in webkit
- Timestamp:
- Apr 28, 2015 1:39:23 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r183491 r183505 1 2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 3 [GTK] Clean up feature detection and make it hard to accidentally build without optional features 4 https://bugs.webkit.org/show_bug.cgi?id=143546 5 6 Reviewed by Martin Robinson. 7 8 Add USE_GSTREAMER_MPEGTS option and turn it off by default. Turn off ENABLE_SUBTLE_CRYPTO 9 by default. Turn on ENABLE_GEOLOCATION by default. Add USE_LIBNOTIFY and turn it on by 10 default. Fail the build with an informative error message if an optional dependency required 11 for an enabled feature is not present. Perform find_package commands only when necessary. 12 Make ENABLE_API_TESTS private. Alphabetize the feature checks (yes, this is actually 13 possible now!). 14 15 * Source/cmake/OptionsGTK.cmake: 16 1 17 2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 18 -
trunk/Source/cmake/OptionsGTK.cmake
r183491 r183505 42 42 find_package(ATSPI 2.5.3) 43 43 find_package(EGL) 44 find_package(GObjectIntrospection)45 find_package(GeoClue2 2.1.5)46 find_package(GnuTLS 3.0.0)47 find_package(LibNotify)48 44 find_package(OpenGL) 49 50 if (NOT GEOCLUE2_FOUND)51 find_package(GeoClue)52 endif ()53 45 54 46 WEBKIT_OPTION_BEGIN() … … 61 53 WEBKIT_OPTION_DEFINE(ENABLE_X11_TARGET "Whether to enable support for the X11 windowing target." PUBLIC ON) 62 54 WEBKIT_OPTION_DEFINE(ENABLE_WAYLAND_TARGET "Whether to enable support for the Wayland windowing target." PUBLIC OFF) 55 WEBKIT_OPTION_DEFINE(USE_LIBNOTIFY "Whether to enable the default web notification implementation." PUBLIC ON) 63 56 64 57 WEBKIT_OPTION_DEFINE(USE_GSTREAMER_GL "Whether to enable support for GStreamer GL" PRIVATE OFF) 58 WEBKIT_OPTION_DEFINE(USE_GSTREAMER_MPEGTS "Whether to enable support for MPEG-TS" PRIVATE OFF) 65 59 WEBKIT_OPTION_DEFINE(USE_REDIRECTED_XCOMPOSITE_WINDOW "Whether to use a Redirected XComposite Window for accelerated compositing in X11." PRIVATE ON) 66 60 … … 80 74 WEBKIT_OPTION_DEPEND(USE_GSTREAMER_GL ENABLE_OPENGL) 81 75 WEBKIT_OPTION_DEPEND(USE_GSTREAMER_GL ENABLE_VIDEO) 82 83 if (GNUTLS_FOUND) 84 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PUBLIC ON) 85 else () 86 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PUBLIC OFF) 87 endif () 88 89 if (ENABLE_SUBTLE_CRYPTO AND NOT(GNUTLS_FOUND)) 90 message(FATAL_ERROR "Subtle crypto support needs GnuTLS 3.0.0") 91 endif () 92 93 if (GEOCLUE2_FOUND OR GEOCLUE_FOUND) 94 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) 95 else () 96 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC OFF) 97 endif () 76 WEBKIT_OPTION_DEPEND(USE_GSTREAMER_MPEGTS ENABLE_VIDEO) 98 77 99 78 # FIXME: There is no reason these should be different. … … 101 80 if (DEVELOPER_MODE) 102 81 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC ON) 103 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS P UBLICON)82 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE ON) 104 83 else () 105 84 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC OFF) 106 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS P UBLICOFF)85 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE OFF) 107 86 set(WebKit2_VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/gtksymbols.filter") 108 87 endif () … … 145 124 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CREDENTIAL_STORAGE PUBLIC ON) 146 125 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) 126 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) 147 127 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ICONDATABASE PUBLIC ON) 148 128 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT PUBLIC ON) … … 192 172 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SECCOMP_FILTERS PRIVATE OFF) 193 173 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SMOOTH_SCROLLING PRIVATE ON) 174 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PRIVATE OFF) 194 175 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT PRIVATE ON) 195 176 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USERSELECT_ALL PRIVATE ON) … … 208 189 WEBKIT_OPTION_END() 209 190 210 if (ENABLE_PLUGIN_PROCESS_GTK2)211 find_package(GTK2 2.24.10 REQUIRED)212 find_package(GDK2 2.24.10 REQUIRED)213 endif ()214 215 SET_AND_EXPOSE_TO_BUILD(WTF_USE_LIBNOTIFY ${LIBNOTIFY_FOUND})216 191 SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_X11 ${ENABLE_X11_TARGET}) 217 192 SET_AND_EXPOSE_TO_BUILD(MOZ_X11 ${ENABLE_X11_TARGET}) … … 247 222 add_definitions(-DWEBKITGTK_API_VERSION_STRING="${WEBKITGTK_API_VERSION}") 248 223 249 if (ENABLE_X11_TARGET)250 find_package(X11 REQUIRED)251 endif ()252 253 224 if (ENABLE_WAYLAND_TARGET) 254 find_package(Wayland REQUIRED) 225 set(GTK3_REQUIRED_VERSION 3.12.0) 226 else () 227 set(GTK3_REQUIRED_VERSION 3.6.0) 228 endif () 229 230 find_package(GTK3 ${GTK3_REQUIRED_VERSION} REQUIRED) 231 find_package(GDK3 ${GTK3_REQUIRED_VERSION} REQUIRED) 232 find_package(GTKUnixPrint) 233 234 set(GTK_LIBRARIES ${GTK3_LIBRARIES}) 235 set(GTK_INCLUDE_DIRS ${GTK3_INCLUDE_DIRS}) 236 set(GDK_LIBRARIES ${GDK3_LIBRARIES}) 237 set(GDK_INCLUDE_DIRS ${GDK3_INCLUDE_DIRS}) 238 239 SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND}) 240 SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_GESTURES ${GTK_SUPPORTS_GESTURES}) 241 242 set(glib_components gio gobject gthread gmodule) 243 if (ENABLE_GAMEPAD_DEPRECATED OR ENABLE_GEOLOCATION) 244 list(APPEND glib_components gio-unix) 245 endif () 246 find_package(GLIB 2.33.2 REQUIRED COMPONENTS ${glib_components}) 247 248 if (ENABLE_CREDENTIAL_STORAGE) 249 find_package(Libsecret) 250 if (NOT LIBSECRET_FOUND) 251 message(FATAL_ERROR "libsecretr is needed for ENABLE_CREDENTIAL_STORAGE") 252 endif () 253 endif () 254 255 if (ENABLE_FTL_JIT) 256 find_package(LLVM) 257 if (NOT LLVM_FOUND) 258 message(FATAL_ERROR "LLVM is needed for ENABLE_FTL_JIT") 259 endif () 260 SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) 261 endif () 262 263 if (ENABLE_GAMEPAD_DEPRECATED) 264 find_package(GUdev) 265 if (NOT GUDEV_FOUND) 266 message(FATAL_ERROR "GUdev is needed for ENABLE_GAMEPAD_DEPRECATED") 267 endif () 268 endif () 269 270 if (ENABLE_GEOLOCATION) 271 find_package(GeoClue2 2.1.5) 272 if (GEOCLUE2_FOUND) 273 SET_AND_EXPOSE_TO_BUILD(WTF_USE_GEOCLUE2 ${GEOCLUE2_FOUND}) 274 else () 275 find_package(GeoClue) 276 if (NOT GEOCLUE_FOUND) 277 message(FATAL_ERROR "Geoclue is needed for ENABLE_GEOLOCATION.") 278 endif () 279 endif () 280 endif () 281 282 if (ENABLE_INTROSPECTION) 283 find_package(GObjectIntrospection) 284 if (NOT INTROSPECTION_FOUND) 285 message(FATAL_ERROR "GObjectIntrospection is needed for ENABLE_INTROSPECTION.") 286 endif () 287 endif () 288 289 if (ENABLE_MEDIA_STREAM) 290 find_package(OpenWebRTC) 291 if (NOT OPENWEBRTC_FOUND) 292 message(FATAL_ERROR "OpenWebRTC is needed for ENABLE_MEDIA_STREAM.") 293 endif () 294 SET_AND_EXPOSE_TO_BUILD(WTF_USE_OPENWEBRTC TRUE) 255 295 endif () 256 296 … … 292 332 endif () 293 333 334 if (ENABLE_PLUGIN_PROCESS_GTK2) 335 find_package(GTK2 2.24.10 REQUIRED) 336 find_package(GDK2 2.24.10 REQUIRED) 337 endif () 338 339 if (ENABLE_SPELLCHECK) 340 find_package(Enchant) 341 if (NOT PC_ENCHANT_FOUND) 342 message(FATAL_ERROR "Enchant is needed for ENABLE_SPELLCHECK") 343 endif () 344 endif () 345 346 if (ENABLE_SUBTLE_CRYPTO) 347 find_package(GnuTLS 3.0.0) 348 if (NOT GNUTLS_FOUND) 349 message(FATAL_ERROR "GnuTLS is needed for ENABLE_SUBTLE_CRYPTO") 350 endif () 351 endif () 352 294 353 if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO) 295 354 set(GSTREAMER_COMPONENTS app pbutils) … … 306 365 find_package(GStreamer 1.0.3 REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) 307 366 308 if (PC_GSTREAMER_MPEGTS_FOUND) 367 if (USE_GSTREAMER_MPEGTS) 368 if (NOT PC_GSTREAMER_MPEGTS_FOUND) 369 message(FATAL_ERROR "GStreamer MPEG-TS is needed for USE_GSTREAMER_MPEGTS.") 370 endif () 309 371 SET_AND_EXPOSE_TO_BUILD(WTF_USE_GSTREAMER_MPEGTS TRUE) 310 372 endif () … … 318 380 endif () 319 381 382 if (ENABLE_X11_TARGET) 383 find_package(X11 REQUIRED) 384 endif () 385 320 386 if (ENABLE_WAYLAND_TARGET) 321 set(GTK3_REQUIRED_VERSION 3.12.0) 322 else () 323 set(GTK3_REQUIRED_VERSION 3.6.0) 324 endif () 325 326 find_package(GTK3 ${GTK3_REQUIRED_VERSION} REQUIRED) 327 find_package(GDK3 ${GTK3_REQUIRED_VERSION} REQUIRED) 328 set(GTK_LIBRARIES ${GTK3_LIBRARIES}) 329 set(GTK_INCLUDE_DIRS ${GTK3_INCLUDE_DIRS}) 330 set(GDK_LIBRARIES ${GDK3_LIBRARIES}) 331 set(GDK_INCLUDE_DIRS ${GDK3_INCLUDE_DIRS}) 332 333 set(glib_components gio gobject gthread gmodule) 334 if (ENABLE_GAMEPAD_DEPRECATED OR ENABLE_GEOLOCATION) 335 list(APPEND glib_components gio-unix) 336 endif () 337 find_package(GLIB 2.33.2 REQUIRED COMPONENTS ${glib_components}) 338 339 if (ENABLE_GEOLOCATION) 340 SET_AND_EXPOSE_TO_BUILD(WTF_USE_GEOCLUE2 ${GEOCLUE2_FOUND}) 341 endif () 342 343 if (ENABLE_MEDIA_STREAM) 344 find_package(OpenWebRTC) 345 SET_AND_EXPOSE_TO_BUILD(WTF_USE_OPENWEBRTC ${OPENWEBRTC_FOUND}) 346 endif () 347 348 find_package(GTKUnixPrint) 349 SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND}) 350 351 if (ENABLE_CREDENTIAL_STORAGE) 352 find_package(Libsecret REQUIRED) 353 endif () 354 355 SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_GESTURES ${GTK_SUPPORTS_GESTURES}) 356 357 if (ENABLE_SPELLCHECK) 358 find_package(Enchant REQUIRED) 359 endif () 360 361 if (ENABLE_GAMEPAD_DEPRECATED) 362 find_package(GUdev) 363 endif () 364 365 if (ENABLE_FTL_JIT) 366 find_package(LLVM REQUIRED) 367 SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) 387 find_package(Wayland REQUIRED) 388 endif () 389 390 if (USE_LIBNOTIFY) 391 find_package(LibNotify) 392 if (NOT LIBNOTIFY_FOUND) 393 message(FATAL_ERROR "libnotify is needed for USE_LIBNOTIFY.") 394 endif () 395 SET_AND_EXPOSE_TO_BUILD(WTF_USE_LIBNOTIFY TRUE) 368 396 endif () 369 397
Note: See TracChangeset
for help on using the changeset viewer.