Changeset 113570 in webkit


Ignore:
Timestamp:
Apr 9, 2012 3:45:15 AM (12 years ago)
Author:
Patrick Gansterer
Message:

[CMake] Share build system options across ports
https://bugs.webkit.org/show_bug.cgi?id=72815

Reviewed by Daniel Bates.

Don't define the generic features for every port again.
Add a few macros for reusing the central defined options.

  • CMakeLists.txt:
  • Source/cmake/OptionsBlackBerry.cmake:
  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsWinCE.cmake:
  • Source/cmake/WebKitFeatures.cmake:
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/CMakeLists.txt

    r111504 r113570  
    165165ENDIF ()
    166166
    167 # -----------------------------------------------------------------------------
    168 # Prints a summary of all enabled/disabled features
    169 # -----------------------------------------------------------------------------
    170 WEBKIT_PRINT_FEATURES()
  • trunk/ChangeLog

    r113547 r113570  
     12012-04-09  Patrick Gansterer  <paroga@webkit.org>
     2
     3        [CMake] Share build system options across ports
     4        https://bugs.webkit.org/show_bug.cgi?id=72815
     5
     6        Reviewed by Daniel Bates.
     7
     8        Don't define the generic features for every port again.
     9        Add a few macros for reusing the central defined options.
     10
     11        * CMakeLists.txt:
     12        * Source/cmake/OptionsBlackBerry.cmake:
     13        * Source/cmake/OptionsEfl.cmake:
     14        * Source/cmake/OptionsWinCE.cmake:
     15        * Source/cmake/WebKitFeatures.cmake:
     16
    1172012-04-07  Rob Buis  <rbuis@rim.com>
    218
  • trunk/Source/WTF/wtf/CMakeLists.txt

    r111799 r113570  
    194194)
    195195
    196 IF (ENABLE_FAST_MALLOC)
     196IF (USE_SYSTEM_MALLOC)
     197    ADD_DEFINITIONS(-DUSE_SYSTEM_MALLOC=1)
     198ELSE ()
    197199    LIST(APPEND WTF_SOURCES
    198200        TCSystemAlloc.cpp
    199201    )
    200 ELSE ()
    201     ADD_DEFINITIONS(-DUSE_SYSTEM_MALLOC=1)
    202202ENDIF()
    203203
  • trunk/Source/cmake/OptionsBlackBerry.cmake

    r113547 r113570  
    125125SET(WebKit_DRT_LIBRARY_NAME webkit_DRT)
    126126
     127WEBKIT_OPTION_BEGIN()
     128
     129WEBKIT_OPTION_DEFINE(ENABLE_EVENT_MODE_METATAGS "Enable meta-tag touch and mouse events" ON)
     130WEBKIT_OPTION_DEFINE(ENABLE_VIEWPORT_REFLOW "Enable viewport reflow" ON)
     131
     132WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ANIMATION_API ON)
     133WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASSEMBLER_WX_EXCLUSIVE ON)
     134WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON)
     135WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON)
     136WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION ON)
     137WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE ON)
     138WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILE_SYSTEM ON)
     139WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
     140WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION ON)
     141WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING ON)
     142WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
     143WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_NOTIFICATIONS ON)
     144WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS ON)
     145WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ORIENTATION_EVENTS ON)
     146WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)
     147WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REPAINT_THROTTLING ON)
     148WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON)
     149WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
     150WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON)
     151WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON)
     152WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON)
     153WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON)
     154WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
     155
    127156IF (TARGETING_PLAYBOOK)
    128     WEBKIT_FEATURE(ENABLE_3D_RENDERING "Enable 3D Rendering" DEFAULT ON)
    129     WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT ON)
     157    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON)
     158    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON)
    130159ELSE ()
    131     WEBKIT_FEATURE(ENABLE_3D_RENDERING "Enable 3D Rendering" DEFAULT OFF)
    132     WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT OFF)
    133 ENDIF ()
    134 
    135 WEBKIT_FEATURE(ENABLE_ASSEMBLER_WX_EXCLUSIVE "Assembler WX Exclusive" DEFAULT ON)
    136 WEBKIT_FEATURE(ENABLE_BATTERY_STATUS "Enable battery status api" DEFAULT ON)
    137 WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT ON)
    138 WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON)
    139 WEBKIT_FEATURE(ENABLE_DATABASE "Enable database" DEFAULT ON)
    140 WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT ON)
    141 WEBKIT_FEATURE(ENABLE_DETAILS "Enable details element" DEFAULT ON)
    142 WEBKIT_FEATURE(ENABLE_DEVICE_ORIENTATION "Enable Device Orientation" DEFAULT ON)
    143 WEBKIT_FEATURE(ENABLE_DOM_STORAGE "Enable DOM storage" DEFAULT ON)
    144 WEBKIT_FEATURE(ENABLE_DRAG_SUPPORT "Enable Drag Support" DEFAULT OFF)
    145 WEBKIT_FEATURE(ENABLE_EVENTSOURCE "Enable event source" DEFAULT ON)
    146 WEBKIT_FEATURE(ENABLE_EVENT_MODE_METATAGS "Enable meta-tag touch and mouse events" DEFAULT ON)
    147 WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
    148 WEBKIT_FEATURE(ENABLE_FILE_SYSTEM "Enable file system" DEFAULT ON)
    149 WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON)
    150 WEBKIT_FEATURE(ENABLE_FIXED_REPORTED_SIZE "Fixed Reported Size" DEFAULT ON)
    151 WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory browsing" DEFAULT ON)
    152 WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT ON)
    153 WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT OFF)
    154 WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
    155 WEBKIT_FEATURE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING "Enable image decoder down sampling" DEFAULT ON)
    156 WEBKIT_FEATURE(ENABLE_INDEXED_DATABASE "Enable IndexDB" DEFAULT OFF)
    157 WEBKIT_FEATURE(ENABLE_INPUT_TYPE_COLOR "Enable Color Input" DEFAULT ON)
    158 WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
    159 WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)
    160 WEBKIT_FEATURE(ENABLE_LEGACY_NOTIFICATIONS "Enable legacy notifications" DEFAULT ON)
    161 WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT ON)
    162 WEBKIT_FEATURE(ENABLE_METER_TAG "Enable Meter Tag" DEFAULT ON)
    163 WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT ON)
    164 WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT ON)
    165 WEBKIT_FEATURE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" DEFAULT ON)
    166 WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT ON)
    167 WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT ON)
    168 WEBKIT_FEATURE(ENABLE_REPAINT_THROTTLING "Enable repaint throttling" DEFAULT ON)
    169 WEBKIT_FEATURE(ENABLE_RUBY "Enable Ruby" DEFAULT ON)
    170 WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON)
    171 WEBKIT_FEATURE(ENABLE_SHADOW_DOM "Enable Shadow DOM" DEFAULT OFF)
    172 WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
    173 WEBKIT_FEATURE(ENABLE_SVG_ANIMATION "Enable SVG animation" DEFAULT ON)
    174 WEBKIT_FEATURE(ENABLE_SVG_AS_IMAGE "Enable SVG as image" DEFAULT ON)
    175 WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON)
    176 WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT ON)
    177 WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON)
    178 WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable touch events " DEFAULT ON)
    179 WEBKIT_FEATURE(ENABLE_VIBRATION "Enable vibration support" DEFAULT ON)
    180 WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT ON)
    181 WEBKIT_FEATURE(ENABLE_VIEWPORT_REFLOW "Enable viewport reflow" DEFAULT ON)
    182 WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT ON)
    183 WEBKIT_FEATURE(ENABLE_WEB_TIMING "Enable web timing" DEFAULT ON)
    184 WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON)
    185 WEBKIT_FEATURE(ENABLE_XHTMLMP "Enable XHTMLMP" DEFAULT OFF)
    186 WEBKIT_FEATURE(ENABLE_XPATH "Enable XPath" DEFAULT ON)
    187 WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON)
    188 WEBKIT_FEATURE(ENABLE_CSS3_FLEXBOX "Enable CSS3 Flexbox" DEFAULT ON)
    189 WEBKIT_FEATURE(ENABLE_PLUGIN_PROXY_FOR_VIDEO "Plugin Proxy for Video" DEFAULT OFF)
    190 WEBKIT_FEATURE(ENABLE_ANIMATION_API "Enable animation API" DEFAULT ON)
    191 
    192 IF (ENABLE_DRT)
    193     WEBKIT_FEATURE(ENABLE_DRT "Enable DRT" DEFAULT ON)
    194 ELSE ()
    195     WEBKIT_FEATURE(ENABLE_DRT "Enable DRT" DEFAULT OFF)
     160    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING OFF)
     161    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL OFF)
    196162ENDIF ()
    197163
    198164IF (CMAKE_SYSTEM_PROCESSOR MATCHES x86)
    199     WEBKIT_FEATURE(ENABLE_JIT "Enable JIT" DEFAULT OFF)
    200     WEBKIT_FEATURE(ENABLE_SKIA_GPU_CANVAS "Enable GPU-backed Skia canvases" DEFAULT OFF)
     165    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT OFF)
    201166ELSE ()
    202     WEBKIT_FEATURE(ENABLE_JIT "Enable JIT" DEFAULT ON)
    203     WEBKIT_FEATURE(ENABLE_SKIA_GPU_CANVAS "Enable GPU-backed Skia canvases" DEFAULT ON)
     167    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT ON)
    204168ENDIF ()
     169
     170WEBKIT_OPTION_END()
    205171
    206172# Some of our files, such as platform/graphics/chromium/ComplexTextControllerLinux.cpp, require a
  • trunk/Source/cmake/OptionsEfl.cmake

    r113137 r113570  
    6565SET(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter")
    6666
    67 WEBKIT_FEATURE(ENABLE_BATTERY_STATUS "Enable battery status api" DEFAULT ON)
    68 WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT OFF)
    69 WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON)
    70 WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT OFF)
    71 WEBKIT_FEATURE(ENABLE_DATA_TRANSFER_ITEMS "Enable data transfer items" DEFAULT OFF)
    72 WEBKIT_FEATURE(ENABLE_DETAILS "Enable HTML5 Details and Summary elements" DEFAULT ON)
    73 WEBKIT_FEATURE(ENABLE_DEVICE_ORIENTATION "Enable device orientation" DEFAULT OFF)
    74 WEBKIT_FEATURE(ENABLE_FAST_MALLOC "Enable TCmalloc instead of system's allocator" DEFAULT ON)
    75 WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
    76 WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON)
    77 WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT ON)
    78 WEBKIT_FEATURE(ENABLE_FULLSCREEN_API "Enable Fullscreen API support" DEFAULT OFF)
    79 WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF)
    80 WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
    81 WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
    82 WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)
    83 WEBKIT_FEATURE(ENABLE_JIT "Enable JIT code" DEFAULT ON)
    84 WEBKIT_FEATURE(ENABLE_LEGACY_NOTIFICATIONS "Enable legacy notifications" DEFAULT OFF)
    85 WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT ON)
    86 WEBKIT_FEATURE(ENABLE_METER_TAG "Enable Meter tag" DEFAULT ON)
    87 WEBKIT_FEATURE(ENABLE_MICRODATA "Enable HTML5 microdata support" DEFAULT OFF)
    88 WEBKIT_FEATURE(ENABLE_MUTATION_OBSERVERS "Enable HTML5 mutation observers support" DEFAULT ON)
    89 WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT OFF)
    90 WEBKIT_FEATURE(ENABLE_NETWORK_INFO "Enable Network Information API" DEFAULT ON)
    91 WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT OFF)
    92 WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF)
    93 WEBKIT_FEATURE(ENABLE_PAGE_VISIBILITY_API "Enable Page Visibility API" DEFAULT ON)
    94 WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT ON)
    95 WEBKIT_FEATURE(ENABLE_REQUEST_ANIMATION_FRAME "Enable requestAnimationFrame API" DEFAULT ON)
    96 WEBKIT_FEATURE(ENABLE_SHADOW_DOM "Enable Shadow DOM" DEFAULT OFF)
    97 WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON)
    98 WEBKIT_FEATURE(ENABLE_SQL_DATABASE "Enable SQL database" DEFAULT ON)
    99 WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
    100 WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON)
    101 WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable Touch Events" DEFAULT OFF)
    102 WEBKIT_FEATURE(ENABLE_TOUCH_ICON_LOADING "Enable Touch Icon Loading" DEFAULT OFF)
    103 WEBKIT_FEATURE(ENABLE_VIBRATION "Enable vibration" DEFAULT ON)
    104 WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT ON)
    105 WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT ON)
    106 WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT OFF)
    107 WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON)
    108 WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON)
     67WEBKIT_OPTION_BEGIN()
     68WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON)
     69WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON)
     70WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
     71WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON)
     72WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API OFF)
     73WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON)
     74WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)
     75WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON)
     76WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
     77WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON)
     78WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON)
     79WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
     80WEBKIT_OPTION_END()
    10981
    11082OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON)
  • trunk/Source/cmake/OptionsWinCE.cmake

    r110595 r113570  
    66ADD_DEFINITIONS(-DJS_NO_EXPORT)
    77ADD_DEFINITIONS(-DHAVE_ACCESSIBILITY=0)
    8 ADD_DEFINITIONS(-DUSE_SYSTEM_MALLOC=1)
    98ADD_DEFINITIONS(-DJSCCOLLECTOR_VIRTUALMEM_RESERVATION=0x200000)
    109
     
    2019ADD_SUBDIRECTORY(${3RDPARTY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/3rdparty")
    2120
    22 WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT OFF)
    23 WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT OFF)
    24 WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT OFF)
    25 WEBKIT_FEATURE(ENABLE_DATA_TRANSFER_ITEMS "Enable data transfer items" DEFAULT OFF)
    26 WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
    27 WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT OFF)
    28 WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT OFF)
    29 WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF)
    30 WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT OFF)
    31 WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT OFF)
    32 WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT OFF)
    33 WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT OFF)
    34 WEBKIT_FEATURE(ENABLE_JIT "Enable JIT code" DEFAULT OFF)
    35 WEBKIT_FEATURE(ENABLE_LEGACY_NOTIFICATIONS "Enable legacy notifications" DEFAULT OFF)
    36 WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT OFF)
    37 WEBKIT_FEATURE(ENABLE_MICRODATA "Enable HTML5 microdata support" DEFAULT OFF)
    38 WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT OFF)
    39 WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT OFF)
    40 WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF)
    41 WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT OFF)
    42 WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT OFF)
    43 WEBKIT_FEATURE(ENABLE_SHADOW_DOM "Enable Shadow DOM" DEFAULT OFF)
    44 WEBKIT_FEATURE(ENABLE_SQL_DATABASE "Enable SQL database" DEFAULT OFF)
    45 WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
    46 WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON)
    47 WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable Touch Events" DEFAULT OFF)
    48 WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT OFF)
    49 WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT OFF)
    50 WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT OFF)
    51 WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT OFF)
     21WEBKIT_OPTION_BEGIN()
     22WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR OFF)
     23WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INSPECTOR OFF)
     24WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC ON)
     25WEBKIT_OPTION_END()
  • trunk/Source/cmake/WebKitFeatures.cmake

    r101685 r113570  
    1 SET(DEFAULT 0)
    2 SET(DEPENDS 1)
    3 SET(ALWAYS 2)
     1SET(_WEBKIT_AVAILABLE_OPTIONS "")
    42
    5 SET(WEBKIT_FEATURES "")
     3MACRO (WEBKIT_OPTION_DEFINE _name _description _initialvalue)
     4    SET(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_initialvalue})
     5    SET(_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name} ${_description})
     6    LIST(APPEND _WEBKIT_AVAILABLE_OPTIONS ${_name})
     7ENDMACRO ()
     8
     9MACRO (WEBKIT_OPTION_DEFAULT_PORT_VALUE _name _value)
     10    SET(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_value})
     11ENDMACRO ()
     12
     13MACRO (WEBKIT_OPTION_BEGIN)
     14    WEBKIT_OPTION_DEFINE(ENABLE_3D_RENDERING "Toggle 3D rendering support" OFF)
     15    WEBKIT_OPTION_DEFINE(ENABLE_ACCELERATED_2D_CANVAS "Toggle accelerated 2D canvas support" OFF)
     16    WEBKIT_OPTION_DEFINE(ENABLE_ANIMATION_API "Toggle animation API support" OFF)
     17    WEBKIT_OPTION_DEFINE(ENABLE_ASSEMBLER_WX_EXCLUSIVE "Toggel Assembler WX Exclusive support" OFF)
     18    WEBKIT_OPTION_DEFINE(ENABLE_BATTERY_STATUS "Toggle battery status API support" OFF)
     19    WEBKIT_OPTION_DEFINE(ENABLE_BLOB "Toggle Blob support" OFF)
     20    WEBKIT_OPTION_DEFINE(ENABLE_CHANNEL_MESSAGING "Toggle MessageChannel and MessagePort support" ON)
     21    WEBKIT_OPTION_DEFINE(ENABLE_CSS_FILTERS "Toggle CSS Filters support" OFF)
     22    WEBKIT_OPTION_DEFINE(ENABLE_CSS_GRID_LAYOUT "Toggle CSS Grid Layout support" OFF)
     23    WEBKIT_OPTION_DEFINE(ENABLE_CSS_SHADERS "Toggle CSS Shaders (within CSS Filters) support" OFF)
     24    WEBKIT_OPTION_DEFINE(ENABLE_DATALIST "Toggle HTML5 datalist support" OFF)
     25    WEBKIT_OPTION_DEFINE(ENABLE_DATA_TRANSFER_ITEMS "Toggle HTML5 data transfer items support" OFF)
     26    WEBKIT_OPTION_DEFINE(ENABLE_DETAILS "Toggle HTML5 details support" ON)
     27    WEBKIT_OPTION_DEFINE(ENABLE_DEVICE_ORIENTATION "Toggle DeviceOrientation support" OFF)
     28    WEBKIT_OPTION_DEFINE(ENABLE_DIRECTORY_UPLOAD "Toogle Directory upload support" OFF)
     29    WEBKIT_OPTION_DEFINE(ENABLE_DOWNLOAD_ATTRIBUTE "Toggle download attribute support" OFF)
     30    WEBKIT_OPTION_DEFINE(ENABLE_DRAG_SUPPORT "Toggle Drag Support" DEFAULT OFF)
     31    WEBKIT_OPTION_DEFINE(ENABLE_FAST_MOBILE_SCROLLING "Toogle Fast Mobile Scrolling support" OFF)
     32    WEBKIT_OPTION_DEFINE(ENABLE_FILE_SYSTEM "Toggle FileSystem support" OFF)
     33    WEBKIT_OPTION_DEFINE(ENABLE_FILTERS "Toggle SVG Filters support" OFF)
     34    WEBKIT_OPTION_DEFINE(ENABLE_FTPDIR "Toggle FTP directory support" ON)
     35    WEBKIT_OPTION_DEFINE(ENABLE_FULLSCREEN_API "Toggle Fullscreen API support" OFF)
     36    WEBKIT_OPTION_DEFINE(ENABLE_GAMEPAD "Toggle Gamepad support" OFF)
     37    WEBKIT_OPTION_DEFINE(ENABLE_GEOLOCATION "Toggle Geolocation support" OFF)
     38    WEBKIT_OPTION_DEFINE(ENABLE_GLIB_SUPPORT "Toggle Glib support" OFF)
     39    WEBKIT_OPTION_DEFINE(ENABLE_HIGH_DPI_CANVAS "Toggle high-DPI canvas backing store support" OFF)
     40    WEBKIT_OPTION_DEFINE(ENABLE_ICONDATABASE "Toggle Icon database support" ON)
     41    WEBKIT_OPTION_DEFINE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING "Toggle image decoder down sampling support" OFF)
     42    WEBKIT_OPTION_DEFINE(ENABLE_INDEXED_DATABASE "Toggle Indexed Database API support" OFF)
     43    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_COLOR "Toggle Color Input support" OFF)
     44    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_SPEECH "Toggle Speech Input API support" OFF)
     45    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATE "Toggle date type <input> support" OFF)
     46    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME "Toggle datetime type <input> support" OFF)
     47    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIMELOCAL "Toggle datetime-local type <input> support" OFF)
     48    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_MONTH "Toggle month type <input> support" OFF)
     49    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_TIME "Toggle time type <input> support" OFF)
     50    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_WEEK "Toggle week type <input> support" OFF)
     51    WEBKIT_OPTION_DEFINE(ENABLE_INSPECTOR "Toggle Web Inspector support" ON)
     52    WEBKIT_OPTION_DEFINE(ENABLE_JAVASCRIPT_DEBUGGER "Toggle JavaScript Debugger/Profiler support" ON)
     53    WEBKIT_OPTION_DEFINE(ENABLE_JIT "Enable JustInTime javascript support" ON)
     54    WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_NOTIFICATIONS "Toggle Legacy Desktop Notifications Support" OFF)
     55    WEBKIT_OPTION_DEFINE(ENABLE_LINK_PREFETCH "Toggle pre fetching support" OFF)
     56    WEBKIT_OPTION_DEFINE(ENABLE_MATHML "Toggle MathML support" ON)
     57    WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_SOURCE "Toggle Media Source support" OFF)
     58    WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_STATISTICS "Toggle Media Statistics support" OFF)
     59    WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_STREAM "Toggle Media Stream API support" OFF)
     60    WEBKIT_OPTION_DEFINE(ENABLE_METER_TAG "Toggle Meter Tag support" ON)
     61    WEBKIT_OPTION_DEFINE(ENABLE_MHTML "Toggle MHTML support" OFF)
     62    WEBKIT_OPTION_DEFINE(ENABLE_MICRODATA "Toggle Microdata support" OFF)
     63    WEBKIT_OPTION_DEFINE(ENABLE_MUTATION_OBSERVERS "Toggle DOM mutation observer support" ON)
     64    WEBKIT_OPTION_DEFINE(ENABLE_NETSCAPE_PLUGIN_API "Toggle Netscape Plugin support" ON)
     65    WEBKIT_OPTION_DEFINE(ENABLE_NETWORK_INFO "Toggle Network Information API support" OFF)
     66    WEBKIT_OPTION_DEFINE(ENABLE_NOTIFICATIONS "Toggle Desktop Notifications Support" OFF)
     67    WEBKIT_OPTION_DEFINE(ENABLE_ORIENTATION_EVENTS "Toggle Orientation Events support" OFF)
     68    WEBKIT_OPTION_DEFINE(ENABLE_PAGE_VISIBILITY_API "Toggle Page Visibility API support" OFF)
     69    WEBKIT_OPTION_DEFINE(ENABLE_PROGRESS_TAG "Toggle Progress Tag support" ON)
     70    WEBKIT_OPTION_DEFINE(ENABLE_PLUGIN_PROXY_FOR_VIDEO "Toggle Plugin Proxy for Video support" OFF)
     71    WEBKIT_OPTION_DEFINE(ENABLE_QUOTA "Toggle Quota support" OFF)
     72    WEBKIT_OPTION_DEFINE(ENABLE_REGISTER_PROTOCOL_HANDLER "Toggle Register Protocol Handler support" OFF)
     73    WEBKIT_OPTION_DEFINE(ENABLE_REPAINT_THROTTLING "Toggle repaint throttling support" OFF)
     74    WEBKIT_OPTION_DEFINE(ENABLE_REQUEST_ANIMATION_FRAME "Toggle requestAnimationFrame support" OFF)
     75    WEBKIT_OPTION_DEFINE(ENABLE_SCRIPTED_SPEECH "Toggle Scripted Speech API support" OFF)
     76    WEBKIT_OPTION_DEFINE(ENABLE_SHADOW_DOM "Toggle Shadow DOM support" OFF)
     77    WEBKIT_OPTION_DEFINE(ENABLE_SHARED_WORKERS "Toggle SharedWorkers support" OFF)
     78    WEBKIT_OPTION_DEFINE(ENABLE_SQL_DATABASE "Toggle SQL Database Support" ON)
     79    WEBKIT_OPTION_DEFINE(ENABLE_STYLE_SCOPED "Toggle <style scoped> support" OFF)
     80    WEBKIT_OPTION_DEFINE(ENABLE_SVG "Toggle SVG support" ON)
     81    WEBKIT_OPTION_DEFINE(ENABLE_SVG_DOM_OBJC_BINDINGS "Toggle SVG DOM Objective-C bindings support (implies SVG support)" OFF)
     82    WEBKIT_OPTION_DEFINE(ENABLE_SVG_FONTS "Toggle SVG fonts support (imples SVG support)" ON)
     83    WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_EVENTS "Toggle Touch Events support" OFF)
     84    WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_ICON_LOADING "Toggle Touch Icon Loading Support" OFF)
     85    WEBKIT_OPTION_DEFINE(ENABLE_VIBRATION "Toggle Vibration API support" OFF)
     86    WEBKIT_OPTION_DEFINE(ENABLE_VIDEO "Toggle Video support" OFF)
     87    WEBKIT_OPTION_DEFINE(ENABLE_WEBGL "Toggle 3D canvas (WebGL) support" OFF)
     88    WEBKIT_OPTION_DEFINE(ENABLE_WEB_AUDIO "Toggle Web Audio support" OFF)
     89    WEBKIT_OPTION_DEFINE(ENABLE_WEB_SOCKETS "Toggle Web Sockets support" ON)
     90    WEBKIT_OPTION_DEFINE(ENABLE_WEB_TIMING "Toggle Web Timing support" OFF)
     91    WEBKIT_OPTION_DEFINE(ENABLE_WORKERS "Toggle Web Workers support" OFF)
     92    WEBKIT_OPTION_DEFINE(ENABLE_XSLT "Toggle XSLT support" ON)
     93    WEBKIT_OPTION_DEFINE(USE_SYSTEM_MALLOC "Toggle system allocator instead of TCmalloc" OFF)
     94    WEBKIT_OPTION_DEFINE(USE_TILED_BACKING_STORE "Toggle Tiled Backing Store support" OFF)
     95    WEBKIT_OPTION_DEFINE(USE_WTFURL "Toogle the use of WTFURL for URL parsing" OFF)
     96ENDMACRO ()
     97
     98MACRO (WEBKIT_OPTION_END)
     99    FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS})
     100        OPTION(${_name} "${_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name}}" ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}})
     101    ENDFOREACH ()
    6102
    7103
    8 MACRO(WEBKIT_FEATURE_CHECK_DEPS _deps _deps_ok)
    9         SET(${_deps_ok} TRUE)
     104    MESSAGE(STATUS "Enabled features:")
    10105
    11         LIST(LENGTH ${_deps} ${_deps_ok}_LIST_SIZE)
    12         IF (${${_deps_ok}_LIST_SIZE} GREATER 1)
    13                 FOREACH(_dep ${${_deps}})
    14                         IF (NOT ${_dep})
    15                                 SET(${_deps_ok} FALSE)
    16                                 BREAK()
    17                         ENDIF ()
    18                 ENDFOREACH ()
    19         ELSE ()
    20                 IF (NOT ${_deps})
    21                         SET(${_deps_ok} FALSE)
    22                 ENDIF ()
    23         ENDIF ()
    24 ENDMACRO()
     106    SET(_MAX_FEATURE_LENGTH 0)
     107    FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS})
     108        STRING(LENGTH ${_name} _NAME_LENGTH)
     109        IF (_NAME_LENGTH GREATER _MAX_FEATURE_LENGTH)
     110            SET(_MAX_FEATURE_LENGTH ${_NAME_LENGTH})
     111        ENDIF ()
     112    ENDFOREACH ()
    25113
    26 MACRO(WEBKIT_FEATURE _feature _description _type _args)
    27         IF (${_type} EQUAL ${DEPENDS})
    28                 WEBKIT_FEATURE_CHECK_DEPS(${_args} DEPS_OK_${_feature})
    29                 OPTION(${_feature} "${_description}" DEPS_OK_${_feature})
    30         ELSEIF (${_type} EQUAL ${DEFAULT})
    31                 OPTION(${_feature} "${_description}" ${_args})
    32         ELSEIF (${_type} EQUAL ${ALWAYS})
    33                 SET(${_feature} ${_args})
    34         ENDIF ()
     114    SET(_SHOULD_PRINT_POINTS OFF)
     115    FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS})
     116        STRING(LENGTH ${_name} _NAME_LENGTH)
    35117
    36         LIST(APPEND WEBKIT_FEATURES ${_feature})
     118        SET(_MESSAGE " ${_name} ")
    37119
    38         IF (${_feature})
    39                 LIST(APPEND FEATURE_DEFINES ${_feature})
    40         ENDIF ()
    41 ENDMACRO()
     120        IF (_SHOULD_PRINT_POINTS)
     121            FOREACH (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH})
     122                SET(_MESSAGE "${_MESSAGE} ")
     123            ENDFOREACH ()
     124            SET(_SHOULD_PRINT_POINTS OFF)
     125        ELSE ()
     126            FOREACH (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH})
     127                SET(_MESSAGE "${_MESSAGE}.")
     128            ENDFOREACH ()
     129            SET(_SHOULD_PRINT_POINTS ON)
     130        ENDIF ()
    42131
    43 MACRO(WEBKIT_PRINT_FEATURES)
    44         MESSAGE(STATUS "Enabled features:")
     132        IF (${_name})
     133            LIST(APPEND FEATURE_DEFINES ${_name})
     134            SET(_MESSAGE "${_MESSAGE} ON")
     135        ELSE ()
     136            SET(_MESSAGE "${_MESSAGE} OFF")
     137        ENDIF ()
    45138
    46         SET(MAX_FEATURE_LENGTH 0)
    47         FOREACH (_feature ${WEBKIT_FEATURES})
    48                 STRING(LENGTH ${_feature} FEATURE_LENGTH)
    49                 IF (FEATURE_LENGTH GREATER MAX_FEATURE_LENGTH)
    50                         SET(MAX_FEATURE_LENGTH ${FEATURE_LENGTH})
    51                 ENDIF ()
    52         ENDFOREACH ()
    53 
    54         SET(ODD 0)
    55         FOREACH (_feature ${WEBKIT_FEATURES})
    56                 STRING(LENGTH ${_feature} FEATURE_LENGTH)
    57                 SET(SPACES "")
    58 
    59                 IF (ODD)
    60                         FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
    61                                 SET(SPACES "${SPACES} ")
    62                         ENDFOREACH ()
    63                         SET(ODD 0)
    64                 ELSE ()
    65                         FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
    66                                 SET(SPACES "${SPACES}.")
    67                         ENDFOREACH ()
    68                         SET(ODD 1)
    69                 ENDIF ()
    70 
    71                 IF (${_feature})
    72                         MESSAGE(STATUS "  ${_feature} ${SPACES} ON")
    73                 ELSE ()
    74                         MESSAGE(STATUS "  ${_feature} ${SPACES} OFF")
    75                 ENDIF ()
    76         ENDFOREACH ()
    77 
    78         UNSET(FEATURE_LENGTH)
    79         UNSET(MAX_FEATURE_LENGTH)
    80         UNSET(ODD)
    81 ENDMACRO()
     139        MESSAGE(STATUS "${_MESSAGE}")
     140    ENDFOREACH ()
     141ENDMACRO ()
Note: See TracChangeset for help on using the changeset viewer.