What
When thread_system is consumed via find_package(common_system CONFIG) (the standard vcpkg path), ThreadSystemDependencies.cmake::find_common_system_dependency() successfully locates common_system but does not link the kcenon::common_system target to the ThreadSystem library. This causes downstream builds to fail with:
fatal error: 'kcenon/common/patterns/result.h' file not found
Why
- This is the single blocker preventing vcpkg overlay port builds for kcenon-thread-system (monitoring_system#282)
- Since thread_system is Tier 1, this cascades to all downstream libraries: logger_system, monitoring_system, network_system, and pacs_system
- The add_subdirectory() path works because it adds include directories directly, but the find_package() path (used by vcpkg) relies on proper target linkage
Where
cmake/ThreadSystemDependencies.cmake — find_common_system_dependency() function
cmake/ThreadSystemConfig.cmake.in — consumer-side config template
How
- In find_common_system_dependency(), after find_package(common_system CONFIG) succeeds, link the target:
if(common_system_FOUND AND TARGET kcenon::common_system)
target_link_libraries(ThreadSystem PUBLIC kcenon::common_system)
endif()
- Verify ThreadSystemConfig.cmake.in includes
find_dependency(common_system CONFIG REQUIRED)
- Test with vcpkg overlay port build
Acceptance Criteria
Context
What
When thread_system is consumed via find_package(common_system CONFIG) (the standard vcpkg path), ThreadSystemDependencies.cmake::find_common_system_dependency() successfully locates common_system but does not link the kcenon::common_system target to the ThreadSystem library. This causes downstream builds to fail with:
Why
Where
cmake/ThreadSystemDependencies.cmake—find_common_system_dependency()functioncmake/ThreadSystemConfig.cmake.in— consumer-side config templateHow
find_dependency(common_system CONFIG REQUIRED)Acceptance Criteria
Context