The idea is to process all the feature defines in a simple-to-generate GNUmakefile.features.am. The end goal is to simplify adding a new feature define to the project, with all the relevant files being autogenerated (covered by bug #85456). In GNUmakefile.features.am (in Source/WebCore) all the feature defines would be added to the FEATURE_DEFINES and webcore_cppflags variables, set to the default value - 1 for enabled, 0 otherwise. In GNUmakefile.am the GNUmakefile.features.am would be included. The values of feature defines would then be overridden based on the configuration options used when running the configure script. Currently there are many configuration options, but they should be narrowed down (bug #87126) so this wouldn't be such a big burden to maintain (if any).
One important usecase to consider is that we often enable things for build-webkit and disable them for normal configure runs. This allows us to have the bots test something and not ship it.
(In reply to comment #1) > One important usecase to consider is that we often enable things for build-webkit and disable them for normal configure runs. This allows us to have the bots test something and not ship it. I can't imagine a solution to this from the top of my head other than manually going through the list of the feature defines and switching their status if necessary after the release branch is formed.
(In reply to comment #2) > (In reply to comment #1) > > One important usecase to consider is that we often enable things for build-webkit and disable them for normal configure runs. This allows us to have the bots test something and not ship it. > > I can't imagine a solution to this from the top of my head other than manually going through the list of the feature defines and switching their status if necessary after the release branch is formed. Unfortunately, it's not just the release branch, but also in unstable releases as well.
Created attachment 145118 [details] Patch
Created attachment 151109 [details] Patch
Created attachment 158546 [details] Patch
Comment on attachment 158546 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=158546&action=review Okay, but definitely watch the bots on this one. It may also be a good idea to double-check "make distcheck" > Source/WebCore/GNUmakefile.am:650 > ACCELERATED_COMPOSITING=1 This introduces an unused -DACCELERATED_COMPOSITING variable. I guess that's not a terrible side-effect. > Source/WebCore/GNUmakefile.am:793 > +# Add the feature defines to webcore_cppflags in macro form Nit: Missing a period on this comment. > GNUmakefile.am:64 > +FEATURE_DEFINES_DEFAULTS := > +FEATURE_DEFINES_OVERRIDES := > +FEATURE_DEFINES := I think it'd make sense to use small_case here to match other variables.
Comment on attachment 158546 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=158546&action=review >> Source/WebCore/GNUmakefile.am:650 >> ACCELERATED_COMPOSITING=1 > > This introduces an unused -DACCELERATED_COMPOSITING variable. I guess that's not a terrible side-effect. I'll remove this define as it's not used at all.
Committed as http://trac.webkit.org/changeset/126450.
*** Bug 85753 has been marked as a duplicate of this bug. ***