Enable the [Supplemental] IDL on CMake
https://bugs.webkit.org/show_bug.cgi?id=75345
Reviewed by Daniel Bates.
This patch enables the [Supplemental] IDL on CMake by changing the build
flow of CMake as follows.
- Previous build flow:
foreach $idl (all IDL files) {
generate-bindings.pl depends on $idl;
generate-bindings.pl reads $idl;
generate-bindings.pl generates .h and .cpp files for $idl;
}
- New build flow (See the discussions in bug 72138 for more details):
resolve-supplemental.pl depends on all IDL files;
resolve-supplemental.pl reads all IDL files;
resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
resolve-supplemental.pl outputs supplemental_dependency.tmp;
foreach $idl (all IDL files) {
generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
generate-bindings.pl reads $idl;
generate-bindings.pl reads supplemental_dependency.tmp;
generate-bindings.pl generates .h and .cpp files for $idl,
including all attributes in the IDL files that are implementing $idl;
}
Tests: Confirm that build succeeds.
http/tests/websocket/tests/*
* CMakeLists.txt:
* UseJSC.cmake: Modified to reflect the new build flow as described above.
* UseV8.cmake: Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@103854 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index 0efcc45..320a0a4 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -369,6 +369,7 @@
webaudio/AudioProcessingEvent.idl
webaudio/AudioSourceNode.idl
webaudio/ConvolverNode.idl
+ webaudio/DOMWindowWebAudio.idl
webaudio/DelayNode.idl
webaudio/HighPass2FilterNode.idl
webaudio/JavaScriptAudioNode.idl
@@ -376,6 +377,7 @@
webaudio/RealtimeAnalyserNode.idl
websockets/CloseEvent.idl
+ websockets/DOMWindowWebSocket.idl
xml/DOMParser.idl
xml/XMLHttpRequest.idl
@@ -2218,12 +2220,17 @@
ENDIF ()
# Modules that the bindings generator scripts may use
+SET(SCRIPTS_RESOLVE_SUPPLEMENTAL
+ ${WEBCORE_DIR}/bindings/scripts/IDLParser.pm
+)
SET(SCRIPTS_BINDINGS
${WEBCORE_DIR}/bindings/scripts/IDLParser.pm
${WEBCORE_DIR}/bindings/scripts/IDLStructure.pm
${WEBCORE_DIR}/bindings/scripts/InFilesParser.pm
${WEBCORE_DIR}/bindings/scripts/preprocessor.pm
)
+SET(IDL_FILES_TMP ${DERIVED_SOURCES_WEBCORE_DIR}/idl_files.tmp)
+SET(SUPPLEMENTAL_DEPENDENCY_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/supplemental_dependency.tmp)
INCLUDE(${WEBCORE_DIR}/UseJSC.cmake)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 9411d40..e76c824 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,40 @@
+2011-12-30 Kentaro Hara <haraken@chromium.org>
+
+ Enable the [Supplemental] IDL on CMake
+ https://bugs.webkit.org/show_bug.cgi?id=75345
+
+ Reviewed by Daniel Bates.
+
+ This patch enables the [Supplemental] IDL on CMake by changing the build
+ flow of CMake as follows.
+
+ - Previous build flow:
+ foreach $idl (all IDL files) {
+ generate-bindings.pl depends on $idl;
+ generate-bindings.pl reads $idl;
+ generate-bindings.pl generates .h and .cpp files for $idl;
+ }
+
+ - New build flow (See the discussions in bug 72138 for more details):
+ resolve-supplemental.pl depends on all IDL files;
+ resolve-supplemental.pl reads all IDL files;
+ resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
+ resolve-supplemental.pl outputs supplemental_dependency.tmp;
+ foreach $idl (all IDL files) {
+ generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
+ generate-bindings.pl reads $idl;
+ generate-bindings.pl reads supplemental_dependency.tmp;
+ generate-bindings.pl generates .h and .cpp files for $idl,
+ including all attributes in the IDL files that are implementing $idl;
+ }
+
+ Tests: Confirm that build succeeds.
+ http/tests/websocket/tests/*
+
+ * CMakeLists.txt:
+ * UseJSC.cmake: Modified to reflect the new build flow as described above.
+ * UseV8.cmake: Ditto.
+
2011-12-30 Robert Hogan <robert@webkit.org>
REGRESSION (r94492): Text is shifted to the right in some buttons in the Mac App Store
diff --git a/Source/WebCore/UseJSC.cmake b/Source/WebCore/UseJSC.cmake
index fc929d6..2a456f0 100644
--- a/Source/WebCore/UseJSC.cmake
+++ b/Source/WebCore/UseJSC.cmake
@@ -258,13 +258,24 @@
ENDFOREACH ()
# Create JavaScript C++ code given an IDL input
+FOREACH (_idl ${WebCore_IDL_FILES})
+ SET(IDL_FILES_LIST "${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n")
+ENDFOREACH ()
+FILE(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
+ DEPENDS ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_IDL_FILES}
+ 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}
+ VERBATIM)
+
FOREACH (_file ${WebCore_IDL_FILES})
GET_FILENAME_COMPONENT (_name ${_file} NAME_WE)
ADD_CUSTOM_COMMAND(
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.h
MAIN_DEPENDENCY ${_file}
- DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorJS.pm ${_file}
- 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}
+ DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorJS.pm ${SUPPLEMENTAL_DEPENDENCY_FILE}
+ 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}
VERBATIM)
LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.cpp)
ENDFOREACH ()
diff --git a/Source/WebCore/UseV8.cmake b/Source/WebCore/UseV8.cmake
index d80f63f..3d2f44d 100755
--- a/Source/WebCore/UseV8.cmake
+++ b/Source/WebCore/UseV8.cmake
@@ -246,13 +246,24 @@
LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/V8ArrayBufferViewCustomScript.h)
# Create JavaScript C++ code given an IDL input
+FOREACH (_idl ${WebCore_IDL_FILES})
+ SET(IDL_FILES_LIST "${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n")
+ENDFOREACH ()
+FILE(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
+ DEPENDS ${WEBCORE_DIR}/bindings/scripts/resolve-supplemental.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_IDL_FILES}
+ 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}
+ VERBATIM)
+
FOREACH (_file ${WebCore_IDL_FILES})
GET_FILENAME_COMPONENT (_name ${_file} NAME_WE)
ADD_CUSTOM_COMMAND(
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.h
MAIN_DEPENDENCY ${_file}
- DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorV8.pm ${_file}
- 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}
+ DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorV8.pm ${SUPPLEMENTAL_DEPENDENCY_FILE}
+ 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}
VERBATIM)
LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.cpp)
ENDFOREACH ()