[CMake] Outputs from add_custom_command not global?
James Bigler
jamesbigler at gmail.com
Sat Mar 28 19:26:28 EDT 2009
Below.
On Mar 28, 2009, at 12:21 PM, Tyler Roscoe <tyler at cryptio.net> wrote:
> On Sat, Mar 28, 2009 at 12:16:21AM -0600, James Bigler wrote:
>> I have an add_custom_command in a subdirectory, and I'm trying to use
>> that output as a dependency in a parent directory.
>>
>> Unfortunately, the parent directory doesn't see that I made a rule
>> (add_custom_command) for the file in the subdirectory.
>>
>>
>> top level CMakeLists.txt:
>> ...
>> add_subdirectory(sub1)
>>
>> add_custom_target(generate ALL
>> DEPENDS ${CMAKE_BINARY_DIR}/myfile.txt
>> )
>>
>> sub1/CMakeLists.txt:
>> add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/myfile.txt
>> COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/
>> genmyfile.cmake
>> WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
>> )
>
> I would just do the add_custom_target in the same CMakeLists where you
> do the add_custom_command. That target will still be available from
> your
> top-level CMakeLists. I use this approach all over the place.
>
> tyler
Unfortunately, I have several directories that all pool their files
into the same target. I don't want to have a single target per file as
this would clutter up Visial Studio projects quite quickly.
Unless there's a different way to make the add_custom_command behave
globally I'll have to somehow call this function only from the
directory I call add_custom_target from. :(
Thanks,
James
More information about the CMake
mailing list