diff -r 000000000000 -r 4f2f89ce4247 cmake/WebKitFeatures.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmake/WebKitFeatures.cmake Fri Sep 17 09:02:29 2010 +0300 @@ -0,0 +1,91 @@ +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()