<div class="gmail_quote">On Fri, Jan 15, 2010 at 9:44 AM, Marcel Loose <span dir="ltr">&lt;<a href="mailto:loose@astron.nl">loose@astron.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Jack,<br>
<br>
The difference with your and my case is that you have an input file<br>
(the .xsd file) and output files (the .h and .cpp files). In my case I<br>
generate the output file, e.g. myheader.h, from <a href="http://myheader.h.in" target="_blank">myheader.h.in</a>, using<br>
configure_file(). The problem is that I cannot get this to work during<br>
&#39;make&#39;, only during &#39;cmake&#39;.<br>
<br>
Best regards,<br>
Marcel Loose.<br>
<br>
On Fri, 2010-01-15 at 15:04 +0100, Smith Jack (Ext. - UGIS - UniCredit<br>
<div><div></div><div class="h5">Group) wrote:<br>
&gt; I do a similar thing with an XSD file from which I generate c++<br>
wrapper classes for accessing the corresponding XML<br>
&gt;<br>
&gt; Note the DEPENDS line !<br>
&gt;<br>
&gt; MACRO(XSD FILE NAMESPACE)<br>
&gt;     ADD_CUSTOM_COMMAND(<br>
&gt;         OUTPUT  ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.cpp<br>
&gt;         OUTPUT  ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.h<br>
&gt;         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.xsd<br>
&gt;         COMMAND ${XAPI_CODESYNTH}/bin/xsd<br>
&gt;         ARGS cxx-tree --generate-serialization --hxx-suffix .h<br>
--cxx-suffix .cpp --fwd-suffix -fwd.hxx --type-naming java<br>
--function-naming java --namespace-map =${NAMESPACE}<br>
--generate-polymorphic --output-dir ${CMAKE_CURRENT_SOURCE_DIR}/xml<br>
${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.xsd<br>
&gt;         COMMENT &quot;generating Codesynthesis Wrappers&quot;)<br>
&gt; ENDMACRO(XSD)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt; -----Original Message-----<br>
&gt; &gt; From: <a href="mailto:cmake-bounces@cmake.org">cmake-bounces@cmake.org</a><br>
&gt; &gt; [mailto:<a href="mailto:cmake-bounces@cmake.org">cmake-bounces@cmake.org</a>] On Behalf Of Marcel Loose<br>
&gt; &gt; Sent: Friday, January 15, 2010 2:55 PM<br>
&gt; &gt; To: <a href="mailto:cmake@cmake.org">cmake@cmake.org</a><br>
&gt; &gt; Subject: [CMake] How to regenerate source file during make?<br>
&gt; &gt;<br>
&gt; &gt; Hi all,<br>
&gt; &gt;<br>
&gt; &gt; I&#39;ve been struggling with this for hours now and I can&#39;t seem<br>
&gt; &gt; to get a grip on it.<br>
&gt; &gt;<br>
&gt; &gt; I have a header file that must be (re)generated during &#39;make&#39;<br>
&gt; &gt; when some external data have changed. I can successfully<br>
&gt; &gt; generate this file during &#39;cmake&#39; using configure_file(), but<br>
&gt; &gt; I haven&#39;t been able to figure out how I can trigger the<br>
&gt; &gt; configure_file() during make.<br>
&gt; &gt;<br>
&gt; &gt; Should I define a target for this header file? Or can I<br>
&gt; &gt; specify some kind of file dependency, such that when the<br>
&gt; &gt; header file is missing our out-of-date, it will be (re)generated?<br>
&gt; &gt;<br>
&gt; &gt; I guess it must be some clever combination of<br>
&gt; &gt; add_custom_command() and add_custom_target().<br>
&gt; &gt;<br>
&gt; &gt; Best regards,<br>
&gt; &gt; Marcel Loose.<br></div></div></blockquote><div><br></div><div>This should work already: if you change <a href="http://my_header.h.in">my_header.h.in</a> then cmake should re-run to re-configure your file at &#39;make&#39; time.</div>
<div><br></div><div>If you have additional dependencies that should trigger a re-configure, you should probably convert it to an add_custom_command such that it happens at build time.</div></div>