<br><br><div class="gmail_quote">On Thu, Apr 23, 2009 at 6:50 PM, James Bigler <span dir="ltr">&lt;<a href="mailto:jamesbigler@gmail.com">jamesbigler@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5"><div class="gmail_quote">On Thu, Apr 23, 2009 at 9:39 AM, James Bigler <span dir="ltr">&lt;<a href="mailto:jamesbigler@gmail.com" target="_blank">jamesbigler@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div></div><div><div class="gmail_quote">On Thu, Apr 23, 2009 at 6:50 AM, Nikolay Mitev <span dir="ltr">&lt;<a href="mailto:face.mitev@gmail.com" target="_blank">face.mitev@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div class="gmail_quote"><div><div></div><div>[posting to the list, since I accidentally replied only to Sergey]<div><br>On Thu, Apr 23, 2009 at 1:48 PM, Sergey Rudchenko <span dir="ltr">&lt;<a href="mailto:sergey.rudchenko@gmail.com" target="_blank">sergey.rudchenko@gmail.com</a>&gt;</span> wrote:<br>




<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div>On Thu, 2009-04-23 at 13:37 +0300, Nikolay Mitev wrote:<br>
&gt; Hi<br>
&gt;<br>
&gt; I have the following situation:<br>
&gt;<br>
&gt; files: test.cpp test.h<br>
&gt;<br>
&gt; I want to process the file test.cpp with a custom pre-processor which<br>
&gt; will generate, say, test.ii.cpp which will get compiled into<br>
&gt; libtest.a. test.cpp just includes test.h.<br>
&gt;<br>
&gt; This is my CMakeLists.txt file:<br>
&gt;<br>
&gt; cmake_minimum_required(VERSION 2.6)<br>
&gt;<br>
&gt; add_custom_command (OUTPUT test.ii.cpp<br>
&gt;   COMMAND preprocess test.cpp test.ii.cpp<br>
&gt;   DEPENDS test.cpp<br>
&gt;   COMMENT &quot;Creating test.ii.cpp&quot;<br>
&gt;   VERBATIM)<br>
&gt;<br>
&gt; add_library (test test.ii.cpp)<br>
&gt;<br>
&gt; All dandy, but when I modify test.h the preprocessing step is not run,<br>
&gt; but just the compile step for test.ii.cpp. How can I make it so, that<br>
&gt; when the header is modified the preprocessing and the compilation<br>
&gt; steps are both run?<br>
<br>
</div></div>Did you try to list the test.h in the DEPENDS list?<br>
<font color="#888888"></font></blockquote></div></div></div><div><br>Yes, and this works, but I really don&#39;t want to keep this list up-to-date manually. The project involves hundreds of files, so I&#39;m looking for a way to automate this. Is there a way to extract the dependencies of test.cpp and make test.ii.cpp depend on them?<br>





<font color="#888888"><br></font></div></div><br>Nikolay<br>
</div><br>
</blockquote></div><br></div></div>If you have a C or CXX language file look the documentation for add_custom_command and IMPLICIT_DEPENDS.<br><font color="#888888"><br>James<br>
</font></blockquote></div><br></div></div>I just realized that IMPLICIT_DEPENDS only works for the Makefile generator.  If you need a more general solution, it requires a much bigger hammer.  I have a cmake script that generates the dependency file (i.e. -M) and does a bunch of CMake magic to maintain that dependency file and encorporate those dependencies into the build system.<br>
<font color="#888888">

<br>James<br>
</font></blockquote></div><br>IMPLICIT_DEPENDS works for me, for now, since I&#39;m targeting unix platforms. But a more generic solution would be really nice to have.<br><br>Nikolay<br><br>