# Feature request: REQUIRED for all find\_\* functions

**URL:** https://discourse.cmake.org/t/feature-request-required-for-all-find-functions/862
**Category:** Development
**Created:** [March 25, 2020, 6:18pm UTC](https://discourse.cmake.org/t/feature-request-required-for-all-find-functions/862 "2020-03-25T18:18:15Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![KUGA2](https://discourse.cmake.org/user_avatar/discourse.cmake.org/kuga2/32/4968_2.png) [@KUGA2](https://discourse.cmake.org/u/KUGA2)
#### Post date: [March 25, 2020, 6:18pm UTC](https://discourse.cmake.org/t/feature-request-required-for-all-find-functions/862/1 "2020-03-25T18:18:15Z")

</div>

`find_package()` has the flag `REQUIRED`. If it is set, the configuration fails when the package cannot be found.  
I think this flag should be available for all find\_\* functions. This reduces duplicate code like

```
find_program(MYEXE myexe)
if(NOT MYEXE)
    status(FATAL_ERROR "myexe has not been found")
endif()

```

Additionally, the variable `<VAR>_FOUND` should be set in each find\_\* function so the error handling code for is the same for optional `find_program()` and optional `find_package()`.

What do you think?

---

<div class="post-metadata">

### Author: ![brad.king](https://discourse.cmake.org/user_avatar/discourse.cmake.org/brad.king/32/11_2.png) [@brad.king](https://discourse.cmake.org/u/brad.king)
#### Post date: [March 25, 2020, 6:33pm UTC](https://discourse.cmake.org/t/feature-request-required-for-all-find-functions/862/2 "2020-03-25T18:33:24Z")

</div>

@sjoubert recently implemented this in [CMake MR 4435](https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4435) and will be in CMake 3.18.

---

<div class="post-metadata">

### Author: ![KUGA2](https://discourse.cmake.org/user_avatar/discourse.cmake.org/kuga2/32/4968_2.png) [@KUGA2](https://discourse.cmake.org/u/KUGA2)
#### Post date: [March 26, 2020, 11:27am UTC](https://discourse.cmake.org/t/feature-request-required-for-all-find-functions/862/3 "2020-03-26T11:27:17Z")

</div>

Nice. What a coincidence! 🙂
