From 9d83d8d5c5f23c0f8d218fbfafa8b6ce7fbee4cc Mon Sep 17 00:00:00 2001 From: "ryuan.choi@samsung.com" Date: Wed, 4 Jul 2012 15:25:35 +0000 Subject: [PATCH] [CMAKE] Add GENERATE_BINDINGS macro to share the codes which use generate-bindings.pl. https://bugs.webkit.org/show_bug.cgi?id=90258 Reviewed by Rob Buis. .: This new macro calls generate-bindings.pl and append generated sources into proper source list. * Source/cmake/WebKitMacros.cmake: Source/WebCore: Use GENERATE_BINDINGS instead of using generate-bindings.pl directly. * UseJSC.cmake: * UseV8.cmake: * PlatformBlackBerry.cmake: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121857 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- ChangeLog | 12 +++++++++++ Source/WebCore/ChangeLog | 13 ++++++++++++ Source/WebCore/PlatformBlackBerry.cmake | 17 +++++++--------- Source/WebCore/UseJSC.cmake | 36 ++++++++++++++------------------- Source/WebCore/UseV8.cmake | 34 +++++++++++++------------------ Source/cmake/WebKitMacros.cmake | 34 +++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5fd2bd..a67b87d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2012-07-04 Ryuan Choi + + [CMAKE] Add GENERATE_BINDINGS macro to share the codes which use generate-bindings.pl. + https://bugs.webkit.org/show_bug.cgi?id=90258 + + Reviewed by Rob Buis. + + This new macro calls generate-bindings.pl and append generated sources + into proper source list. + + * Source/cmake/WebKitMacros.cmake: + 2012-07-04 Tor Arne Vestbø [Qt] Get rid of un-needed QT += declarative for Qt 5 diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index e60e848..3a23e8b 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,16 @@ +2012-07-04 Ryuan Choi + + [CMAKE] Add GENERATE_BINDINGS macro to share the codes which use generate-bindings.pl. + https://bugs.webkit.org/show_bug.cgi?id=90258 + + Reviewed by Rob Buis. + + Use GENERATE_BINDINGS instead of using generate-bindings.pl directly. + + * UseJSC.cmake: + * UseV8.cmake: + * PlatformBlackBerry.cmake: + 2012-07-04 Vsevolod Vlasov Web Inspector: UISourceCode should take care of adding revision after committing working copy. diff --git a/Source/WebCore/PlatformBlackBerry.cmake b/Source/WebCore/PlatformBlackBerry.cmake index 2940958..5169a5d 100644 --- a/Source/WebCore/PlatformBlackBerry.cmake +++ b/Source/WebCore/PlatformBlackBerry.cmake @@ -339,16 +339,13 @@ ADD_CUSTOM_COMMAND( COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --idlAttributesFile ${IDL_ATTRIBUTES_FILE} VERBATIM) -FOREACH (_file ${WebCore_CPP_IDL_FILES}) - GET_FILENAME_COMPONENT (_name ${_file} NAME_WE) - ADD_CUSTOM_COMMAND( - OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/WebDOM${_name}.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/WebDOM${_name}.h - MAIN_DEPENDENCY ${_file} - DEPENDS ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGeneratorCPP.pm ${SUPPLEMENTAL_DEPENDENCY_FILE} ${_file} - COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl --defines "${FEATURE_DEFINES_WEBCORE}" --generator CPP ${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}/WebDOM${_name}.cpp) -ENDFOREACH () +GENERATE_BINDINGS(WebCore_SOURCES + "${WebCore_CPP_IDL_FILES}" + "${WEBCORE_DIR}" + "${IDL_INCLUDES}" + "${FEATURE_DEFINES_WEBCORE}" + ${DERIVED_SOURCES_WEBCORE_DIR} WebDOM CPP + ${SUPPLEMENTAL_DEPENDENCY_FILE}) # Generate contents for PopupPicker.cpp SET(WebCore_POPUP_CSS_AND_JS diff --git a/Source/WebCore/UseJSC.cmake b/Source/WebCore/UseJSC.cmake index ce690ef..28a14b9 100644 --- a/Source/WebCore/UseJSC.cmake +++ b/Source/WebCore/UseJSC.cmake @@ -330,24 +330,18 @@ ADD_CUSTOM_COMMAND( COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --idlAttributesFile ${IDL_ATTRIBUTES_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 ${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 () - -FOREACH (_file ${WebCoreTestSupport_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 ${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 WebCoreTestSupport_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_name}.cpp) -ENDFOREACH () +GENERATE_BINDINGS(WebCore_SOURCES + "${WebCore_IDL_FILES}" + "${WEBCORE_DIR}" + "${IDL_INCLUDES}" + "${FEATURE_DEFINES_JAVASCRIPT}" + ${DERIVED_SOURCES_WEBCORE_DIR} JS JS + ${SUPPLEMENTAL_DEPENDENCY_FILE}) + +GENERATE_BINDINGS(WebCoreTestSupport_SOURCES + "${WebCoreTestSupport_IDL_FILES}" + "${WEBCORE_DIR}" + "${IDL_INCLUDES}" + "${FEATURE_DEFINES_JAVASCRIPT}" + ${DERIVED_SOURCES_WEBCORE_DIR} JS JS + ${SUPPLEMENTAL_DEPENDENCY_FILE}) diff --git a/Source/WebCore/UseV8.cmake b/Source/WebCore/UseV8.cmake index 6775e95..32e7a10 100755 --- a/Source/WebCore/UseV8.cmake +++ b/Source/WebCore/UseV8.cmake @@ -273,24 +273,18 @@ ADD_CUSTOM_COMMAND( COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --idlAttributesFile ${IDL_ATTRIBUTES_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 ${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 () +GENERATE_BINDINGS(WebCore_SOURCES + "${WebCore_IDL_FILES}" + "${WEBCORE_DIR}" + "${IDL_INCLUDES}" + "${FEATURE_DEFINES_JAVASCRIPT}" + ${DERIVED_SOURCES_WEBCORE_DIR} V8 V8 + ${SUPPLEMENTAL_DEPENDENCY_FILE}) -FOREACH (_file ${WebCoreTestSupport_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 ${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 WebCoreTestSupport_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/V8${_name}.cpp) -ENDFOREACH () +GENERATE_BINDINGS(WebCoreTestSupport_SOURCES + "${WebCoreTestSupport_IDL_FILES}" + "${WEBCORE_DIR}" + "${IDL_INCLUDES}" + "${FEATURE_DEFINES_JAVASCRIPT}" + ${DERIVED_SOURCES_WEBCORE_DIR} V8 V8 + ${SUPPLEMENTAL_DEPENDENCY_FILE}) diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake index 38cf34e..0199408 100644 --- a/Source/cmake/WebKitMacros.cmake +++ b/Source/cmake/WebKitMacros.cmake @@ -24,6 +24,40 @@ MACRO (ADD_SOURCE_DEPENDENCIES _source _deps) ENDMACRO () +# Helper macro which wraps generate-bindings.pl script. +# _output_source is a list name which will contain generated sources.(eg. WebCore_SOURCES) +# _input_files are IDL files to generate. +# _base_dir is base directory where script is called. +# _idl_includes is value of --include argument. (eg. --include=${WEBCORE_DIR}/bindings/js) +# _features is a value of --defines argument. +# _destination is a value of --outputDir argument. +# _prefix is a prefix of output files. (eg. JS - it makes JSXXX.cpp JSXXX.h from XXX.idl) +# _generator is a value of --generator argument. +# _supplemental_dependency_file is a value of --supplementalDependencyFile. (optional) +MACRO (GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator) + SET(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl) + + SET(_supplemental_dependency_file ${ARGN}) + IF (_supplemental_dependency_file) + SET(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file}) + ENDIF () + + FOREACH (_file ${_input_files}) + GET_FILENAME_COMPONENT (_name ${_file} NAME_WE) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_destination}/${_prefix}${_name}.cpp ${_destination}/${_prefix}${_name}.h + MAIN_DEPENDDENCY ${_file} + DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${_generator}.pm ${_supplemental_dependency_file} + COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines "${_features}" --generator ${_generator} ${_idl_includes} --outputDir "${_destination}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${_supplemental_dependency} ${_file} + WORKING_DIRECTORY ${_base_dir} + VERBATIM) + + LIST(APPEND ${_output_source} ${_destination}/${_prefix}${_name}.cpp) + ENDFOREACH () +ENDMACRO () + + MACRO (GENERATE_FONT_NAMES _infile) SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) SET(_arguments --fonts ${_infile}) -- 2.7.4