| include(GNUInstallDirs) |
| |
| set(PROJECT_VERSION_MAJOR 0) |
| set(PROJECT_VERSION_MINOR 0) |
| set(PROJECT_VERSION_MICRO 1) |
| set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_MICRO}) |
| |
| find_package(Cairo 1.10.2 REQUIRED) |
| #find_package(Fontconfig 2.8.0 REQUIRED) |
| find_package(Freetype2 2.4.2 REQUIRED) |
| find_package(HarfBuzz 0.9.2 REQUIRED) |
| find_package(ICU REQUIRED) |
| find_package(JPEG REQUIRED) |
| find_package(LibXml2 2.8.0 REQUIRED) |
| #find_package(LibXslt 1.1.7 REQUIRED) |
| find_package(PNG REQUIRED) |
| find_package(Sqlite REQUIRED) |
| find_package(Threads REQUIRED) |
| find_package(ZLIB REQUIRED) |
| |
| WEBKIT_OPTION_BEGIN() |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_OVERFLOW_SCROLLING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ATTACHMENT_ELEMENT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASYNC_SCROLLING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_AVF_CAPTIONS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CACHE_PARTITIONING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CANVAS_PATH PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CANVAS_PROXY PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CHANNEL_MESSAGING PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTENT_FILTERING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSP_NEXT PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_BOX_DECORATION_BREAK PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_COMPOSITING PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_DEVICE_ADAPTATION PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_GRID_LAYOUT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_ORIENTATION PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_RESOLUTION PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SCROLL_SNAP PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SHAPES PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_TEXT PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CURSOR_VISIBILITY PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DASHBOARD_SUPPORT PRIVATE ON) |
| #WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATA_TRANSFER_ITEMS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DETAILS_ELEMENT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOM4_EVENTS_CONSTRUCTOR PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA_V2 PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS_LEVEL_2 PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FONT_LOAD_EVENTS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD_DEPRECATED PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ICONDATABASE PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_CONTROLS PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SMOOTH_SCROLLING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDIE_UI PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR_POPOVER PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIMELOCAL PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_CSS_VENDOR_PREFIXES PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_NOTIFICATIONS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_VENDOR_PREFIXES PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LETTERPRESS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH PRIVATE OFF) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MAC_LONG_PRESS PRIVATE OFF) # Fuchsia |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MATHML PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PRIVATE ON) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PRIVATE ON) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STATISTICS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_METER_ELEMENT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NAVIGATOR_CONTENT_UTILS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NAVIGATOR_HWCONCURRENCY PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOSNIFF PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PDFKIT_PLUGIN PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PROXIMITY_EVENTS PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PUBLIC_SUFFIX_LIST PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_QUOTA PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REMOTE_INSPECTOR PRIVATE OFF) #fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOLUTION_MEDIA_QUERY PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RUBBER_BANDING PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SVG_FONTS PRIVATE ON) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TELEPHONE_NUMBER_DETECTION PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEXT_AUTOSIZING PRIVATE OFF) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_ICON_LOADING PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USERSELECT_ALL PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USER_MESSAGE_HANDLERS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO PUBLIC ON) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK PRIVATE ON) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATACUE_VALUE PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIEW_MODE_CSS_MEDIA PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL PRIVATE OFF) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO PRIVATE ON) # Fuchsia |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_REPLAY PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_SOCKETS PRIVATE ON) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBVTT_REGIONS PRIVATE ON) |
| #WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XSLT PRIVATE ON) |
| |
| # FIXME: These are turned off temporarily to get CMake working easier. |
| # https://bugs.webkit.org/show_bug.cgi?id=135856 |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PRIVATE OFF) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION PRIVATE OFF) |
| #WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_IOS_AIRPLAY PRIVATE OFF) |
| |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATABASE_PROCESS PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PRIVATE ON) |
| |
| WEBKIT_OPTION_DEFINE(ENABLE_STATIC_JSC "Whether to build JavaScriptCore as a static library." PUBLIC OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SAMPLING_PROFILER PUBLIC OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC PRIVATE ON) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XSLT PRIVATE OFF) |
| WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PUBLIC ON) |
| WEBKIT_OPTION_END() |
| |
| set(ALL_EVENT_LOOP_TYPES |
| GLib |
| Generic |
| ) |
| |
| set(DEFAULT_EVENT_LOOP_TYPE "Generic") |
| |
| set(EVENT_LOOP_TYPE ${DEFAULT_EVENT_LOOP_TYPE} CACHE STRING "Implementation of event loop to be used in JavaScriptCore (one of ${ALL_EVENT_LOOP_TYPES})") |
| |
| set(ENABLE_WEBKIT ON) |
| set(ENABLE_VIDEO ON) |
| set(ENABLE_VIDEO_TRACK ON) |
| set(ENABLE_MEDIA_CONTROLS_SCRIPT ON) |
| set(ENABLE_WEBKIT2 OFF) |
| set(ENABLE_API_TESTS OFF) |
| set(ENABLE_SAMPLING_PROFILER OFF) |
| |
| set(USE_CURL 1) |
| set(USE_SYSTEM_MALLOC 1) |
| add_definitions(-DUSE_CAIRO=1 -DUSE_CURL=1 -DUSE_HARFBUZZ=1 -DUSE_SYSTEM_MALLOC=1 -DHAVE_ACCESSIBILITY=1 -Wno-expansion-to-defined) |
| |
| if (WTF_CPU_X86 OR WTF_CPU_X86_64) |
| SET_AND_EXPOSE_TO_BUILD(USE_UDIS86 1) |
| endif () |
| |
| set(JavaScriptCore_OUTPUT_NAME JavaScriptCore) |
| |
| if (ENABLE_STATIC_JSC) |
| set(WTF_LIBRARY_TYPE STATIC) |
| set(JavaScriptCore_LIBRARY_TYPE STATIC) |
| endif () |
| |
| string(TOLOWER ${EVENT_LOOP_TYPE} LOWERCASE_EVENT_LOOP_TYPE) |
| if (LOWERCASE_EVENT_LOOP_TYPE STREQUAL "glib") |
| find_package(GLIB 2.36 REQUIRED COMPONENTS gio gobject) |
| SET_AND_EXPOSE_TO_BUILD(USE_GLIB 1) |
| SET_AND_EXPOSE_TO_BUILD(USE_GLIB_EVENT_LOOP 1) |
| SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0) |
| else () |
| SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 1) |
| SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0) |
| endif () |
| |
| # From OptionsGTK.cmake |
| if (CMAKE_MAJOR_VERSION LESS 3) |
| # Before CMake 3 it was necessary to use a build script instead of using cmake --build directly |
| # to preserve colors and pretty-printing. |
| |
| build_command(COMMAND_LINE_TO_BUILD) |
| # build_command unconditionally adds -i (ignore errors) for make, and there's |
| # no reasonable way to turn that off, so we just replace it with -k, which has |
| # the same effect, except that the return code will indicate that an error occurred. |
| # See: http://www.cmake.org/cmake/help/v3.0/command/build_command.html |
| string(REPLACE " -i" " -k" COMMAND_LINE_TO_BUILD ${COMMAND_LINE_TO_BUILD}) |
| file(WRITE |
| ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/build.sh |
| "#!/bin/sh\n" |
| "${COMMAND_LINE_TO_BUILD} $@" |
| ) |
| file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/build.sh |
| DESTINATION ${CMAKE_BINARY_DIR} |
| FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE |
| ) |
| endif () |