+2012-07-04 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [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ø <tor.arne.vestbo@nokia.com>
[Qt] Get rid of un-needed QT += declarative for Qt 5
+2012-07-04 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [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 <vsevik@chromium.org>
Web Inspector: UISourceCode should take care of adding revision after committing working copy.
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
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})
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})
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})