fix(build): link kcenon::common_system target for vcpkg find_package support#571
Merged
Merged
Conversation
…path When common_system is found via find_package(common_system CONFIG), the kcenon::common_system imported target carries include directories and transitive dependencies. Without linking this target to ThreadSystem, downstream vcpkg consumers fail with missing headers. - Link kcenon::common_system to ThreadSystem in create_thread_system_targets() when the target exists (vcpkg/find_package path) - Add find_dependency(common_system CONFIG REQUIRED) to both config templates (ThreadSystemConfig.cmake.in and thread_system-config.cmake.in) so downstream find_package(ThreadSystem) resolves common_system transitively Closes #569
5 tasks
Contributor
📊 Performance Benchmark ResultsPerformance Benchmark ReportNo benchmark data available. ℹ️ No baseline reference availableThis is the first benchmark run or baseline file is missing. |
This was referenced Mar 11, 2026
kcenon
added a commit
that referenced
this pull request
Apr 13, 2026
…path (#571) When common_system is found via find_package(common_system CONFIG), the kcenon::common_system imported target carries include directories and transitive dependencies. Without linking this target to ThreadSystem, downstream vcpkg consumers fail with missing headers. - Link kcenon::common_system to ThreadSystem in create_thread_system_targets() when the target exists (vcpkg/find_package path) - Add find_dependency(common_system CONFIG REQUIRED) to both config templates (ThreadSystemConfig.cmake.in and thread_system-config.cmake.in) so downstream find_package(ThreadSystem) resolves common_system transitively Closes #569
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #569
Summary
kcenon::common_systemimported target toThreadSystemincreate_thread_system_targets()when found viafind_package(common_system CONFIG)(vcpkg path)find_dependency(common_system CONFIG REQUIRED)to both consumer-side config templates (ThreadSystemConfig.cmake.inandthread_system-config.cmake.in) for transitive dependency resolutionProblem
When thread_system is consumed via
find_package(ThreadSystem CONFIG)(the vcpkg path),find_common_system_dependency()locates common_system but does not link thekcenon::common_systemtarget to the ThreadSystem library. This causes downstream builds to fail with:The
add_subdirectory()path works because it adds include directories globally viainclude_directories(), but thefind_package()path relies on proper target linkage to propagate include directories.Changes
cmake/ThreadSystemTargets.cmakekcenon::common_systemtoThreadSystemwhen target existscmake/ThreadSystemConfig.cmake.infind_dependency(common_system CONFIG REQUIRED)cmake/thread_system-config.cmake.infind_dependency(common_system CONFIG REQUIRED)Test Plan
vcpkg install kcenon-thread-system)find_package(ThreadSystem CONFIG)resolves common_system transitively