[CMake] ADD_CUSTOM_COMMAND() without anything else: dangling dependency?
Alexander Neundorf
a.neundorf-work at gmx.net
Sun Mar 14 08:25:14 EDT 2010
On Sunday 14 March 2010, joerg.faschingbauer at aon.at wrote:
> Hi,
>
> I use ADD_CUSTOM_COMMAND() to generate a header file in one directory.
> That header file is included from a source file in another directory,
> which is then aggregated into a library. The dependency is stated via
> an OBJECT_DEPENDS property. Like,
>
> in one directory 'generated-headers',
>
> ADD_CUSTOM_COMMAND(
> OUTPUT generated-header.h
> COMMAND touch generated-header.h
> )
>
> and, in the library directory,
>
> INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/generated-headers)
> ADD_LIBRARY(
> library
> library.c
> )
> SET_PROPERTY(
> SOURCE library.c
> PROPERTY OBJECT_DEPENDS
> ${CMAKE_BINARY_DIR}/generated-headers/generated-header.h)
>
> CMake doesn't seem to generate any targets for the generated-headers
> directory, resulting in
>
> Scanning dependencies of target library
> make[2]: *** No rule to make target `generated-headers/generated-header.h',
> needed by `library/CMakeFiles/library.dir/library.c.o'. Stop.
>
> What am I doing wrong?
The dependencies for generated files from add_custom_command() work only in
that directory itself, AFAIK.
If you depend on the generated header in some other directory you have to do
something else.
E.g. depend on a library which depends on this generated header or create a
custom target in the director which depends on the generated header and then
depend on this custom target.
Alex
More information about the CMake
mailing list