I assume that you are using ADD_CUSTOM_COMMAND or ADD_LIBRARY or another ADD_ * to create dependency files.
ExternalProject , CMakeLists.txt , CMakeLists.txt:
SET_DIRECTORY_PROPERTIES(PROPERTIES CLEAN_NO_CUSTOM 1)
, .
, .
,
ADD_CUSTOM_COMMAND(OUTPUT libdep
COMMAND dep_gen_cmd
....
)
ADD_CUSTOM_COMMAND(OUTPUT prj
....
DEPENDS libdep
)
:
ADD_CUSTOM_TARGET(libdep_gen
COMMAND dep_gen_cmd
...
)
ADD_CUSTOM_COMMAND(OUTPUT prj
COMMAND test -e libdep || make libdep_gen
...
)