Simply put, CMake already knows if dependencies are stored in another directory because of the networks of target dependencies. So when installing runtime dependencies with install(TARGETS … RUNTIME_DEPENDENCIES) I can understand there being reasons not to automatically add TARGET_RUNTIME_DLL_DIRS so the search list, however, there should be a simple mechanism to add it. Notably, when I add it manually install(TARGETS mytarget RUNTIME_DEPENDENCIES DIRECTORIES $<TARGET_RUNTIME_DLL_DIRS:mytarget>) this does not expand correctly in the generated cmake_install.cmake file because of list expansion. The generated file(GET_RUNTIME_DEPENDENCIES) call has all directories in a single string separated by semicolons, for example "C:/A;C:/B", which does not work with file(GET_RUNTIME_DEPENDENCIES). Manually separating the directories into "C:/A" "C:/B"works, but I am modifying a generated file, so it is not an actual solution.