[CMake] Can I make the dependency scanner only look in certain include directories?
Dan Furlani
dan.furlani at e-cortex.com
Thu Oct 4 21:43:53 EDT 2012
> If you hide it behind a function-like macro then you can use
> the IMPLICIT_DEPENDS_INCLUDE_TRANSFORM to tell the targets
> where you want the dependency how to get it:
Thanks, that worked. Here's what I had to do, maybe there was an
easier way I missed.
1. Define macros MY_ADD_LIBRARY and MY_ADD_EXECUTABLE like this:
macro (MY_ADD_EXECUTABLE target)
add_executable(
${target}
${ARGN}
)
set_target_properties(
${target} PROPERTIES
IMPLICIT_DEPENDS_INCLUDE_TRANSFORM "MY_CMAKE_DEPENDENCY_HACK(%)=\"%\""
)
endmacro (MY_ADD_EXECUTABLE)
2. Replace all ADD_LIBRARY and ADD_EXECUTABLE calls with
MY_ADD_LIBRARY and MY_ADD_EXECUTABLE, **except** for the code
generator executable.
3. Create a wrapper header GeneratedFile_WRAPPER.h that looks like this:
#define MY_CMAKE_DEPENDENCY_HACK(a) #a
#include MY_CMAKE_DEPENDENCY_HACK(GeneratedFile.h)
#undef MY_CMAKE_DEPENDENCY_HACK
4. Change around 20 files to include the wrapper instead of the GeneratedFile.h
Thanks again for the help Brad!
-dan
More information about the CMake
mailing list