# VERIFY\_INTERFACE\_HEADER\_SETS and private headers

**URL:** https://discourse.cmake.org/t/verify-interface-header-sets-and-private-headers/13006
**Category:** Usage
**Created:** [November 20, 2024, 10:12pm UTC](https://discourse.cmake.org/t/verify-interface-header-sets-and-private-headers/13006 "2024-11-20T22:12:42Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![tsdgeos](https://discourse.cmake.org/user_avatar/discourse.cmake.org/tsdgeos/32/5137_2.png) [@tsdgeos](https://discourse.cmake.org/u/tsdgeos)
#### Post date: [November 20, 2024, 10:12pm UTC](https://discourse.cmake.org/t/verify-interface-header-sets-and-private-headers/13006/1 "2024-11-20T22:12:42Z")

</div>

I have recently discovered VERIFY\_INTERFACE\_HEADER\_SETS and it seems like a super useful tool, but I am having trouble making it be useful in a project that uses private headers (i.e. headers that don’t get installed).

The problem as far as I understand is that the check runs on the source code so the private headers are available when the check is run, but if i made a mistake and there’s an installed header that depends on a non installed one, then that header is really unusable and the check should ideally fail.

Would it be possible to have an option that runs the check over the installed headers so that these mistakes would be discovered?

My example is like

.  
├── CMakeLists.txt  
├── private  
│ └── private.h  
├── testlib.cpp  
└── testlib.h

and testlib.h includes (by mistake) private.h and testlib.h gets installed but private.h does not.
