# Build.zig do step if certain directory changes?

**URL:** <https://ziggit.dev/t/build-zig-do-step-if-certain-directory-changes/18001>\
**Category:** Help\
**Tags:** build-system\
**Created:** [October 17, 2026, 10:53am UTC](https://ziggit.dev/t/build-zig-do-step-if-certain-directory-changes/18001 "2026-10-17T10:53:51Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![vincentd](https://ziggit.dev/user_avatar/ziggit.dev/vincentd/32/9870_2.png) [@vincentd](https://ziggit.dev/u/vincentd)\
**Post date:** [October 17, 2026, 3:41pm UTC](https://ziggit.dev/t/build-zig-do-step-if-certain-directory-changes/18001/3 "2026-10-17T15:41:31Z")

</div>

Configure cache poisoning should solve it for you. Specifically, either `std.Build.dependOnDirectoryMetadata` or `std.Build.dependOnDirectoryContents`. The difference is described in their documentation. Beware: **they are not recursive.**

To a similar problem:

> [@Recusively adding a directory and sub-directories to include path](https://ziggit.dev/t/recusively-adding-a-directory-and-sub-directories-to-include-path/17842/3):
>
> I think zig 0.17.0 will let you do it with [Configure Cache Poisoning](https://ziglang.org/download/0.17.0/release-notes.html#Introduce-the-Concept-of-Configure-Cache-Poisoning), specifically std.Build.dependOnDirectoryMetadata. That tells the ‘maker’ to rerun the ‘configurer’ if the directory contents changes. NB: it is not recursive. That said, I recommend listing individual files. Unlike zig, C & C++ don’t have a mechanism for the compiler to determine what code is and isn’t used, so by listing them individually: It makes it easy for other people reading your project to see what it’s doing. Your …

---

_[View the full topic](https://ziggit.dev/t/build-zig-do-step-if-certain-directory-changes/18001)._
