[CMake] problem with add_custom command

Michael Wild themiwi at gmail.com
Wed Mar 25 05:12:14 EDT 2009


On 25. Mar, 2009, at 9:33, ankit jain wrote:

> 2009/3/25 Michael Wild <themiwi at gmail.com>

[...]

>>
>> What I usually do is this:
>>
>> add_custom_command( OUTPUT ${TARDIR}/t1
>> COMMAND ${CMAKE_COMMAND} -E tar xvf ${TARDIR}/mytar.tar
>> WORKING_DIRECTORY ${TARDIR}
>> COMMENT "Extracting ${TARDIR}/mytar.tar"
>> VERBATIM
>> )
>>
>> add_custom_target( extract_mytar
>> DEPENDS ${TARDIR}/t1
>> )
>>
>> This tells CMake how to obtain the file ${TARDIR}/t1 by unpacking
>> mytar.tar. Then it adds a target which depends on that file. You  
>> then can
>> have other targets depend on that by using add_dependencies.
>>
>
>
> Thanks for your suggestions it works but the problem is that iam  
> making a
> library which requires some source files which will come after  
> extracting it
> from tar.
>
> In that making an custom target for it and then add_dependencies to  
> that
> library to this custom build target does not solve the purpose.
>
> then how to include those files which is required by the library  
> which came
> from tar.


if you add all the files from the tar archive to the OUTPUT list of  
add_custom_command, CMake should automatically set the GENERATED  
property of those file to TRUE. If you don't want to do that, you  
still can set that property manually, using e.g.:

set_source_files_properties( ${TARDIR}/t1 ${TARDIR}/t2 PROPERTIES  
GENERATED TRUE )

you then can use those files in a normal add_library or add_executable  
command. if you use the first approach (listing all files in the  
OUTPUT list), you don't even need the custom target, since CMake then  
will know how to "create" these files (by invoking the custom command).


michael


More information about the CMake mailing list