[CMake] add_custom_command and CONFIG-dependent output
Braden McDaniel
braden at endoframe.com
Mon Aug 25 01:53:00 EDT 2014
On Fri, 2014-08-22 at 16:58 -0400, David Cole via CMake wrote:
> Use "${CMAKE_CFG_INTDIR}" in the context of add_custom_command OUTPUT,
> not $<CONFIG>.
>
> You may also use that in the COMMAND arguments.
>
> See documentation here:
> http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_CFG_INTDIR.html
>
> The $<> generator expressions are relatively new, and do not work in
> all contexts that you might expect yet. CMAKE_CFG_INTDIR has been
> around for quite some time, though, and works very well with custom
> commands.
Ah, thanks... Though, I think there may be a general disconnect here:
that is, it seems likely that one would want to construct output with a
pattern composed from generator expressions. For instance, in a
subsequent rule I attempted to do this:
set(LIB "$<TARGET_FILE:${LIBRARY_TARGET}>")
set(STAGED_LIB "${LIB_STAGEDIR}/$<TARGET_FILE_NAME:${LIBRARY_TARGET}>")
add_custom_command(
OUTPUT ${STAGED_LIB}
COMMAND ${CMAKE_COMMAND} -E copy ${LIB} ${STAGED_LIB}
MAIN_DEPENDENCY ${LIB_STAGEDIR}
)
... which obviously has the same problem.
While I gather from your comment that something like this might be
possible in the future, is there some other general approach that can be
taken with current CMake?
Braden
More information about the CMake
mailing list