cmake/WebKitFeatures.cmake
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 SET(DEFAULT 0)
       
     2 SET(DEPENDS 1)
       
     3 
       
     4 SET(WEBKIT_FEATURES "")
       
     5 
       
     6 SET(HTML_FEATURES "")
       
     7 SET(SVG_FEATURES "")
       
     8 
       
     9 MACRO(WEBKIT_SEPARATE_FEATURES _name _value)
       
    10         FOREACH(f ${ARGN})
       
    11                 LIST(APPEND ${f}_FEATURES "${_name}=${_value}")
       
    12         ENDFOREACH()
       
    13 ENDMACRO(WEBKIT_SEPARATE_FEATURES)
       
    14 
       
    15 MACRO(WEBKIT_FEATURE_CHECK_DEPS _deps _deps_ok)
       
    16         SET(${_deps_ok} TRUE)
       
    17 
       
    18 	LIST(LENGTH ${_deps} ${_deps_ok}_LIST_SIZE)
       
    19 	IF (${${_deps_ok}_LIST_SIZE} GREATER 1)
       
    20 		FOREACH(_dep ${${_deps}})
       
    21 			IF (NOT ${_dep})
       
    22 				SET(${_deps_ok} FALSE)
       
    23 				BREAK()
       
    24 			ENDIF ()
       
    25 		ENDFOREACH ()
       
    26 	ELSE ()
       
    27 		IF (NOT ${_deps})
       
    28 			SET(${_deps_ok} FALSE)
       
    29 		ENDIF ()
       
    30 	ENDIF ()
       
    31 ENDMACRO()
       
    32 
       
    33 MACRO(WEBKIT_FEATURE _feature _description _type _args)
       
    34 	IF (${_type} EQUAL ${DEPENDS})
       
    35                 WEBKIT_FEATURE_CHECK_DEPS(${_args} DEPS_OK_${_feature})
       
    36 		OPTION(${_feature} "${_description}" DEPS_OK_${_feature})
       
    37 	ELSEIF (${_type} EQUAL ${DEFAULT})
       
    38 		OPTION(${_feature} "${_description}" ${_args})
       
    39 	ENDIF ()
       
    40 	
       
    41 	LIST(APPEND WEBKIT_FEATURES ${_feature})
       
    42 
       
    43 	IF (${_feature})
       
    44 		SET(${_feature}_VALUE 1)
       
    45 		WEBKIT_SEPARATE_FEATURES(${_feature} 1 ${ARGN})
       
    46 		LIST(APPEND FEATURE_DEFINES ${_feature})
       
    47 	ELSE ()
       
    48 		SET(${_feature}_VALUE 0)
       
    49 		WEBKIT_SEPARATE_FEATURES(${_feature} 0 ${ARGN})
       
    50 	ENDIF ()
       
    51 ENDMACRO()
       
    52 
       
    53 MACRO(WEBKIT_PRINT_FEATURES)
       
    54 	MESSAGE(STATUS "Enabled features:")
       
    55 
       
    56 	SET(MAX_FEATURE_LENGTH 0)
       
    57 	FOREACH (_feature ${WEBKIT_FEATURES})
       
    58 		STRING(LENGTH ${_feature} FEATURE_LENGTH)
       
    59 		IF (FEATURE_LENGTH GREATER MAX_FEATURE_LENGTH)
       
    60 			SET(MAX_FEATURE_LENGTH ${FEATURE_LENGTH})
       
    61 		ENDIF ()
       
    62 	ENDFOREACH ()
       
    63 
       
    64 	SET(ODD 0)
       
    65 	FOREACH (_feature ${WEBKIT_FEATURES})
       
    66 		STRING(LENGTH ${_feature} FEATURE_LENGTH)
       
    67 		SET(SPACES "")
       
    68 
       
    69 		IF (ODD)
       
    70 			FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
       
    71 				SET(SPACES "${SPACES} ")
       
    72 			ENDFOREACH ()
       
    73 			SET(ODD 0)
       
    74 		ELSE ()
       
    75 			FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
       
    76 				SET(SPACES "${SPACES}.")
       
    77 			ENDFOREACH ()
       
    78 			SET(ODD 1)
       
    79 		ENDIF ()
       
    80 
       
    81 		IF (${_feature})
       
    82 			MESSAGE(STATUS "  ${_feature} ${SPACES} ON")
       
    83 		ELSE ()
       
    84 			MESSAGE(STATUS "  ${_feature} ${SPACES} OFF")
       
    85 		ENDIF ()
       
    86 	ENDFOREACH ()
       
    87 
       
    88 	UNSET(FEATURE_LENGTH)
       
    89 	UNSET(MAX_FEATURE_LENGTH)
       
    90 	UNSET(ODD)
       
    91 ENDMACRO()