I'm looking to add a dependency to all source files to ensure that a generated
file is up-to-date before compilation. This generated file is "passed in" to
the compiler via a global compiler definition. Is there an easy or built-in way
to do this, or will I need to manually add a made-up target to every file in
every library directory?
Currently, the generated file is created in the CMake Options file, using an
exec_program command near the top of the file. The output of this process is
not tracked, but the GLOBAL_DEFS variable applied to every source file includes
a line that directs the compiler to consume the new file. It looks a little
However, the dependency tree is not aware of this file and will not prepare it
in any way on a per-file bases. In this case the program is executed every
build regardless of if <inputFile> has been modified. This adds unnecessary
time to an incremental build if no change is made, and if <inputFile> does
happen to change CMake will not recompile the sources accordingly. I have to do
a clean/rebuild in order for the changes to "take".
What I would like to see is a way to actually add <outputFile> as a dependency
to each source file. Now, I'm no CMake expert, but I think it would look
something like this:
# Create a command/target for our output file
# Do something to make all source files depend on <outputFile>
# <Magic goes here>
Would this be a feasible thing to do in CMake, especially at the options file
level? If you need any more information please let me know.
Thank you in advance!
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
Follow this link to subscribe/unsubscribe: