Changeset 98069 in webkit


Ignore:
Timestamp:
Oct 20, 2011 11:00:34 PM (13 years ago)
Author:
loislo@chromium.org
Message:

Web Inspector: reimplement protocol backend/frontend source generator
https://bugs.webkit.org/show_bug.cgi?id=69295

Patch by Peter Rybin <peter.rybin@gmail.com> on 2011-10-20
Reviewed by Pavel Feldman.

Old 2-stage python+perf generator that uses intermediate IDL output is
being replaced with a solid python script. This is for simplicity and
as a base for the future JSON validator.

  • CMakeLists.txt:
  • CodeGenerators.pri:
  • DerivedSources.make:
  • GNUmakefile.am:
  • WebCore.gyp/WebCore.gyp:
  • inspector/CodeGeneratorInspector.pm: Removed.
  • inspector/CodeGeneratorInspector.py: Added.
  • inspector/Inspector.json:
  • inspector/generate-inspector-idl: Removed.
Location:
trunk/Source/WebCore
Files:
1 added
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r98000 r98069  
    22222222
    22232223ADD_CUSTOM_COMMAND(
    2224     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.idl
     2224    OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorBackendDispatcher.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorBackendDispatcher.h ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorFrontend.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorFrontend.h
    22252225    MAIN_DEPENDENCY inspector/Inspector.json
    2226     DEPENDS ${WEBCORE_DIR}/inspector/generate-inspector-idl ${WEBCORE_DIR}/inspector/Inspector.json
    2227     COMMAND ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/inspector/generate-inspector-idl -o ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.idl ${WEBCORE_DIR}/inspector/Inspector.json
    2228     VERBATIM)
    2229 
    2230 ADD_CUSTOM_COMMAND(
    2231     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorBackendDispatcher.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorBackendDispatcher.h ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorFrontend.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorFrontend.h
    2232     MAIN_DEPENDENCY ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.idl
    2233     DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/inspector/CodeGeneratorInspector.pm ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.idl
    2234     COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts -I${WEBCORE_DIR}/inspector ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --generator Inspector ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_WEBCORE_DIR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.idl
     2226    DEPENDS ${WEBCORE_DIR}/inspector/CodeGeneratorInspector.py
     2227    COMMAND ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/inspector/CodeGeneratorInspector.py ${WEBCORE_DIR}/inspector/Inspector.json --output_h_dir "${DERIVED_SOURCES_WEBCORE_DIR}" --output_cpp_dir "${DERIVED_SOURCES_WEBCORE_DIR}" --defines "${FEATURE_DEFINES_JAVASCRIPT}"
    22352228    VERBATIM)
    22362229LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorBackendDispatcher.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorFrontend.cpp)
  • trunk/Source/WebCore/ChangeLog

    r98066 r98069  
     12011-10-20  Peter Rybin  <peter.rybin@gmail.com>
     2
     3        Web Inspector: reimplement protocol backend/frontend source generator
     4        https://bugs.webkit.org/show_bug.cgi?id=69295
     5
     6        Reviewed by Pavel Feldman.
     7
     8        Old 2-stage python+perf generator that uses intermediate IDL output is
     9        being replaced with a solid python script. This is for simplicity and
     10        as a base for the future JSON validator.
     11
     12        * CMakeLists.txt:
     13        * CodeGenerators.pri:
     14        * DerivedSources.make:
     15        * GNUmakefile.am:
     16        * WebCore.gyp/WebCore.gyp:
     17        * inspector/CodeGeneratorInspector.pm: Removed.
     18        * inspector/CodeGeneratorInspector.py: Added.
     19        * inspector/Inspector.json:
     20        * inspector/generate-inspector-idl: Removed.
     21
    1222011-10-20  Adam Barth  <abarth@webkit.org>
    223
  • trunk/Source/WebCore/CodeGenerators.pri

    r97957 r98069  
    684684addExtraCompiler(inspectorValidate)
    685685
    686 inspectorJSON.output = $${WC_GENERATED_SOURCES_DIR}/Inspector.idl
     686inspectorJSON.output = $${WC_GENERATED_SOURCES_DIR}/InspectorFrontend.cpp $${WC_GENERATED_SOURCES_DIR}/InspectorBackendDispatcher.cpp
    687687inspectorJSON.input = INSPECTOR_JSON
    688 inspectorJSON.wkScript = $$PWD/inspector/generate-inspector-idl
    689 inspectorJSON.commands = python $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json
    690 inspectorJSON.depends = $$PWD/inspector/generate-inspector-idl
    691 inspectorJSON.wkAddOutputToSources = false
     688inspectorJSON.wkScript = $$PWD/inspector/CodeGeneratorInspector.py
     689inspectorJSON.commands = python $$inspectorJSON.wkScript $$PWD/inspector/Inspector.json --output_h_dir $$WC_GENERATED_SOURCES_DIR --output_cpp_dir $$WC_GENERATED_SOURCES_DIR --defines \"$${FEATURE_DEFINES_JAVASCRIPT}\"
     690inspectorJSON.depends = $$inspectorJSON.wkScript
    692691addExtraCompiler(inspectorJSON)
    693 inspectorJSON.variable_out = INSPECTOR_JSON_OUTPUT
    694 
    695 inspectorIDL.output = $${WC_GENERATED_SOURCES_DIR}/InspectorFrontend.cpp $${WC_GENERATED_SOURCES_DIR}/InspectorBackendDispatcher.cpp
    696 inspectorIDL.input = INSPECTOR_JSON_OUTPUT
    697 inspectorIDL.wkScript = $$PWD/bindings/scripts/generate-bindings.pl
    698 inspectorIDL.commands = perl -I$$PWD/bindings/scripts -I$$PWD/inspector $$inspectorIDL.wkScript --defines \"$${FEATURE_DEFINES_JAVASCRIPT}\" --generator Inspector --outputDir $$WC_GENERATED_SOURCES_DIR --preprocessor \"$${QMAKE_MOC} -E\" ${QMAKE_FILE_NAME}
    699 inspectorIDL.depends = $$PWD/bindings/scripts/CodeGenerator.pm \
    700               $$PWD/inspector/CodeGeneratorInspector.pm \
    701               $$PWD/bindings/scripts/IDLParser.pm \
    702               $$PWD/bindings/scripts/IDLStructure.pm \
    703               $$PWD/bindings/scripts/InFilesParser.pm \
    704               $$PWD/bindings/scripts/preprocessor.pm \
    705               $$PWD/inspector/Inspector.json \
    706               $$PWD/inspector/generate-inspector-idl
    707 inspectorIDL.wkExtraSources = $$inspectorIDL.output
    708 addExtraCompiler(inspectorIDL)
    709692
    710693inspectorBackendStub.output = generated/InspectorBackendStub.qrc
  • trunk/Source/WebCore/DerivedSources.make

    r97957 r98069  
    913913        python $(WebCore)/inspector/generate-inspector-protocol-version -o InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json
    914914
    915 Inspector.idl : Inspector.json inspector/generate-inspector-idl
    916         python $(WebCore)/inspector/generate-inspector-idl -o Inspector.idl $(WebCore)/inspector/Inspector.json
    917 
    918915all : InspectorFrontend.h
    919916
    920 INSPECTOR_GENERATOR_SCRIPTS = $(GENERATE_SCRIPTS) inspector/CodeGeneratorInspector.pm
    921 
    922 InspectorFrontend.h : Inspector.idl $(INSPECTOR_GENERATOR_SCRIPTS)
    923         $(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator Inspector $<
     917INSPECTOR_GENERATOR_SCRIPTS = inspector/CodeGeneratorInspector.py
     918
     919InspectorFrontend.h : Inspector.json $(INSPECTOR_GENERATOR_SCRIPTS)
     920        python $(WebCore)/inspector/CodeGeneratorInspector.py $(WebCore)/inspector/Inspector.json --output_h_dir . --output_cpp_dir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT"
    924921
    925922all : InjectedScriptSource.h
  • trunk/Source/WebCore/GNUmakefile.am

    r98049 r98069  
    689689        $(PYTHON) $(WebCore)/inspector/generate-inspector-protocol-version -o $(GENSOURCES_WEBCORE)/InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json
    690690
    691 DerivedSources/WebCore/Inspector.idl : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/generate-inspector-idl
    692         $(PYTHON) $(WebCore)/inspector/generate-inspector-idl -o $(GENSOURCES_WEBCORE)/Inspector.idl $(WebCore)/inspector/Inspector.json
    693 
    694 DerivedSources/WebCore/InspectorBackendDispatcher.cpp: DerivedSources/WebCore/Inspector.idl $(SCRIPTS_BINDINGS) $(WebCore)/inspector/CodeGeneratorInspector.pm
    695         $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts -I$(WebCore)/inspector $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --generator Inspector $<
     691DerivedSources/WebCore/InspectorBackendDispatcher.cpp: $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/CodeGeneratorInspector.py
     692        $(PYTHON) $(WebCore)/inspector/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)"
    696693DerivedSources/WebCore/InspectorFrontend.h: DerivedSources/WebCore/InspectorFrontend.cpp
    697694DerivedSources/WebCore/InspectorFrontend.cpp: DerivedSources/WebCore/InspectorBackendStub.js
  • trunk/Source/WebCore/WebCore.gyp/WebCore.gyp

    r98057 r98069  
    337337  'targets': [
    338338    {
     339      'target_name': 'inspector_protocol_sources',
     340      'type': 'none',
     341      'dependencies': [
     342        'generate_inspector_protocol_version'
     343      ],
     344      'actions': [
     345        {
     346          'action_name': 'generateInspectorProtocolSources',
     347          'inputs': [
     348            # First input. It stands for python script in action below.
     349            '../inspector/CodeGeneratorInspector.py',
     350            # Other inputs. They go as arguments to the python script.
     351            '../inspector/Inspector.json',
     352          ],
     353          'outputs': [
     354            '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendDispatcher.cpp',
     355            '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorBackendDispatcher.h',
     356            '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorFrontend.cpp',
     357            '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorFrontend.h',
     358            '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js',
     359          ],
     360          'variables': {
     361            'generator_include_dirs': [
     362            ],
     363          },
     364          'action': [
     365            'python',
     366            '<@(_inputs)',
     367            '--output_h_dir', '<(SHARED_INTERMEDIATE_DIR)/webkit',
     368            '--output_cpp_dir', '<(SHARED_INTERMEDIATE_DIR)/webcore',
     369            '--defines', '<(feature_defines) LANGUAGE_JAVASCRIPT',
     370          ],
     371          'message': 'Generating Inspector protocol sources from Inspector.json',
     372        },
     373      ]
     374    },
     375    {
    339376      'target_name': 'generate_inspector_protocol_version',
    340377      'type': 'none',
     
    362399          'message': 'Validate inspector protocol for backwards compatibility and generate version file',
    363400        }
    364       ]
    365     },
    366     {
    367       'target_name': 'inspector_idl',
    368       'type': 'none',
    369       'actions': [
    370 
    371         {
    372           'action_name': 'generateInspectorProtocolIDL',
    373           'inputs': [
    374             '../inspector/generate-inspector-idl',
    375             '../inspector/Inspector.json',
    376           ],
    377           'outputs': [
    378             '<(SHARED_INTERMEDIATE_DIR)/webcore/Inspector.idl',
    379           ],
    380           'variables': {
    381             'generator_include_dirs': [
    382             ],
    383           },
    384           'action': [
    385             'python',
    386             '../inspector/generate-inspector-idl',
    387             '-o',
    388             '<@(_outputs)',
    389             '<@(_inputs)'
    390           ],
    391           'message': 'Generating Inspector protocol sources from Inspector.idl',
    392         }
    393       ]
    394     },
    395     {
    396       'target_name': 'inspector_protocol_sources',
    397       'type': 'none',
    398       'dependencies': [
    399         'inspector_idl',
    400         'generate_inspector_protocol_version'
    401       ],
    402       'actions': [
    403         {
    404           'action_name': 'generateInspectorProtocolSources',
    405           # The second input item will be used as item name in vcproj.
    406           # It is not possible to put Inspector.idl there because
    407           # all idl files are marking as excluded by gyp generator.
    408           'inputs': [
    409             '../bindings/scripts/generate-bindings.pl',
    410             '../inspector/CodeGeneratorInspector.pm',
    411             '../bindings/scripts/CodeGenerator.pm',
    412             '../bindings/scripts/IDLParser.pm',
    413             '../bindings/scripts/IDLStructure.pm',
    414             '<(SHARED_INTERMEDIATE_DIR)/webcore/Inspector.idl',
    415           ],
    416           'outputs': [
    417             '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendDispatcher.cpp',
    418             '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js',
    419             '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorBackendDispatcher.h',
    420             '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorFrontend.cpp',
    421             '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorFrontend.h',
    422           ],
    423           'variables': {
    424             'generator_include_dirs': [
    425             ],
    426           },
    427           'action': [
    428             'python',
    429             'scripts/rule_binding.py',
    430             '<(SHARED_INTERMEDIATE_DIR)/webcore/Inspector.idl',
    431             '<(SHARED_INTERMEDIATE_DIR)/webcore',
    432             '<(SHARED_INTERMEDIATE_DIR)/webkit',
    433             '--',
    434             '<@(_inputs)',
    435             '--',
    436             '--defines', '<(feature_defines) LANGUAGE_JAVASCRIPT',
    437             '--generator', 'Inspector',
    438             '<@(generator_include_dirs)'
    439           ],
    440           'message': 'Generating Inspector protocol sources from Inspector.idl',
    441         },
    442401      ]
    443402    },
  • trunk/Source/WebCore/inspector/Inspector.json

    r97957 r98069  
    141141                ],
    142142                "hidden": true
    143             },
     143            }
    144144        ],
    145145        "commands": [
     
    849849                    { "name": "id", "type": "number", "description": "Entry id for further reference." }
    850850                ]
    851             },
     851            }
    852852        ],
    853853        "commands": [
Note: See TracChangeset for help on using the changeset viewer.