<!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>[207311] 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/207311">207311</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2016-10-13 14:48:43 -0700 (Thu, 13 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CMake] Split the definition of CODE_GENERATOR_PREPROCESSOR so it can be used in a custom command
https://bugs.webkit.org/show_bug.cgi?id=163401

Reviewed by Michael Catanzaro.

In another patch, we need to use CODE_GENERATOR_PREPROCESSOR as the COMMAND argument
when defining an add_custom_command. Previously, it has only been used as a quoted argument
to various Perl code generation scripts.

To support both use cases, we need to be able to provide the executable and its arguments as
an unbroken quoted string, and as a CMake list suitable for passing as an argument to COMMAND.

* Source/cmake/OptionsCommon.cmake:
Split out the executable and argument string into separate variables that can be used elsewhere.
Compute the final unbroken quoted string using the two separate variables to arrive at the same result.

* Source/cmake/WebKitMacros.cmake:
Drive-by cleanup to add quotes around the use of CODE_GENERATOR_PREPROCESSOR so it matches other uses.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkSourcecmakeOptionsCommoncmake">trunk/Source/cmake/OptionsCommon.cmake</a></li>
<li><a href="#trunkSourcecmakeWebKitMacroscmake">trunk/Source/cmake/WebKitMacros.cmake</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (207310 => 207311)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2016-10-13 21:41:01 UTC (rev 207310)
+++ trunk/ChangeLog        2016-10-13 21:48:43 UTC (rev 207311)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2016-10-13  Brian Burg  &lt;bburg@apple.com&gt;
+
+        [CMake] Split the definition of CODE_GENERATOR_PREPROCESSOR so it can be used in a custom command
+        https://bugs.webkit.org/show_bug.cgi?id=163401
+
+        Reviewed by Michael Catanzaro.
+
+        In another patch, we need to use CODE_GENERATOR_PREPROCESSOR as the COMMAND argument
+        when defining an add_custom_command. Previously, it has only been used as a quoted argument
+        to various Perl code generation scripts.
+
+        To support both use cases, we need to be able to provide the executable and its arguments as
+        an unbroken quoted string, and as a CMake list suitable for passing as an argument to COMMAND.
+
+        * Source/cmake/OptionsCommon.cmake:
+        Split out the executable and argument string into separate variables that can be used elsewhere.
+        Compute the final unbroken quoted string using the two separate variables to arrive at the same result.
+
+        * Source/cmake/WebKitMacros.cmake:
+        Drive-by cleanup to add quotes around the use of CODE_GENERATOR_PREPROCESSOR so it matches other uses.
+
</ins><span class="cx"> 2016-10-12  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Web IDL] Drop support for legacy [ConstructorConditional=*]
</span></span></pre></div>
<a id="trunkSourcecmakeOptionsCommoncmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/OptionsCommon.cmake (207310 => 207311)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/OptionsCommon.cmake        2016-10-13 21:41:01 UTC (rev 207310)
+++ trunk/Source/cmake/OptionsCommon.cmake        2016-10-13 21:48:43 UTC (rev 207311)
</span><span class="lines">@@ -8,11 +8,19 @@
</span><span class="cx"> if (MSVC)
</span><span class="cx">     # FIXME: Some codegenerators don't support paths with spaces. So use the executable name only.
</span><span class="cx">     get_filename_component(CODE_GENERATOR_PREPROCESSOR_EXECUTABLE ${CMAKE_CXX_COMPILER} ABSOLUTE)
</span><del>-    set(CODE_GENERATOR_PREPROCESSOR &quot;\&quot;${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE}\&quot; /nologo /EP&quot;)
-    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS &quot;${CODE_GENERATOR_PREPROCESSOR}&quot;)
</del><ins>+
+    set(CODE_GENERATOR_PREPROCESSOR_ARGUMENTS &quot;/nologo /EP&quot;)
+    set(CODE_GENERATOR_PREPROCESSOR &quot;\&quot;${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE}\&quot; ${CODE_GENERATOR_PREPROCESSOR_ARGUMENTS}&quot;)
+
+    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS ${CODE_GENERATOR_PREPROCESSOR})
</ins><span class="cx"> else ()
</span><del>-    set(CODE_GENERATOR_PREPROCESSOR &quot;${CMAKE_CXX_COMPILER} -E -P -x c++&quot;)
-    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS &quot;${CMAKE_CXX_COMPILER} -E -x c++&quot;)
</del><ins>+    set(CODE_GENERATOR_PREPROCESSOR_EXECUTABLE ${CMAKE_CXX_COMPILER})
+
+    set(CODE_GENERATOR_PREPROCESSOR_ARGUMENTS &quot;-E -P -x c++&quot;)
+    set(CODE_GENERATOR_PREPROCESSOR &quot;${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE} ${CODE_GENERATOR_PREPROCESSOR_ARGUMENTS}&quot;)
+
+    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS_ARGUMENTS &quot;-E -x c++&quot;)
+    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS &quot;${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE} ${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS_ARGUMENTS}&quot;)
</ins><span class="cx"> endif ()
</span><span class="cx"> 
</span><span class="cx"> option(USE_THIN_ARCHIVES &quot;Produce all static libraries as thin archives&quot; ON)
</span></span></pre></div>
<a id="trunkSourcecmakeWebKitMacroscmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/WebKitMacros.cmake (207310 => 207311)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/WebKitMacros.cmake        2016-10-13 21:41:01 UTC (rev 207310)
+++ trunk/Source/cmake/WebKitMacros.cmake        2016-10-13 21:48:43 UTC (rev 207311)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">             OUTPUT ${arg_DESTINATION}/JS${_name}.cpp ${arg_DESTINATION}/JS${_name}.h
</span><span class="cx">             MAIN_DEPENDENCY ${_file}
</span><span class="cx">             DEPENDS ${common_generator_dependencies}
</span><del>-            COMMAND ${PERL_EXECUTABLE} ${binding_generator} --defines ${arg_FEATURES} --generator ${arg_GENERATOR} ${idl_includes} --outputDir ${arg_DESTINATION} --preprocessor ${CODE_GENERATOR_PREPROCESSOR} --idlAttributesFile ${idl_attributes_file} ${_supplemental_dependency} ${_file}
</del><ins>+            COMMAND ${PERL_EXECUTABLE} ${binding_generator} --defines ${arg_FEATURES} --generator ${arg_GENERATOR} ${idl_includes} --outputDir ${arg_DESTINATION} --preprocessor &quot;${CODE_GENERATOR_PREPROCESSOR}&quot; --idlAttributesFile ${idl_attributes_file} ${_supplemental_dependency} ${_file}
</ins><span class="cx">             WORKING_DIRECTORY ${arg_BASE_DIR}
</span><span class="cx">             VERBATIM)
</span><span class="cx">         list(APPEND gen_sources ${arg_DESTINATION}/JS${_name}.cpp)
</span></span></pre>
</div>
</div>

</body>
</html>