On Thursday 28 May 2009, [email protected] wrote:
> Hi,
>
> This situation is:
>
> 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.
>
> 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.

You should use 
add_custom_command(OUTPUT <fullpath>/foo.h 
                   ... )

and then list that generated file as a source file for your target:

add_library(blub <fullpath>/foo.h foo.c bar.c ...)

This should make sure that everything is up to date.

The header-file dependency scanning does in general not work for generated 
files, you need to list the generated file as source file for the targets 
which need it.

Alex
_______________________________________________
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