ExternalProject: Don't rerun configure if a dependent project changes when the external project uses CMake
Currently, if a dependent external project changes, all external projects that depend on it rebuild, starting from their configure command. Would it make sense to provide an option to skip the configure command when rebuilding dependent external projects?
I'm in a situation where I'm doing a large CMake superbuild of CMake projects, some of which don't behave very well. When their configure step is rerun, they always update some timestamps which causes large parts of these projects to get rebuilt. Because a rebuild of a dependency triggers all the configure steps to run again, the builds are quite slow due to files being compiled every time. Files are not recompiled when running the build step (ninja) multiple times because ninja is smart enough to know that configure doesn't need to be run again so no timestamps get updated by configure and no files need to be recompiled.
Since CMake caches most of what it finds in the filesystem already, does it make sense to always rerun CMake configure steps when a dependency is rebuilt? Would it be more or less safe to add an option to ExternalProject that tells it to skip the configure step for CMake projects when a dependent project rebuilds? This could save quite a bit of time in large superbuilds.
EDIT: To give some more context, the superbuild has BUILD_ALWAYS enabled for every external project so the build steps for each project always run. I check out all the repositories locally and then use ExternalProject's SOURCE_DIR without any download/update method.