# Out of source builds and caching external assets

**URL:** <https://discourse.cmake.org/t/out-of-source-builds-and-caching-external-assets/10533>\
**Category:** Development\
**Created:** [March 29, 2024, 5:26pm UTC](https://discourse.cmake.org/t/out-of-source-builds-and-caching-external-assets/10533 "2024-03-29T17:26:23Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ben.boeckel](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.cmake.org/u/ben.boeckel)\
**Post date:** [April 11, 2024, 4:09pm UTC](https://discourse.cmake.org/t/out-of-source-builds-and-caching-external-assets/10533/2 "2024-04-11T16:09:16Z")

</div>

In my `ExternalProject` builds, I have them directed to store to `${CMAKE_BINARY_DIR}/downloads`. On my machine, I symlink this to a common store between a variety of superbuilds. There’s been discussion to have a user-wide cache for `ExternalProject` sources (which I assume will help `FetchContent` as well), but it’s not a simple thing (especially for VCS sources).

See this discussion and links from it: [ExternalProject\_Add cache for git repositories](https://discourse.cmake.org/t/externalproject-add-cache-for-git-repositories/4218)

---

_[View the full topic](https://discourse.cmake.org/t/out-of-source-builds-and-caching-external-assets/10533)._
