wiki:AddingFeatures

Version 8 (modified by zandobersek@gmail.com, 12 years ago) ( diff )

Adjust the name of the file containing feature defines for the Autotools build system - it's now called GNUmakefile.features.am.in.

Introduction

The policy for adding new (major) features to WebKit is:

  • Send email to webkit-dev describing the feature and linking to the tracking bug.
  • If necessary, add an ENABLE flag for the feature.

How to add an ENABLE flag

By adding a build definition for ENABLE_FEATURE it allows code/preprocessor to test using ENABLE(FEATURE). You'll need to edit at least the following files:

  • Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
  • Source/WebCore/Configurations/FeatureDefines.xcconfig
  • Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
  • Source/WebKit2/Configurations/FeatureDefines.xcconfig
  • Source/WebCore/GNUmakefile.features.am.in
  • Source/WebKit/chromium/features.gypi
  • Source/cmake/WebKitFeatures.cmake
  • Source/cmakeconfig.h.cmake
  • Tools/Scripts/webkitperl/FeatureList.pm
  • Tools/qmake/mkspecs/features/features.pri
  • WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops
  • WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops

Note that only defines the feature. To turn the feature on, you'll need to edit the build configurations for each port. (TODO: page describing where each configuration is?)

After adding a feature, please add it to the list in the wiki

Activating a feature for CMAKE based ports

  • Edit Source/cmake/Options<Port>.cmake, e.g. OptionsEfl.cmake and set a default value for this feature.
  • Edit Tools/Scripts/webkitperl/FeatureList.pm to default enable this for the same port, e.g add a isPort() statement to the default setting assignment.
Note: See TracWiki for help on using the wiki.