On 10. Sep, 2010, at 12:38 , David Aldrich wrote: > Hi Michael > > Thanks for your help. Please see question below. > >> CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) >> PROJECT(GENDEP C) >> FILE(WRITE ${CMAKE_BINARY_DIR}/g.c "void g(void){}\n") >> ADD_CUSTOM_COMMAND( >> OUTPUT ${CMAKE_BINARY_DIR}/f.c >> COMMAND echo "void f(void){}" > ${CMAKE_BINARY_DIR}/f.c >> DEPENDS ${CMAKE_BINARY_DIR}/g.c >> VERBATIM) >> FILE(WRITE ${CMAKE_BINARY_DIR}/main.c "int main(void){f();return 0;}\n") >> ADD_EXECUTABLE(main main.c f.c) >> >> "f.c" is regenerated and, thus, "main" rebuilt if "g.c" is touched >> although it's not incorporated in "main". > > In my case, the dependencies of the f.c will be all the dependencies of main. > i.e. if any source file contributing to the exe changes we must first > regenerate f.c. > > Now our executable depends on many source files. I assume you are saying that > I need to add the same list of dependencies to the ADD_CUSTOM_COMMAND. Can I > specify a list of files further up in CMakeLists.txt so that I only need to > enumerate the list once? > > Regards > > David
set(SRCS a.c b.c d.c e.c) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/f.c COMMAND ... DEPENDS ${SRCS} COMMENT "Generating f.c" VERBATIM) list(APPEND SRCS ${CMAKE_BINARY_DIR}/f.c) add_executable(main ${SRCS}) HTH Michael -- There is always a well-known solution to every human problem -- neat, plausible, and wrong. H. L. Mencken
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ 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