Thanks for answering my question.

2009/5/27 Tyler Roscoe <[email protected]>

> On Wed, May 27, 2009 at 11:01:51PM +0000, [email protected] wrote:
> > foo.h is generated from foo.x. And foo.h is included by bar.h. And then
> > bar.h is included by a lot of c files. So actually every c files
> including
> > bar.h depends on foo.h.
> > But the file number is so big that I don't want to add dependency for
> each
> > one.
>
> CMake knows how to resolve these header dependencies. So any file that
> #includes (or #includes something that #includes) foo.h will be
> recompiled if foo.h changes. You don't need to do anything else for this
> part.


The problem I ran into when using add_custom_command is that C files will be
compiled before foo.h is generated and the compilation will fail.

Oh, maybe it's because the foo.h is actually named as foo_blahblah_h. I'll
give it a try.

>
>
> > How can I specify foo.x is generated before all the c files being
> compiled?
> > It seems add_custom_target works but it will regenerate foo.h every time
> > even the foo.x is not modified.
>
> If your custom_target() has correct OUTPUT and DEPENDS parameters, this
> should not happen. Are you specifying ALL in your add_custom_target()?


The manual doesn't mention OUTPUT can be specified in add_custom_target. And
it reads that "(The target) is ALWAYS CONSIDERED OUT OF DATE even if the
commands try to create a file with the name of the target.".

>
>
> tyler
>
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to