[CMake] add_custom_command issue

Michael Wild themiwi at gmail.com
Mon Mar 1 03:00:53 EST 2010


On 1. Mar, 2010, at 8:54 , Surya Kiran Gullapalli wrote:

> Hello all,
> I'm struggling with add_custom_command. Let me explain the problem in
> detail.
> 
> I've these set of cxx files and hxx files. I run a perl script on each of
> them to generate a certain kind of translation file. The command looks like
> 
> *perl trans.pl source.cxx -o source_cxx_tro*
> *
> *
> and similarly for header.hxx files as well.
> 
> So I'll end up with some multiple commands (each for a file)
> 
> Then I run another perl scripn on the output generated from these commands
> (source_cxx_tro, header_hxx_tro)
> 
> *perl combine.pl source_cxx_tro header_hxx_tro -o dir.trx*
> *
> *
> *dir.trx* is the output file.
> 
> I've something like this.
> 
> *Loop_Over_All_Files()*
> *Add_Custom_Command (OUTPUT ${trofile} COMMAND perl trans.pl ${file} -o
> ${file_tro})*
> *List (APPEND trofiles ${file_tro})*
> *End_Loop()*
> 
> *Add_Custom_Command (TARGET LibraryTarget POST_BUILD COMMAND perl
> combine.pl${trofiles} -o LibraryTarget.trx)
> *
> 
> What I expect is when building the post build target, the trofiles will be
> built first. but it is not the case. The ${trofiles} are not getting built
> and hence the post build command ends in a failure.
> Is there any way I can tell the POST_BUILD command depend on the previous
> custom command ?
> 
> Any suggestions ?
> 
> Thanks in advance,
> Surya


add_custom_target(TroFilesTarget DEPENDS ${trofiles})
add_dependencies(LibraryTarget TroFilesTarget)


HTH

Michael


More information about the CMake mailing list