<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[205982] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/205982">205982</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-09-15 10:48:05 -0700 (Thu, 15 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CMake] Refactor GENERATE_BINDINGS
https://bugs.webkit.org/show_bug.cgi?id=161854

Patch by Fujii Hironori &lt;Hironori.Fujii@sony.com&gt; on 2016-09-15
Reviewed by Gyuyoung Kim.

.:

* Source/cmake/WebKitMacros.cmake(GENERATE_BINDINGS): Use
CMakeParseArguments for argument parsing.  Defined as a function
instread of a macro because function has its own variable scope.
Wrapped both preprocess-idls.pl and generate-bindings.pl scripts.
Downcased local variables COMMON_GENERATOR_DEPENDENCIES and
BINDING_GENERATOR. Generate idl_files.tmp. Removed arguments
_prefix and _extension because they are always JS and cpp now.

Source/WebCore:

* CMakeLists.txt: Changed the arguments of GENERATE_BINDINGS to
new style.  Removed add_custom_command of preprocess-idls.pl which
is moved to GENERATE_BINDINGS.  Moved IDL_ATTRIBUTES_FILE into
GENERATE_BINDINGS.

Tools:

* DumpRenderTree/CMakeLists.txt: Changed the arguments of
GENERATE_BINDINGS to new style.
* WebKitTestRunner/CMakeLists.txt: Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourcecmakeWebKitMacroscmake">trunk/Source/cmake/WebKitMacros.cmake</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeCMakeListstxt">trunk/Tools/DumpRenderTree/CMakeLists.txt</a></li>
<li><a href="#trunkToolsWebKitTestRunnerCMakeListstxt">trunk/Tools/WebKitTestRunner/CMakeLists.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/ChangeLog        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-09-15  Fujii Hironori  &lt;Hironori.Fujii@sony.com&gt;
+
+        [CMake] Refactor GENERATE_BINDINGS
+        https://bugs.webkit.org/show_bug.cgi?id=161854
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/WebKitMacros.cmake(GENERATE_BINDINGS): Use
+        CMakeParseArguments for argument parsing.  Defined as a function
+        instread of a macro because function has its own variable scope.
+        Wrapped both preprocess-idls.pl and generate-bindings.pl scripts.
+        Downcased local variables COMMON_GENERATOR_DEPENDENCIES and
+        BINDING_GENERATOR. Generate idl_files.tmp. Removed arguments
+        _prefix and _extension because they are always JS and cpp now.
+
</ins><span class="cx"> 2016-09-08  Carlos Alberto Lopez Perez  &lt;clopez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CMake] Build failure with GCC 6 (fatal error: stdlib.h: No such file or directory)
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -3447,12 +3447,10 @@
</span><span class="cx">     ${WEBCORE_DIR}/bindings/scripts/Hasher.pm
</span><span class="cx">     ${WEBCORE_DIR}/bindings/scripts/StaticString.pm
</span><span class="cx"> )
</span><del>-set(IDL_FILES_TMP ${DERIVED_SOURCES_WEBCORE_DIR}/idl_files.tmp)
</del><span class="cx"> set(SUPPLEMENTAL_DEPENDENCY_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/supplemental_dependency.tmp)
</span><span class="cx"> set(WINDOW_CONSTRUCTORS_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/DOMWindowConstructors.idl)
</span><span class="cx"> set(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/WorkerGlobalScopeConstructors.idl)
</span><span class="cx"> set(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/DedicatedWorkerGlobalScopeConstructors.idl)
</span><del>-set(IDL_ATTRIBUTES_FILE ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
</del><span class="cx"> 
</span><span class="cx"> WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
</span><span class="cx"> 
</span><span class="lines">@@ -3622,59 +3620,34 @@
</span><span class="cx"> GENERATE_GRAMMAR(xpathyy ${WEBCORE_DIR}/xml/XPathGrammar.y ${DERIVED_SOURCES_WEBCORE_DIR}/XPathGrammar.h ${DERIVED_SOURCES_WEBCORE_DIR}/XPathGrammar.cpp &quot;&quot;)
</span><span class="cx"> list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/XPathGrammar.cpp)
</span><span class="cx"> 
</span><del>-
-set(IDL_INCLUDES &quot;&quot;)
-foreach (_include ${WebCore_IDL_INCLUDES})
-    list(APPEND IDL_INCLUDES --include=${WEBCORE_DIR}/${_include})
-endforeach ()
-
-set(FEATURE_DEFINES_JAVASCRIPT &quot;LANGUAGE_JAVASCRIPT=1 ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;)
-
-# Create JavaScript C++ code given an IDL input
-foreach (_idl ${WebCore_IDL_FILES})
-    set(IDL_FILES_LIST &quot;${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n&quot;)
-endforeach ()
-
-list(APPEND IDL_INCLUDES --include=${DERIVED_SOURCES_WEBCORE_DIR})
</del><ins>+set(FEATURE_DEFINES_JAVASCRIPT &quot;LANGUAGE_JAVASCRIPT ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;)
</ins><span class="cx"> list(APPEND WebCoreTestSupport_IDL_FILES ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.idl)
</span><span class="cx"> 
</span><del>-file(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
</del><ins>+GENERATE_BINDINGS(
+    OUTPUT_SOURCE WebCore_DERIVED_SOURCES
+    INPUT_FILES ${WebCore_IDL_FILES}
+    BASE_DIR ${WEBCORE_DIR}
+    IDL_INCLUDES ${WebCore_IDL_INCLUDES} ${DERIVED_SOURCES_WEBCORE_DIR}
+    FEATURES ${FEATURE_DEFINES_JAVASCRIPT}
+    DESTINATION ${DERIVED_SOURCES_WEBCORE_DIR}
+    GENERATOR JS
+    SUPPLEMENTAL_DEPFILE ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    PP_EXTRA_OUTPUT
+        ${WINDOW_CONSTRUCTORS_FILE} ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE} ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    PP_EXTRA_ARGS
+        --windowConstructorsFile ${WINDOW_CONSTRUCTORS_FILE}
+        --workerGlobalScopeConstructorsFile ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+        --dedicatedWorkerGlobalScopeConstructorsFile ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE})
</ins><span class="cx"> 
</span><del>-add_custom_command(
-    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WINDOW_CONSTRUCTORS_FILE} ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE} ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${SCRIPTS_PREPROCESS_IDLS} ${WebCore_IDL_FILES} ${WEBCORE_DIR}/CMakeLists.txt
-    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines &quot;${FEATURE_DEFINES_JAVASCRIPT}&quot; --idlFilesList ${IDL_FILES_TMP} --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --windowConstructorsFile ${WINDOW_CONSTRUCTORS_FILE} --workerGlobalScopeConstructorsFile ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
---dedicatedWorkerGlobalScopeConstructorsFile ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    VERBATIM)
</del><ins>+GENERATE_BINDINGS(
+    OUTPUT_SOURCE WebCoreTestSupport_SOURCES
+    INPUT_FILES ${WebCoreTestSupport_IDL_FILES}
+    BASE_DIR ${WEBCORE_DIR}
+    IDL_INCLUDES ${WebCore_IDL_INCLUDES} ${DERIVED_SOURCES_WEBCORE_DIR} ${WebCoreTestSupport_IDL_INCLUDES}
+    FEATURES ${FEATURE_DEFINES_JAVASCRIPT}
+    DESTINATION ${DERIVED_SOURCES_WEBCORE_DIR}
+    GENERATOR JS)
</ins><span class="cx"> 
</span><del>-set(ADDITIONAL_BINDINGS_DEPENDENCIES
-    ${WINDOW_CONSTRUCTORS_FILE}
-    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-)
-
-GENERATE_BINDINGS(WebCore_DERIVED_SOURCES
-    &quot;${WebCore_IDL_FILES}&quot;
-    &quot;${WEBCORE_DIR}&quot;
-    &quot;${IDL_INCLUDES}&quot;
-    &quot;${FEATURE_DEFINES_JAVASCRIPT}&quot;
-    ${DERIVED_SOURCES_WEBCORE_DIR} JS JS cpp
-    ${IDL_ATTRIBUTES_FILE}
-    ${SUPPLEMENTAL_DEPENDENCY_FILE}
-    ${ADDITIONAL_BINDINGS_DEPENDENCIES})
-
-foreach (_include ${WebCoreTestSupport_IDL_INCLUDES})
-    list(APPEND IDL_INCLUDES --include=${WEBCORE_DIR}/${_include})
-endforeach ()
-
-GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
-    &quot;${WebCoreTestSupport_IDL_FILES}&quot;
-    &quot;${WEBCORE_DIR}&quot;
-    &quot;${IDL_INCLUDES}&quot;
-    &quot;${FEATURE_DEFINES_JAVASCRIPT}&quot;
-    ${DERIVED_SOURCES_WEBCORE_DIR} JS JS cpp
-    ${IDL_ATTRIBUTES_FILE})
-
</del><span class="cx"> # WebCore JS Builtins
</span><span class="cx"> 
</span><span class="cx"> set(WebCore_BUILTINS_SOURCES
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Source/WebCore/ChangeLog        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-09-15  Fujii Hironori  &lt;Hironori.Fujii@sony.com&gt;
+
+        [CMake] Refactor GENERATE_BINDINGS
+        https://bugs.webkit.org/show_bug.cgi?id=161854
+
+        Reviewed by Gyuyoung Kim.
+
+        * CMakeLists.txt: Changed the arguments of GENERATE_BINDINGS to
+        new style.  Removed add_custom_command of preprocess-idls.pl which
+        is moved to GENERATE_BINDINGS.  Moved IDL_ATTRIBUTES_FILE into
+        GENERATE_BINDINGS.
+
</ins><span class="cx"> 2016-09-14  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add CSS -webkit-appearance property for Apple Pay buttons
</span></span></pre></div>
<a id="trunkSourcecmakeWebKitMacroscmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/WebKitMacros.cmake (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/WebKitMacros.cmake        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Source/cmake/WebKitMacros.cmake        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -1,3 +1,5 @@
</span><ins>+include(CMakeParseArguments)
+
</ins><span class="cx"> macro(WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS)
</span><span class="cx">     set(_file ${CMAKE_CURRENT_SOURCE_DIR}/Platform${PORT}.cmake)
</span><span class="cx">     if (EXISTS ${_file})
</span><span class="lines">@@ -41,57 +43,84 @@
</span><span class="cx">     #FIXME: Add support for Xcode.
</span><span class="cx"> endmacro()
</span><span class="cx"> 
</span><del>-# 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 _extension _idl_attributes_file)
</del><ins>+# Helper macro which wraps preprocess-idls.pl and generate-bindings.pl scripts.
+#   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. ${WEBCORE_DIR}/bindings/js)
+#   FEATURES is a value of --defines argument.
+#   DESTINATION is a value of --outputDir argument.
+#   GENERATOR is a value of --generator argument.
+#   SUPPLEMENTAL_DEPFILE is a value of --supplementalDependencyFile. (optional)
+#   PP_EXTRA_OUTPUT is extra outputs of preprocess-idls.pl. (optional)
+#   PP_EXTRA_ARGS is extra arguments for preprocess-idls.pl. (optional)
+function(GENERATE_BINDINGS)
+    set(options)
+    set(oneValueArgs OUTPUT_SOURCE BASE_DIR FEATURES DESTINATION GENERATOR SUPPLEMENTAL_DEPFILE)
+    set(multiValueArgs INPUT_FILES IDL_INCLUDES PP_EXTRA_OUTPUT PP_EXTRA_ARGS)
+    cmake_parse_arguments(arg &quot;${options}&quot; &quot;${oneValueArgs}&quot; &quot;${multiValueArgs}&quot; ${ARGN})
+    set(binding_generator ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
+    set(idl_attributes_file ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
+    set(id ${arg_OUTPUT_SOURCE})
+    set(idl_files_list ${CMAKE_CURRENT_BINARY_DIR}/idl_files_${id}.tmp)
</ins><span class="cx">     set(_supplemental_dependency)
</span><del>-    set(_supplemental_dependency_file)
-    set(_additional_dependencies)
-    set(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
-    set(_args ${ARGN})
-    list(LENGTH _args _argCount)
-    if (_argCount GREATER 0)
-        list(GET _args 0 _supplemental_dependency_file)
-        if (_supplemental_dependency_file)
-            set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
</del><ins>+
+    set(content)
+    foreach (f ${arg_INPUT_FILES})
+        if (NOT IS_ABSOLUTE ${f})
+            set(f ${CMAKE_CURRENT_SOURCE_DIR}/${f})
</ins><span class="cx">         endif ()
</span><del>-        list(GET _args 1 _additional_dependencies)
</del><ins>+        set(content &quot;${content}${f}\n&quot;)
+    endforeach ()
+    file(WRITE ${idl_files_list} ${content})
+
+    if (arg_SUPPLEMENTAL_DEPFILE)
+        set(_supplemental_dependency --supplementalDependencyFile ${arg_SUPPLEMENTAL_DEPFILE})
+
+        add_custom_command(
+            OUTPUT ${arg_SUPPLEMENTAL_DEPFILE} ${arg_PP_EXTRA_OUTPUT}
+            DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${arg_INPUT_FILES}
+            COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines ${arg_FEATURES} --idlFilesList ${idl_files_list} --supplementalDependencyFile ${arg_SUPPLEMENTAL_DEPFILE} ${arg_PP_EXTRA_ARGS}
+            VERBATIM)
</ins><span class="cx">     endif ()
</span><span class="cx"> 
</span><del>-    set(COMMON_GENERATOR_DEPENDENCIES
-        ${BINDING_GENERATOR}
</del><ins>+    set(idl_includes)
+    foreach (dir ${arg_IDL_INCLUDES})
+        if (IS_ABSOLUTE ${dir})
+            list(APPEND idl_includes --include=${dir})
+        else ()
+            list(APPEND idl_includes --include=${CMAKE_CURRENT_SOURCE_DIR}/${dir})
+        endif ()
+    endforeach ()
+
+    set(common_generator_dependencies
+        ${binding_generator}
</ins><span class="cx">         ${WEBCORE_DIR}/bindings/scripts/CodeGenerator.pm
</span><span class="cx">         ${SCRIPTS_BINDINGS}
</span><del>-        ${_supplemental_dependency_file}
-        ${_idl_attributes_file}
</del><ins>+        ${arg_SUPPLEMENTAL_DEPFILE}
+        ${idl_attributes_file}
</ins><span class="cx">     )
</span><del>-    list(APPEND COMMON_GENERATOR_DEPENDENCIES ${_additional_dependencies})
</del><ins>+    list(APPEND common_generator_dependencies ${arg_PP_EXTRA_OUTPUT})
</ins><span class="cx"> 
</span><del>-    if (EXISTS ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${_generator}.pm)
-        list(APPEND COMMON_GENERATOR_DEPENDENCIES ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${_generator}.pm)
</del><ins>+    if (EXISTS ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${arg_GENERATOR}.pm)
+        list(APPEND common_generator_dependencies ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${arg_GENERATOR}.pm)
</ins><span class="cx">     endif ()
</span><span class="cx"> 
</span><del>-    foreach (_file ${_input_files})
</del><ins>+    set(gen_sources)
+    foreach (_file ${arg_INPUT_FILES})
</ins><span class="cx">         get_filename_component(_name ${_file} NAME_WE)
</span><span class="cx"> 
</span><span class="cx">         add_custom_command(
</span><del>-            OUTPUT ${_destination}/${_prefix}${_name}.${_extension} ${_destination}/${_prefix}${_name}.h
</del><ins>+            OUTPUT ${arg_DESTINATION}/JS${_name}.cpp ${arg_DESTINATION}/JS${_name}.h
</ins><span class="cx">             MAIN_DEPENDENCY ${_file}
</span><del>-            DEPENDS ${COMMON_GENERATOR_DEPENDENCIES}
-            COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines &quot;${_features}&quot; --generator ${_generator} ${_idl_includes} --outputDir &quot;${_destination}&quot; --preprocessor &quot;${CODE_GENERATOR_PREPROCESSOR}&quot; --idlAttributesFile ${_idl_attributes_file} ${_supplemental_dependency} ${_file}
-            WORKING_DIRECTORY ${_base_dir}
</del><ins>+            DEPENDS ${common_generator_dependencies}
+            COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${binding_generator} --defines ${arg_FEATURES} --generator ${arg_GENERATOR} ${idl_includes} --outputDir ${arg_DESTINATION} --preprocessor ${CODE_GENERATOR_PREPROCESSOR} --idlAttributesFile ${idl_attributes_file} ${_supplemental_dependency} ${_file}
+            WORKING_DIRECTORY ${arg_BASE_DIR}
</ins><span class="cx">             VERBATIM)
</span><del>-        list(APPEND ${_output_source} ${_destination}/${_prefix}${_name}.${_extension})
</del><ins>+        list(APPEND gen_sources ${arg_DESTINATION}/JS${_name}.cpp)
</ins><span class="cx">     endforeach ()
</span><del>-endmacro()
</del><ins>+    set(${arg_OUTPUT_SOURCE} ${${arg_OUTPUT_SOURCE}} ${gen_sources} PARENT_SCOPE)
+endfunction()
</ins><span class="cx"> 
</span><span class="cx"> macro(GENERATE_FONT_NAMES _infile)
</span><span class="cx">     set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Tools/ChangeLog        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-09-15  Fujii Hironori  &lt;Hironori.Fujii@sony.com&gt;
+
+        [CMake] Refactor GENERATE_BINDINGS
+        https://bugs.webkit.org/show_bug.cgi?id=161854
+
+        Reviewed by Gyuyoung Kim.
+
+        * DumpRenderTree/CMakeLists.txt: Changed the arguments of
+        GENERATE_BINDINGS to new style.
+        * WebKitTestRunner/CMakeLists.txt: Ditto.
+
</ins><span class="cx"> 2016-09-15  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Disable failing API WebKit2.DataDetectionReferenceDate until it can be investigated.
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/CMakeLists.txt (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/CMakeLists.txt        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Tools/DumpRenderTree/CMakeLists.txt        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -119,13 +119,14 @@
</span><span class="cx">     &quot;${WEBKIT_TESTRUNNER_UISCRIPTCONTEXT_DIR}/Bindings/UIScriptController.idl&quot;
</span><span class="cx"> )
</span><span class="cx"> 
</span><del>-GENERATE_BINDINGS(DumpRenderTree_SOURCES
-    &quot;${DumpRenderTree_IDL_FILES}&quot;
-    &quot;${DUMP_RENDER_TREE_BINDINGS_DIR}&quot;
-    &quot;--include=${WEBKIT_TESTRUNNER_UISCRIPTCONTEXT_DIR}/Bindings&quot;
-    &quot;${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;
-    ${DERIVED_SOURCES_DIR}/DumpRenderTree JS DumpRenderTree cpp
-    ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
</del><ins>+GENERATE_BINDINGS(
+    OUTPUT_SOURCE DumpRenderTree_SOURCES
+    INPUT_FILES ${DumpRenderTree_IDL_FILES}
+    BASE_DIR ${DUMP_RENDER_TREE_BINDINGS_DIR}
+    IDL_INCLUDES Bindings
+    FEATURES ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}
+    DESTINATION ${DERIVED_SOURCES_DIR}/DumpRenderTree
+    GENERATOR DumpRenderTree)
</ins><span class="cx"> 
</span><span class="cx"> WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/CMakeLists.txt (205981 => 205982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/CMakeLists.txt        2016-09-15 17:46:51 UTC (rev 205981)
+++ trunk/Tools/WebKitTestRunner/CMakeLists.txt        2016-09-15 17:48:05 UTC (rev 205982)
</span><span class="lines">@@ -97,21 +97,23 @@
</span><span class="cx">     &quot;${WEBKIT_TESTRUNNER_UISCRIPTCONTEXT_DIR}/Bindings/UIScriptController.idl&quot;
</span><span class="cx"> )
</span><span class="cx"> 
</span><del>-GENERATE_BINDINGS(WebKitTestRunnerInjectedBundle_SOURCES
-    &quot;${WebKitTestRunnerInjectedBundle_IDL_FILES}&quot;
-    &quot;${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings&quot;
-    &quot;--include=${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings&quot;
-    &quot;${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;
-    ${DERIVED_SOURCES_DIR}/InjectedBundle JS TestRunner cpp
-    ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
</del><ins>+GENERATE_BINDINGS(
+    OUTPUT_SOURCE WebKitTestRunnerInjectedBundle_SOURCES
+    INPUT_FILES ${WebKitTestRunnerInjectedBundle_IDL_FILES}
+    BASE_DIR ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings
+    IDL_INCLUDES ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings
+    FEATURES ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}
+    DESTINATION ${DERIVED_SOURCES_DIR}/InjectedBundle
+    GENERATOR TestRunner)
</ins><span class="cx"> 
</span><del>-GENERATE_BINDINGS(WebKitTestRunner_SOURCES
-    &quot;${WebKitTestRunner_IDL_FILES}&quot;
-    &quot;${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings&quot;
-    &quot;--include=${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings&quot;
-    &quot;${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;
-    ${DERIVED_SOURCES_DIR}/UIScriptContext JS TestRunner cpp
-    ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
</del><ins>+GENERATE_BINDINGS(
+    OUTPUT_SOURCE WebKitTestRunner_SOURCES
+    INPUT_FILES ${WebKitTestRunner_IDL_FILES}
+    BASE_DIR ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings
+    IDL_INCLUDES ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/Bindings
+    FEATURES ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}
+    DESTINATION ${DERIVED_SOURCES_DIR}/UIScriptContext
+    GENERATOR TestRunner)
</ins><span class="cx"> 
</span><span class="cx"> WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>