+2015-12-31 Michael Catanzaro <mcatanzaro@igalia.com>
+
+ [CMake] Add error checking to catch option manipulation after WEBKIT_OPTION_END
+ https://bugs.webkit.org/show_bug.cgi?id=152611
+
+ Reviewed by Martin Robinson.
+
+ If WEBKIT_OPTION_DEFINE is called after WEBKIT_OPTION_END, the option never makes its way
+ into FEATURE_DEFINES and so will be inconsistently set (available to most of the build, but
+ not to the DOM bindings generator, for example).
+
+ If WEBKIT_OPTION_DEFAULT_PORT_VALUE, WEBKIT_OPTION_CONFLICT, or WEBKIT_OPTION_DEPEND are
+ called after WEBKIT_OPTION_END, they don't do anything.
+
+ Add error checking to catch these bugs.
+
+ * Source/cmake/WebKitFeatures.cmake:
+
2015-12-30 Philippe Normand <pnormand@igalia.com>
[GTK][Mac] Disable gtk-doc
set(PUBLIC YES)
set(PRIVATE NO)
+macro(_ENSURE_OPTION_MODIFICATION_IS_ALLOWED)
+ if (NOT _SETTING_WEBKIT_OPTIONS)
+ message(FATAL_ERROR "Options must be set between WEBKIT_OPTION_BEGIN and WEBKIT_OPTION_END")
+ endif ()
+endmacro()
+
macro(WEBKIT_OPTION_DEFINE _name _description _public _initial_value)
+ _ENSURE_OPTION_MODIFICATION_IS_ALLOWED()
set(_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name} ${_description})
set(_WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_${_name} ${_public})
set(_WEBKIT_AVAILABLE_OPTIONS_INITIAL_VALUE_${_name} ${_initial_value})
endmacro()
macro(WEBKIT_OPTION_DEFAULT_PORT_VALUE _name _public _value)
+ _ENSURE_OPTION_MODIFICATION_IS_ALLOWED()
set(_WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_${_name} ${_public})
set(_WEBKIT_AVAILABLE_OPTIONS_INITIAL_VALUE_${_name} ${_value})
endmacro()
macro(WEBKIT_OPTION_CONFLICT _name _conflict)
+ _ENSURE_OPTION_MODIFICATION_IS_ALLOWED()
list(APPEND _WEBKIT_AVAILABLE_OPTIONS_${_name}_CONFLICTS ${_conflict})
endmacro()
macro(WEBKIT_OPTION_DEPEND _name _depend)
+ _ENSURE_OPTION_MODIFICATION_IS_ALLOWED()
list(APPEND _WEBKIT_AVAILABLE_OPTIONS_${_name}_DEPENDENCIES ${_depend})
endmacro()
macro(WEBKIT_OPTION_BEGIN)
+ set(_SETTING_WEBKIT_OPTIONS TRUE)
+
WEBKIT_OPTION_DEFINE(ENABLE_3D_TRANSFORMS "Toggle 3D transforms support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_ACCELERATED_2D_CANVAS "Toggle accelerated 2D canvas support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_ACCELERATED_OVERFLOW_SCROLLING "Toggle accelerated scrolling support" PRIVATE OFF)
endmacro()
macro(WEBKIT_OPTION_END)
+ set(_SETTING_WEBKIT_OPTIONS FALSE)
+
list(SORT _WEBKIT_AVAILABLE_OPTIONS)
set(_MAX_FEATURE_LENGTH 0)
foreach (_name ${_WEBKIT_AVAILABLE_OPTIONS})