[CMake] ADD_CUSTOM_COMMAND doesn't work as expected
Brad King
brad.king at kitware.com
Thu Jul 20 09:30:05 EDT 2006
Christian Ehrlicher wrote:
>>> Hi,
>>>
>>> I'm creating some files with ADD_CUSTOM_COMMAND. Those files are not
>>> compileable but later needed for install.
>>> They're created fine when I use msvc generator but they aren't created
>>> with mingw or on linux.
>>>
>>> ADD_CUSTOM_COMMAND(
>>> OUTPUT ${_out}
>>> COMMAND prog ${_in} ${_out}
>>> DEPENDS ${_in}
>>> )
>>> ...
>>> ADD_EXECUTABLE(main WIN32 ${_out})
>>>
>>> Why does it work with msvc and how can I fix this if the above is not
>>> allowed (and it works accidently for msvc)
>>
>> What kind of files are these ?
>> Ideally you should add them to the list of sources for the target. If they
>> don't have a source-file suffix, they won't be compiled. Or you could use
>> add_custom_command( main POSTBUILD COMMAND ...) so they will be built after
>> your executable has been built.
>>
> They're non source files and also the suffix isn't a source-file suffix.
> I've now used your suggestion and it doesn't work like as I need.
> - when I delete one of the generated files, they're not rebuild on next make run (and make install fails I think), PRE_BUILD doesn't work either
> - when one of the sources changed, it isn't rebuild
> - when executable is rebuild, all generated files are rebuild (but there is no need to rebuild them)
>
> And why does my first solution works with msvc ide? Couldn't this simply extended to work on all generators?
The first solution is correct. This was a bug in the Makefile
generator. It was fixed in CVS a few weeks ago and will be in 2.4.3.
-Brad
More information about the CMake
mailing list