That is more along the lines of what I was looking for. Thanks! :)<div><br></div><div>One further question: Using the technique you describe, the dependency file will need to be regenerated each time a source file changes - i.e. if I add a new &quot;import&quot; statement to a source file, the list of dependencies will change, which will require the dependency file to be rebuilt. Can that rebuild happen as part of the normal build, or can that only be done at CMake time?</div>

<div><br></div><div>More generally, I know of two different approaches to generating dependency lists: pre-build and post-build. With pre-build, you have some scanner that parses the source before compilation and spits out a list of dependencies. With post-build, the compiler emits a list of the dependencies that were actually used during compilation. This file is used during the next build. If the dependency file is missing (which it will be the first time), then the target is built unconditionally. Post-build is significantly easier to implement when you have languages such as Java which allows for implicit imports or when you have a language that requires a very smart scanner to determine in advance what files will be needed.</div>

<br><div class="gmail_quote">On Wed, Dec 30, 2009 at 11:21 AM, Alan W. Irwin <span dir="ltr">&lt;<a href="mailto:irwin@beluga.phys.uvic.ca">irwin@beluga.phys.uvic.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On 2009-12-30 10:42-0800 Talin wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I guess what I am asking is - if I modified my build script to generate a<br>
text file (Makefile, CMakeLists.txt or whatever) containing the<br>
dependencies, would CMake be able to use it? I know that with GNU makefiles<br>
there is a way to generate additional makefiles as part of the build process<br>
(although it is rather complex and clumsy), I wonder if CMake can support<br>
something similar?<br>
</blockquote>
<br></div>
Sorry for entering this conversation late, but I want to make the point that<br>
you can essentially do anything related to builds that you like with CMake.<br>
I presume (since your language is not officially supported by CMake) that<br>
you are building libraries and executables with add_custom_command, and you<br>
want some way to get the right file dependencies in the DEPENDS of that<br>
add_custom_command.<br>
<br>
Here is one way to do that.<br>
<br>
At cmake time, you run execute_process to generate the file with<br>
lists of dependent files, then use file(READ...) and string parsing to<br>
create a CMake list variable containing those file dependencies.  Then<br>
use that variable as the object of the add_custom_command DEPENDS, and<br>
you are done.<br>
<br>
Another way to do this that skips the file(READ...) and string parsing steps<br>
is to have your external dependency generation script that you execute with<br>
execute_process create a file that contains the single line of CMake logic,<br>
<br>
set(LANGUAGE_DEPENDS depend1 depend2 ... dependn)<br>
<br>
You then simply include that file and use<br>
<br>
add_custom_command(... DEPENDS ${LANGUAGE_DEPENDS})<br>
<br>
I hope these ideas help.<br>
<br>
Alan<br>
__________________________<br>
Alan W. Irwin<br>
<br>
Astronomical research affiliation with Department of Physics and Astronomy,<br>
University of Victoria (<a href="http://astrowww.phys.uvic.ca" target="_blank">astrowww.phys.uvic.ca</a>).<br>
<br>
Programming affiliations with the FreeEOS equation-of-state implementation<br>
for stellar interiors (<a href="http://freeeos.sf.net" target="_blank">freeeos.sf.net</a>); PLplot scientific plotting software<br>
package (<a href="http://plplot.org" target="_blank">plplot.org</a>); the libLASi project (<a href="http://unifont.org/lasi" target="_blank">unifont.org/lasi</a>); the Loads of<br>
Linux Links project (<a href="http://loll.sf.net" target="_blank">loll.sf.net</a>); and the Linux Brochure Project<br>
(<a href="http://lbproject.sf.net" target="_blank">lbproject.sf.net</a>).<br>
__________________________<br>
<br>
Linux-powered Science<br>
__________________________<br>
</blockquote></div><br><br clear="all"><br>-- <br>-- Talin<br>