What
Update monitoring_system-config.cmake.in to match ecosystem conventions established by database_system, network_system, and container_system config templates.
Current State
The config template has complete find_dependency() coverage but lacks several consistency features present in sibling libraries.
Gaps vs. Ecosystem Standard
| Feature |
database_system |
network_system |
monitoring_system |
| Header comment with target docs |
✅ |
✅ |
❌ |
_FOUND variable |
✅ |
✅ |
❌ |
_INCLUDE_DIRS variable |
✅ |
✅ |
❌ |
_LIBRARIES variable |
✅ |
✅ |
❌ |
| Legacy namespace aliases |
✅ |
✅ |
❌ |
message(STATUS "Found ...") |
✅ |
✅ |
❌ |
Temp variable cleanup (unset()) |
N/A |
✅ |
❌ |
Why
- Consumers using
_FOUND/_LIBRARIES pattern (common in legacy CMake) cannot discover monitoring_system
- Temporary variables (
MONITORING_USE_THREAD_SYSTEM, etc.) leak into consumer CMake scope
- Missing status message makes build log debugging harder
- Ecosystem should present a uniform find_package experience across all 8 libraries
Where
cmake/monitoring_system-config.cmake.in
How
Technical Approach
- Add header comment documenting exported targets (
monitoring_system::monitoring, etc.)
- Add compatibility variables:
monitoring_system_FOUND, monitoring_system_INCLUDE_DIRS, monitoring_system_LIBRARIES
- Add legacy namespace aliases:
MonitoringSystem::monitoring → monitoring_system::monitoring
- Add
message(STATUS "Found monitoring_system ${monitoring_system_VERSION}")
- Add
unset() for temporary variables (MONITORING_USE_THREAD_SYSTEM, MONITORING_USE_LOGGER_SYSTEM, MONITORING_USE_NETWORK_SYSTEM, MONITORING_USE_GRPC)
Acceptance Criteria
Related
What
Update
monitoring_system-config.cmake.into match ecosystem conventions established by database_system, network_system, and container_system config templates.Current State
The config template has complete
find_dependency()coverage but lacks several consistency features present in sibling libraries.Gaps vs. Ecosystem Standard
_FOUNDvariable_INCLUDE_DIRSvariable_LIBRARIESvariablemessage(STATUS "Found ...")unset())Why
_FOUND/_LIBRARIESpattern (common in legacy CMake) cannot discover monitoring_systemMONITORING_USE_THREAD_SYSTEM, etc.) leak into consumer CMake scopeWhere
cmake/monitoring_system-config.cmake.inHow
Technical Approach
monitoring_system::monitoring, etc.)monitoring_system_FOUND,monitoring_system_INCLUDE_DIRS,monitoring_system_LIBRARIESMonitoringSystem::monitoring→monitoring_system::monitoringmessage(STATUS "Found monitoring_system ${monitoring_system_VERSION}")unset()for temporary variables (MONITORING_USE_THREAD_SYSTEM,MONITORING_USE_LOGGER_SYSTEM,MONITORING_USE_NETWORK_SYSTEM,MONITORING_USE_GRPC)Acceptance Criteria
monitoring_system_FOUND,_INCLUDE_DIRS,_LIBRARIESset correctlyMonitoringSystem::aliases createdunset()find_package(monitoring_system CONFIG)still works correctlyRelated