Diff
Modified: releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake 2014-05-13 19:30:17 UTC (rev 168713)
@@ -482,6 +482,7 @@
bindings/gobject/DOMObjectCache.cpp
bindings/gobject/GObjectEventListener.cpp
bindings/gobject/WebKitDOMCustom.cpp
+ bindings/gobject/WebKitDOMDeprecated.cpp
bindings/gobject/WebKitDOMEventTarget.cpp
bindings/gobject/WebKitDOMHTMLPrivate.cpp
bindings/gobject/WebKitDOMObject.cpp
@@ -668,6 +669,9 @@
${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdomdefines.h
${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdom.h
${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h
+ ${WEBCORE_DIR}/bindings/gobject/WebKitDOMDeprecated.h
+ ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h
+ ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h
)
file(GLOB GObjectDOMBindingsSymbolsFiles
"${WEBCORE_DIR}/bindings/gobject/WebKitDOM*.symbols"
@@ -680,9 +684,6 @@
list(APPEND GObjectDOMBindingsSymbolsFiles ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOM${classname}.symbols)
endforeach ()
- # Propagate this variable to the parent scope, so that it can be used in other parts of the build.
- set(GObjectDOMBindings_INSTALLED_HEADERS ${GObjectDOMBindings_INSTALLED_HEADERS} PARENT_SCOPE)
-
set(GOBJECT_DOM_BINDINGS_FEATURES_DEFINES "LANGUAGE_GOBJECT=1 ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}")
string(REPLACE "ENABLE_INDEXED_DATABASE=1" "" GOBJECT_DOM_BINDINGS_FEATURES_DEFINES ${GOBJECT_DOM_BINDINGS_FEATURES_DEFINES})
string(REPLACE REGEX "ENABLE_SVG[A-Z_]+=1" "" GOBJECT_DOM_BINDINGS_FEATURES_DEFINES ${GOBJECT_DOM_BINDINGS_FEATURES_DEFINES})
@@ -728,11 +729,33 @@
fake-installed-webkitdom-headers
)
+ file(WRITE ${CMAKE_BINARY_DIR}/gtkdoc-webkitdom.cfg
+ "[webkitdomgtk]\n"
+ "pkgconfig_file=${WebKit2_PKGCONFIG_FILE}\n"
+ "namespace=webkit_dom\n"
+ "cflags=-I${CMAKE_SOURCE_DIR}/Source\n"
+ " -I${WEBCORE_DIR}/bindings\n"
+ " -I${WEBCORE_DIR}/bindings/gobject\n"
+ " -I${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}\n"
+ "doc_dir=${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/docs\n"
+ "source_dirs=${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}\n"
+ " ${WEBCORE_DIR}/bindings/gobject\n"
+ "headers=${GObjectDOMBindings_INSTALLED_HEADERS}\n"
+ )
+
install(FILES ${GObjectDOMBindings_INSTALLED_HEADERS}
- bindings/gobject/WebKitDOMEventTarget.h
- bindings/gobject/WebKitDOMDeprecated.h
- bindings/gobject/WebKitDOMObject.h
DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/webkitdom"
)
+
+ # Some installed headers are not on the list of headers used for gir generation.
+ set(GObjectDOMBindings_GIR_HEADERS ${GObjectDOMBindings_INSTALLED_HEADERS})
+ list(REMOVE_ITEM GObjectDOMBindings_GIR_HEADERS
+ bindings/gobject/WebKitDOMEventTarget.h
+ bindings/gobject/WebKitDOMDeprecated.h
+ bindings/gobject/WebKitDOMObject.h)
+
+ # Propagate this variable to the parent scope, so that it can be used in other parts of the build.
+ set(GObjectDOMBindings_GIR_HEADERS ${GObjectDOMBindings_GIR_HEADERS} PARENT_SCOPE)
+
endif ()
Modified: releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake 2014-05-13 19:30:17 UTC (rev 168713)
@@ -201,7 +201,7 @@
-I${DERIVED_SOURCES_DIR}
-I${DERIVED_SOURCES_WEBKITGTK_DIR}
-I${WEBCORE_DIR}/platform/gtk
- ${GObjectDOMBindings_INSTALLED_HEADERS}
+ ${GObjectDOMBindings_GIR_HEADERS}
${WebKitGTK_INSTALLED_HEADERS}
${WEBKIT_DIR}/gtk/webkit/*.cpp
)
Modified: releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake 2014-05-13 19:30:17 UTC (rev 168713)
@@ -750,7 +750,7 @@
-I${FORWARDING_HEADERS_WEBKIT2GTK_DIR}
-I${FORWARDING_HEADERS_WEBKIT2GTK_EXTENSION_DIR}
-I${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk
- ${GObjectDOMBindings_INSTALLED_HEADERS}
+ ${GObjectDOMBindings_GIR_HEADERS}
${WebKit2WebExtension_INSTALLED_HEADERS}
${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/*.cpp
)
Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am 2014-05-13 19:30:17 UTC (rev 168713)
@@ -30,22 +30,8 @@
gtkdoc-webkit2gtk.cfg
endif
-$(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml: $(gdom_symbol_files) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files
- $(AM_V_GEN)mkdir -p $(top_builddir)/DerivedSources/webkitdom/docs \
- && echo $(gdom_symbol_files) | $(PYTHON) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files docs > $@
-
-$(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt: $(gdom_symbol_files) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files
- $(AM_V_GEN)mkdir -p $(top_builddir)/DerivedSources/webkitdom/docs \
- && echo $(gdom_symbol_files) | $(PYTHON) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files sections > $@
-
-BUILT_SOURCES += \
- $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml \
- $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt
-
docs_build_dependencies += \
libGObjectDOMBindings.la \
- $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml \
- $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt \
gtkdoc-webkitdom.cfg
docs-build.stamp: $(docs_build_dependencies)
Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc 2014-05-13 19:30:17 UTC (rev 168713)
@@ -25,6 +25,7 @@
import logging
import os.path
import sys
+import webkitdom
def configure_logging(verbose):
level = logging.DEBUG if verbose else logging.INFO
@@ -194,9 +195,10 @@
prepare_environment_for_gtkdoc_generation()
+ webkitdom.write_doc_files()
+ generate_documentation_for_config(common.build_path('gtkdoc-webkitdom.cfg'))
+
saw_webkit1_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkitgtk.cfg'))
saw_webkit2_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkit2gtk.cfg'))
- if not common.is_cmake_build():
- generate_documentation_for_config(common.build_path('gtkdoc-webkitdom.cfg'))
sys.exit(saw_webkit1_warnings or saw_webkit2_warnings)
Deleted: releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files 2014-05-13 19:30:17 UTC (rev 168713)
@@ -1,216 +0,0 @@
-#!/usr/bin/env python
-# Copyright (C) 2013 Igalia S.L.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA
-
-import os
-import re
-import sys
-
-class WebKitDOMDocGenerator:
-
- DELETED_CLASSES = ["WebKitDOMBarInfo", "WebKitDOMHTMLPropertiesCollection", "WebKitDOMMemoryInfo", "WebKitDOMMicroDataItemValue", "WebKitDOMPropertyNodeList" ]
-
- def write_header(self):
- pass
-
- def write_section(self, symbol_file):
- raise NotImplementedError
-
- def write_deleted_classes(self):
- raise NotImplementedError
-
- def write_footer(self):
- pass
-
-class WebKitDOMDocGeneratorDocs(WebKitDOMDocGenerator):
-
- def write_header(self):
- sys.stdout.write('''<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
- <bookinfo>
- <title>WebKitDOMGTK+ Reference Manual</title>
- <releaseinfo>for WebKitDOMGTK+ &version;</releaseinfo>
- </bookinfo>
-
- <chapter>
- <title>Class Overview</title>
-''')
-
- def write_section(self, symbol_file):
- basename = os.path.basename(symbol_file)
- sys.stdout.write(' <xi:include href="" % basename.replace(".symbols", ".xml"))
-
- def write_deleted_classes(self):
- for class_name in self.DELETED_CLASSES:
- sys.stdout.write(' <xi:include href="" % class_name)
-
- def write_footer(self):
- sys.stdout.write(''' </chapter>
-
- <index id="index-all">
- <title>Index</title>
- <xi:include href="" /></xi:include>
- </index>
- <index id="api-index-deprecated" role="deprecated">
- <title>Index of deprecated symbols</title>
- <xi:include href="" /></xi:include>
- </index>
-
- <xi:include href="" /></xi:include>
-</book>
-''')
-
-class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
-
- def __init__(self, deprecated_symbol_file):
- self._first_decamelize_re = re.compile('(.)([A-Z][a-z]+)')
- self._second_decamelize_re = re.compile('([a-z0-9])([A-Z])')
- self._dom_class_re = re.compile('(^WebKitDOM)(.+)$')
- self._function_re = re.compile('^.+ (.+)\((.+)\)$')
-
- self._deprecated_symbols = self._deprecated_symbols(deprecated_symbol_file)
-
- def _dom_class(self, class_name):
- return self._dom_class_re.sub(r'\2', class_name)
-
- def _dom_class_decamelize(self, class_name):
- s1 = self._first_decamelize_re.sub(r'\1_\2', self._dom_class(class_name))
- retval = self._second_decamelize_re.sub(r'\1_\2', s1)
-
- # Fix some exceptions.
- retval = retval.replace('Web_Kit', 'WebKit')
- retval = retval.replace('X_Path', 'XPath')
- retval = retval.replace('HTMLI_Frame', 'HTML_IFrame')
-
- return retval
-
- def _deleted_class(self, function):
- for deleted_class in self.DELETED_CLASSES:
- decamelized = 'webkit_dom_%s' % self._dom_class_decamelize(deleted_class).lower()
- if function.startswith(decamelized):
- return deleted_class
- return None
-
- def _deprecated_symbols(self, symbol_file):
- retval = {}
- f = open(symbol_file, 'r')
- for line in f.readlines():
- match = self._function_re.match(line)
- if not match:
- continue
-
- function = match.group(1)
- args = match.group(2).split(', ')
- class_name = args[0].strip('*')
- if class_name == 'void':
- class_name = self._deleted_class(function)
-
- retval.setdefault(class_name, []).append(function)
-
- return retval
-
- def _symbol_list(self, symbol_file):
- retval = []
- f = open(symbol_file, 'r')
- for line in f.readlines():
- match = self._function_re.match(line)
- if not match or match.group(1).endswith('get_type'):
- continue
- retval.append(match.group(1))
-
- return retval
-
- def write_section(self, symbol_file):
- class_name = os.path.basename(symbol_file).replace(".symbols", "")
- is_custom = class_name == 'WebKitDOMCustom'
- is_interface = class_name == 'WebKitDOMEventTarget'
- is_object = class_name == 'WebKitDOMObject'
- sys.stdout.write('<SECTION>\n')
- sys.stdout.write('<FILE>%s</FILE>\n<TITLE>%s</TITLE>\n' % (class_name, class_name))
- if not is_custom:
- sys.stdout.write('%s\n' % class_name)
- sys.stdout.write('\n')
- sys.stdout.write('\n'.join(self._symbol_list(symbol_file)) + '\n')
- try:
- deprecated_functions = self._deprecated_symbols[class_name]
- sys.stdout.write('\n'.join(deprecated_functions) + '\n')
- except KeyError:
- pass
- if not is_custom:
- sys.stdout.write('\n<SUBSECTION Standard>\n')
- sys.stdout.write('%sClass\n' % class_name)
- dom_class = self._dom_class_decamelize(class_name).upper()
- sys.stdout.write('WEBKIT_TYPE_DOM_%s\n' % dom_class)
- sys.stdout.write('WEBKIT_DOM_%s\n' % dom_class)
- if is_object:
- sys.stdout.write('WEBKIT_IS_DOM_%s\n' % dom_class)
- else:
- sys.stdout.write('WEBKIT_DOM_IS_%s\n' % dom_class)
- sys.stdout.write('WEBKIT_DOM_%s_CLASS\n' % dom_class)
- if is_interface:
- sys.stdout.write('WEBKIT_DOM_%s_GET_IFACE\n' % dom_class)
- else:
- if is_object:
- sys.stdout.write('WEBKIT_IS_DOM_%s_CLASS\n' % dom_class)
- else:
- sys.stdout.write('WEBKIT_DOM_IS_%s_CLASS\n' % dom_class)
- sys.stdout.write('WEBKIT_DOM_%s_GET_CLASS\n' % dom_class)
- sys.stdout.write('\n<SUBSECTION Private>\n')
- if is_object:
- sys.stdout.write('%sPrivate\n' % class_name)
- sys.stdout.write('webkit_dom_%s_get_type\n' % dom_class.lower())
- sys.stdout.write('</SECTION>\n\n')
-
- def write_deleted_classes(self):
- for class_name in self.DELETED_CLASSES:
- sys.stdout.write('<SECTION>\n')
- sys.stdout.write('<FILE>%s</FILE>\n<TITLE>%s</TITLE>\n' % (class_name, class_name))
- sys.stdout.write('\n'.join([name for name in self._deprecated_symbols[class_name] if not name.endswith('get_type')]) + '\n')
- sys.stdout.write('\n<SUBSECTION Private>\n')
- sys.stdout.write('webkit_dom_%s_get_type\n' % self._dom_class_decamelize(class_name).lower())
- sys.stdout.write('</SECTION>\n\n')
-
- def write_footer(self):
- sys.stdout.write('<SECTION>\n')
- sys.stdout.write('<FILE>webkitdomdefines</FILE>\n<TITLE>WebKitDOMDefines</TITLE>\n')
- sys.stdout.write('<SUBSECTION Private>\n')
- sys.stdout.write('WEBKIT_API\nWEBKIT_DEPRECATED\nWEBKIT_DEPRECATED_FOR\n')
- sys.stdout.write('</SECTION>\n\n')
-
-
-symbol_files = sys.stdin.read().strip('\n').split(' ')
-if 'docs' in sys.argv[1:]:
- generator = WebKitDOMDocGeneratorDocs()
-elif 'sections' in sys.argv[1:]:
- deprecated_symbol_file = None
- for symbol_file in symbol_files:
- if 'WebKitDOMDeprecated' in symbol_file:
- deprecated_symbol_file = symbol_file
- break
- generator = WebKitDOMDocGeneratorSections(deprecated_symbol_file)
-
-generator.write_header()
-for symbol_file in symbol_files:
- if 'WebKitDOMDeprecated' in symbol_file:
- continue
- generator.write_section(symbol_file)
-generator.write_deleted_classes()
-generator.write_footer()
Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py (168712 => 168713)
--- releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py 2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py 2014-05-13 19:30:17 UTC (rev 168713)
@@ -18,11 +18,235 @@
import common
import os
+import re
import sys
from ConfigParser import SafeConfigParser
+class WebKitDOMDocGenerator(object):
+
+ DELETED_CLASSES = [
+ "WebKitDOMBarInfo",
+ "WebKitDOMHTMLPropertiesCollection",
+ "WebKitDOMMemoryInfo",
+ "WebKitDOMMicroDataItemValue",
+ "WebKitDOMPropertyNodeList"]
+
+ def __init__(self, symbol_files, file_handle):
+ self._symbol_files = symbol_files
+ self._file_handle = file_handle
+
+ def write_header(self):
+ pass
+
+ def write_section(self, symbol_file):
+ raise NotImplementedError
+
+ def write_deleted_classes(self):
+ raise NotImplementedError
+
+ def write_footer(self):
+ pass
+
+ def write(self, string):
+ self._file_handle.write(string)
+
+ @staticmethod
+ def is_deprecated_symbol_file(file_path):
+ return 'WebKitDOMDeprecated' in file_path
+
+ def generate(self):
+ self.write_header()
+ for symbol_file in self._symbol_files:
+ if WebKitDOMDocGenerator.is_deprecated_symbol_file(symbol_file):
+ continue
+ self.write_section(symbol_file)
+ self.write_deleted_classes()
+ self.write_footer()
+
+
+class WebKitDOMDocGeneratorSGML(WebKitDOMDocGenerator):
+ def write_header(self):
+ self.write('''<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY version SYSTEM "version.xml">
+]>
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+ <bookinfo>
+ <title>WebKitDOMGTK+ Reference Manual</title>
+ <releaseinfo>for WebKitDOMGTK+ &version;</releaseinfo>
+ </bookinfo>
+
+ <chapter>
+ <title>Class Overview</title>
+''')
+
+ def write_section(self, symbol_file):
+ basename = os.path.basename(symbol_file)
+ self.write(' <xi:include href="" % basename.replace(".symbols", ".xml"))
+
+ def write_deleted_classes(self):
+ for class_name in self.DELETED_CLASSES:
+ self.write(' <xi:include href="" % class_name)
+
+ def write_footer(self):
+ self.write(''' </chapter>
+
+ <index id="index-all">
+ <title>Index</title>
+ <xi:include href="" /></xi:include>
+ </index>
+ <index id="api-index-deprecated" role="deprecated">
+ <title>Index of deprecated symbols</title>
+ <xi:include href="" /></xi:include>
+ </index>
+
+ <xi:include href="" /></xi:include>
+</book>
+''')
+
+
+class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
+ def __init__(self, symbol_files, file_handle):
+ super(WebKitDOMDocGeneratorSections, self).__init__(symbol_files, file_handle)
+
+ self._first_decamelize_re = re.compile('(.)([A-Z][a-z]+)')
+ self._second_decamelize_re = re.compile('([a-z0-9])([A-Z])')
+ self._dom_class_re = re.compile('(^WebKitDOM)(.+)$')
+ self._function_re = re.compile('^.+ (.+)\((.+)\)$')
+
+ self.deprecated_symbosl = {}
+ for symbol_file in symbol_files:
+ if WebKitDOMDocGenerator.is_deprecated_symbol_file(symbol_file):
+ self._deprecated_symbols = self._find_deprecated_symbols(symbol_file)
+ break
+
+ def _dom_class(self, class_name):
+ return self._dom_class_re.sub(r'\2', class_name)
+
+ def _dom_class_decamelize(self, class_name):
+ s1 = self._first_decamelize_re.sub(r'\1_\2', self._dom_class(class_name))
+ retval = self._second_decamelize_re.sub(r'\1_\2', s1)
+
+ # Fix some exceptions.
+ retval = retval.replace('Web_Kit', 'WebKit')
+ retval = retval.replace('X_Path', 'XPath')
+ retval = retval.replace('HTMLI_Frame', 'HTML_IFrame')
+
+ return retval
+
+ def _deleted_class(self, function):
+ for deleted_class in self.DELETED_CLASSES:
+ decamelized = 'webkit_dom_%s' % self._dom_class_decamelize(deleted_class).lower()
+ if function.startswith(decamelized):
+ return deleted_class
+ return None
+
+ def _find_deprecated_symbols(self, symbol_file):
+ retval = {}
+ f = open(symbol_file, 'r')
+ for line in f.readlines():
+ match = self._function_re.match(line)
+ if not match:
+ continue
+
+ function = match.group(1)
+ args = match.group(2).split(', ')
+ class_name = args[0].strip('*')
+ if class_name == 'void':
+ class_name = self._deleted_class(function)
+
+ retval.setdefault(class_name, []).append(function)
+
+ return retval
+
+ def _symbol_list(self, symbol_file):
+ retval = []
+ f = open(symbol_file, 'r')
+ for line in f.readlines():
+ match = self._function_re.match(line)
+ if not match or match.group(1).endswith('get_type'):
+ continue
+ retval.append(match.group(1))
+
+ return retval
+
+ def write_section(self, symbol_file):
+ class_name = os.path.basename(symbol_file).replace(".symbols", "")
+ is_custom = class_name == 'WebKitDOMCustom'
+ is_interface = class_name == 'WebKitDOMEventTarget'
+ is_object = class_name == 'WebKitDOMObject'
+ self.write('<SECTION>\n')
+ self.write('<FILE>%s</FILE>\n<TITLE>%s</TITLE>\n' % (class_name, class_name))
+ if not is_custom:
+ self.write('%s\n' % class_name)
+ self.write('\n')
+ self.write('\n'.join(self._symbol_list(symbol_file)) + '\n')
+ try:
+ deprecated_functions = self._deprecated_symbols[class_name]
+ self.write('\n'.join(deprecated_functions) + '\n')
+ except KeyError:
+ pass
+ if not is_custom:
+ self.write('\n<SUBSECTION Standard>\n')
+ self.write('%sClass\n' % class_name)
+ dom_class = self._dom_class_decamelize(class_name).upper()
+ self.write('WEBKIT_TYPE_DOM_%s\n' % dom_class)
+ self.write('WEBKIT_DOM_%s\n' % dom_class)
+ if is_object:
+ self.write('WEBKIT_IS_DOM_%s\n' % dom_class)
+ else:
+ self.write('WEBKIT_DOM_IS_%s\n' % dom_class)
+ self.write('WEBKIT_DOM_%s_CLASS\n' % dom_class)
+ if is_interface:
+ self.write('WEBKIT_DOM_%s_GET_IFACE\n' % dom_class)
+ else:
+ if is_object:
+ self.write('WEBKIT_IS_DOM_%s_CLASS\n' % dom_class)
+ else:
+ self.write('WEBKIT_DOM_IS_%s_CLASS\n' % dom_class)
+ self.write('WEBKIT_DOM_%s_GET_CLASS\n' % dom_class)
+ self.write('\n<SUBSECTION Private>\n')
+ if is_object:
+ self.write('%sPrivate\n' % class_name)
+ self.write('webkit_dom_%s_get_type\n' % dom_class.lower())
+ self.write('</SECTION>\n\n')
+
+ def write_deleted_classes(self):
+ for class_name in self.DELETED_CLASSES:
+ self.write('<SECTION>\n')
+ self.write('<FILE>%s</FILE>\n<TITLE>%s</TITLE>\n' % (class_name, class_name))
+ self.write('\n'.join([name for name in self._deprecated_symbols[class_name] if not name.endswith('get_type')]) + '\n')
+ self.write('\n<SUBSECTION Private>\n')
+ self.write('webkit_dom_%s_get_type\n' % self._dom_class_decamelize(class_name).lower())
+ self.write('</SECTION>\n\n')
+
+ def write_footer(self):
+ self.write('<SECTION>\n')
+ self.write('<FILE>webkitdomdefines</FILE>\n<TITLE>WebKitDOMDefines</TITLE>\n')
+ self.write('<SUBSECTION Private>\n')
+ self.write('WEBKIT_API\nWEBKIT_DEPRECATED\nWEBKIT_DEPRECATED_FOR\n')
+ self.write('</SECTION>\n\n')
+
+
+def write_doc_files():
+ doc_dir = common.build_path('DerivedSources', 'webkitdom', 'docs')
+
+ try:
+ os.mkdir(doc_dir)
+ except:
+ pass # Commonly happens if the directory already exists.
+
+ with open(os.path.join(doc_dir, 'webkitdomgtk-sections.txt'), 'w') as sections_file:
+ generator = WebKitDOMDocGeneratorSections(get_all_webkitdom_symbol_files(), sections_file)
+ generator.generate()
+ with open(os.path.join(doc_dir, 'webkitdomgtk-docs.sgml'), 'w') as sgml_file:
+ generator = WebKitDOMDocGeneratorSGML(get_all_webkitdom_symbol_files(), sgml_file)
+ generator.generate()
+
+
def header_name_list_from_gtkdoc_config_file():
config_file = common.build_path('gtkdoc-webkitdom.cfg')
if not os.path.isfile(config_file):