Source/WebCore/ChangeLog

 12011-12-30 Kentaro Hara <haraken@chromium.org>
 2
 3 Enable the [Supplemental] IDL on CMake
 4 https://bugs.webkit.org/show_bug.cgi?id=75345
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 This patch enables the [Supplemental] IDL on CMake by changing the build
 9 flow of CMake as follows.
 10
 11 - Previous build flow:
 12 foreach $idl (all IDL files) {
 13 generate-bindings.pl depends on $idl;
 14 generate-bindings.pl reads $idl;
 15 generate-bindings.pl generates .h and .cpp files for $idl;
 16 }
 17
 18 - New build flow (See the discussions in bug 72138 for more details):
 19 resolve-supplemental.pl depends on all IDL files;
 20 resolve-supplemental.pl reads all IDL files;
 21 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
 22 resolve-supplemental.pl outputs supplemental_dependency.tmp;
 23 foreach $idl (all IDL files) {
 24 generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
 25 generate-bindings.pl reads $idl;
 26 generate-bindings.pl reads supplemental_dependency.tmp;
 27 generate-bindings.pl generates .h and .cpp files for $idl,
 28 including all attributes in the IDL files that are implementing $idl;
 29 }
 30
 31 Tests: Confirm that build succeeds.
 32 http/tests/websocket/tests/*
 33
 34 * CMakeLists.txt:
 35 * UseJSC.cmake: Described the above build.
 36 * UseV8.cmake: Exactly the same change as UseJSC.cmake, except for "JS" or "V8".
 37
1382011-12-29 Julien Chaffraix <jchaffraix@webkit.org>
239
340 REGRESSION (r93614): Safari Reader doesn't repaint correctly when scrolling

Source/WebCore/CMakeLists.txt

@@SET(WebCore_IDL_FILES
370370 webaudio/AudioSourceNode.idl
371371 webaudio/ConvolverNode.idl
372372 webaudio/DelayNode.idl
 373 webaudio/DOMWindowWebAudio.idl
373374 webaudio/HighPass2FilterNode.idl
374375 webaudio/JavaScriptAudioNode.idl
375376 webaudio/LowPass2FilterNode.idl
376377 webaudio/RealtimeAnalyserNode.idl
377378
378379 websockets/CloseEvent.idl
 380 websockets/DOMWindowWebSocket.idl
379381
380382 xml/DOMParser.idl
381383 xml/XMLHttpRequest.idl

@@IF (ENABLE_REQUEST_ANIMATION_FRAME)
22182220ENDIF ()
22192221
22202222# Modules that the bindings generator scripts may use
 2223SET(SCRIPTS_RESOLVE_SUPPLEMENTAL
 2224 ${WEBCORE_DIR}/bindings/scripts/IDLParser.pm
 2225)
22212226SET(SCRIPTS_BINDINGS
22222227 ${WEBCORE_DIR}/bindings/scripts/IDLParser.pm
22232228 ${WEBCORE_DIR}/bindings/scripts/IDLStructure.pm
22242229 ${WEBCORE_DIR}/bindings/scripts/InFilesParser.pm
22252230 ${WEBCORE_DIR}/bindings/scripts/preprocessor.pm
22262231)
 2232SET(IDL_FILES_TMP ${DERIVED_SOURCES_WEBCORE_DIR}/idl_files.tmp)
 2233SET(SUPPLEMENTAL_DEPENDENCY_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/supplemental_dependency.tmp)
22272234
22282235INCLUDE(${WEBCORE_DIR}/UseJSC.cmake)
22292236

Source/WebCore/UseJSC.cmake

@@FOREACH (_feature ${FEATURE_DEFINES})
258258ENDFOREACH ()
259259
260260# Create JavaScript C++ code given an IDL input
 261SET(FIRST_IDL_FILE_FLAG 1)
 262FOREACH (_idl ${WebCore_IDL_FILES})
 263 IF (${FIRST_IDL_FILE_FLAG})
 264 SET(FIRST_IDL_FILE_FLAG 0)
 265 SET(IDL_FILES_LIST "${WEBCORE_DIR}/${_idl}\n")
 266 ELSE ()
 267 SET(IDL_FILES_LIST "${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n")
 268 ENDIF ()
 269ENDFOREACH ()
 270FILE(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
 271
 272ADD_CUSTOM_COMMAND(
 273 OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
 274 DEPENDS ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_IDL_FILES}
 275 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE}
 276 VERBATIM)
 277
261278FOREACH (_file ${WebCore_IDL_FILES})
262279 GET_FILENAME_COMPONENT (_name ${_file} NAME_WE)
263280 ADD_CUSTOM_COMMAND(
264281 OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.h
265282 MAIN_DEPENDENCY ${_file}
266  DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorJS.pm ${_file}
267  COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --generator JS ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_WEBCORE_DIR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${WEBCORE_DIR}/${_file}
 283 DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorJS.pm ${SUPPLEMENTAL_DEPENDENCY_FILE}
 284 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --generator JS ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_WEBCORE_DIR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WEBCORE_DIR}/${_file}
268285 VERBATIM)
269286 LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.cpp)
270287ENDFOREACH ()

Source/WebCore/UseV8.cmake

@@ADD_CUSTOM_COMMAND(
246246LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/V8ArrayBufferViewCustomScript.h)
247247
248248# Create JavaScript C++ code given an IDL input
 249SET(FIRST_IDL_FILE_FLAG 1)
 250FOREACH (_idl ${WebCore_IDL_FILES})
 251 IF (${FIRST_IDL_FILE_FLAG})
 252 SET(FIRST_IDL_FILE_FLAG 0)
 253 SET(IDL_FILES_LIST "${WEBCORE_DIR}/${_idl}\n")
 254 ELSE ()
 255 SET(IDL_FILES_LIST "${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n")
 256 ENDIF ()
 257ENDFOREACH ()
 258FILE(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
 259
 260ADD_CUSTOM_COMMAND(
 261 OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
 262 DEPENDS ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_IDL_FILES}
 263 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE}
 264 VERBATIM)
 265
249266FOREACH (_file ${WebCore_IDL_FILES})
250267 GET_FILENAME_COMPONENT (_name ${_file} NAME_WE)
251268 ADD_CUSTOM_COMMAND(
252269 OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.h
253270 MAIN_DEPENDENCY ${_file}
254  DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorV8.pm ${_file}
255  COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --generator V8 ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_WEBCORE_DIR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${WEBCORE_DIR}/${_file}
 271 DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorV8.pm ${SUPPLEMENTAL_DEPENDENCY_FILE}
 272 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --generator V8 ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_WEBCORE_DIR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WEBCORE_DIR}/${_file}
256273 VERBATIM)
257274 LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.cpp)
258275ENDFOREACH ()