Best way to preserve downloaded files with `ExternalProject_Add()`

I’m using multiple ExternalProject_Add() calls with URL to manage my dependencies. While it works fine, the specified files are downloaded into my build directory.

When I want to perform a clean build, I usually remove my builddir and start over. However, downloading many dependency files takes time, and I’d like to preserve these files somehow. What is the best way to achieve this?

The EP_BASE option, as mentioned in the documentation, specifies a base directory for all external project-related directories, including downloads and build directories. However, I only want to preserve the downloaded files.

I understand that someone might argue, “If you’re using old files, it’s not a clean build.” That could be true, but I believe that already downloaded files can be verified using their hashes.