blob: f7516f4914e4d4391f003bfa82924cf94770ddf4 [file] [log] [blame]
SET(DEFAULT 0)
SET(DEPENDS 1)
SET(WEBKIT_FEATURES "")
SET(HTML_FEATURES "")
SET(SVG_FEATURES "")
MACRO(WEBKIT_SEPARATE_FEATURES _name _value)
FOREACH(f ${ARGN})
LIST(APPEND ${f}_FEATURES "${_name}=${_value}")
ENDFOREACH()
ENDMACRO(WEBKIT_SEPARATE_FEATURES)
MACRO(WEBKIT_FEATURE_CHECK_DEPS _deps _deps_ok)
SET(${_deps_ok} TRUE)
LIST(LENGTH ${_deps} ${_deps_ok}_LIST_SIZE)
IF (${${_deps_ok}_LIST_SIZE} GREATER 1)
FOREACH(_dep ${${_deps}})
IF (NOT ${_dep})
SET(${_deps_ok} FALSE)
BREAK()
ENDIF ()
ENDFOREACH ()
ELSE ()
IF (NOT ${_deps})
SET(${_deps_ok} FALSE)
ENDIF ()
ENDIF ()
ENDMACRO()
MACRO(WEBKIT_FEATURE _feature _description _type _args)
IF (${_type} EQUAL ${DEPENDS})
WEBKIT_FEATURE_CHECK_DEPS(${_args} DEPS_OK_${_feature})
OPTION(${_feature} "${_description}" DEPS_OK_${_feature})
ELSEIF (${_type} EQUAL ${DEFAULT})
OPTION(${_feature} "${_description}" ${_args})
ENDIF ()
LIST(APPEND WEBKIT_FEATURES ${_feature})
IF (${_feature})
SET(${_feature}_VALUE 1)
WEBKIT_SEPARATE_FEATURES(${_feature} 1 ${ARGN})
LIST(APPEND FEATURE_DEFINES ${_feature})
ELSE ()
SET(${_feature}_VALUE 0)
WEBKIT_SEPARATE_FEATURES(${_feature} 0 ${ARGN})
ENDIF ()
ENDMACRO()
MACRO(WEBKIT_PRINT_FEATURES)
MESSAGE(STATUS "Enabled features:")
SET(MAX_FEATURE_LENGTH 0)
FOREACH (_feature ${WEBKIT_FEATURES})
STRING(LENGTH ${_feature} FEATURE_LENGTH)
IF (FEATURE_LENGTH GREATER MAX_FEATURE_LENGTH)
SET(MAX_FEATURE_LENGTH ${FEATURE_LENGTH})
ENDIF ()
ENDFOREACH ()
SET(ODD 0)
FOREACH (_feature ${WEBKIT_FEATURES})
STRING(LENGTH ${_feature} FEATURE_LENGTH)
SET(SPACES "")
IF (ODD)
FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
SET(SPACES "${SPACES} ")
ENDFOREACH ()
SET(ODD 0)
ELSE ()
FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
SET(SPACES "${SPACES}.")
ENDFOREACH ()
SET(ODD 1)
ENDIF ()
IF (${_feature})
MESSAGE(STATUS " ${_feature} ${SPACES} ON")
ELSE ()
MESSAGE(STATUS " ${_feature} ${SPACES} OFF")
ENDIF ()
ENDFOREACH ()
UNSET(FEATURE_LENGTH)
UNSET(MAX_FEATURE_LENGTH)
UNSET(ODD)
ENDMACRO()