# Copying files with destination folder depending on build config

**URL:** https://discourse.cmake.org/t/copying-files-with-destination-folder-depending-on-build-config/10686
**Category:** Usage
**Created:** [April 18, 2024, 10:23am UTC](https://discourse.cmake.org/t/copying-files-with-destination-folder-depending-on-build-config/10686 "2024-04-18T10:23:49Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![buildSystemPerson](https://discourse.cmake.org/user_avatar/discourse.cmake.org/buildsystemperson/32/2851_2.png) [@buildSystemPerson](https://discourse.cmake.org/u/buildSystemPerson)
#### Post date: [April 19, 2024, 7:07pm UTC](https://discourse.cmake.org/t/copying-files-with-destination-folder-depending-on-build-config/10686/2 "2024-04-19T19:07:31Z")

</div>

In CMake 3.26 there is now [copy\_directory\_if\_different](https://cmake.org/cmake/help/latest/manual/cmake.1.html#cmdoption-cmake-E-arg-copy_directory_if_different).

Instead of using POST\_BUILD which only runs when the target is built; I think a custom target may be more appropriate. Since your data can change without your program having to build.

```auto
add_custom_target(copy_data
	COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different 
        "${CMAKE_CURRENT_SOURCE_DIR}/datadir/"
        "$<TARGET_FILE_DIR:mytarget>/datadir"
    COMMENT "Copying data"
)
add_dependencies(mytarget copy_data)

```

---

_[View the full topic](https://discourse.cmake.org/t/copying-files-with-destination-folder-depending-on-build-config/10686)._
