I want to make an executable depend on output of a custom command. The
custom command just copies a file to a place where the executable will be
able to find it. I find that I can't get a dependency between an
executable and, essentially, a file to work.
For example, this doesn't work:
ADD_EXECUTABLE(foo ${foo_SOURCES} ${foo_HEADERS})
ADD_CUSTOM_COMMAND(
OUTPUT "${PROJECT_BINARY_DIR}/bar.ini"
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/bar.ini"
"${PROJECT_BINARY_DIR}"
DEPENDS "${PROJECT_SOURCE_DIR}/bar.ini"
COMMENT "Localizing \"bar.ini\"")
ADD_DEPENDENCIES(foo "${PROJECT_BINARY_DIR}/bar.ini")
I know it'll work if I was generating a source file and feeding that into
${foo_SOURCES}, but that didn't seem like the right thing to do.
I can also get it to work if I add another target like so:
ADD_EXECUTABLE(foo ${foo_SOURCES} ${foo_HEADERS})
ADD_CUSTOM_COMMAND(
OUTPUT "${PROJECT_BINARY_DIR}/bar.ini"
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/bar.ini"
"${PROJECT_BINARY_DIR}"
DEPENDS "${PROJECT_SOURCE_DIR}/bar.ini"
COMMENT "Localizing \"bar.ini\"")
ADD_CUSTOM_TARGET(copy_bar.ini DEPENDS "${PROJECT_BINARY_DIR}/bar.ini")
ADD_DEPENDENCIES(foo copy_bar.ini)
So do I have to have this additional indirection with the extra target? I
have way too many targets as is. Is there anyway to get the first approach
to work? It's like I need to add a file to ${foo_SOURCES} or
${foo_HEADERS} that isn't compiled or that doesn't show up in the IDE. And
can this be done after the ADD_EXECUTABLE call, or does it have to be
before?
-------------------------------------------------------------
Aaron Wright
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake