Dear All, here I am again. I still have a problem with cmake dependencies which is a bit complicated (for me at least). I really apologise in advance if what follows is not clear, but I do need your help here. I have a coding convention checker tool that runs on all the source files to check the code for coding convention violations. The codebase is quite large (~2MLOC) and very dynamic, as there are hundreds of people that can check in. The code itself is organised in a set of subdirectories where files come and go. The dependency schema is the following
source.viol depends on source.h.xml, source.cxx.xml, ${CMAKE_BINARY_DIR}/factFile.xml source.h.xml depends on source.h source.cxx.xml depends on source.cxx and source.h ${CMAKE_BINARY_DIR}/factFile.xml depends on ALL the source.h.xml in ALL subdirectories creating the source.{h,cxx}.xml is quite easy, however I do not manage to express the dependency of the viol file. I do not even manage to express the dependencies of the factFile.xml correctly. One of the problems for me is that once I am inside a directory, I am not able to add file-level dependencies to a file target defined in the "upper" scope. As far as I understood, when you define a file target with ADD_CUSTOM_COMMAND(OUTPUT... COMMAND ... DEPENDS...) you cannot "add" to the depends as you go, because ADD_DEPENDENCIES takes a top level target as first argument. I cannot even add to a list, because there is no way to see the same variable in a ADD_SUBDIRECTORY command and in the calling scope. But even if I would manage to do so, let's say writing a file and reading it (ugly), I would still have a problem. Let's suppose my factFile depends only on one file in subdirectory STEER added previously with the command add_subdirectory(STEER). add_custom_command(OUTPUT factFile.xml COMMAND DEPENDS STEER/check/source.h.xml) cmake complains that it does not know how to make it, and it is right, because this is known only inside the subdirectory STEER and not at global scope. I hope I have been clear enough. Thanks for help. Best regards, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 68505 Mobile: +41 76 487 4843 _______________________________________________ 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