What
Tracking epic for Phase 2 of vcpkg deployment readiness across all 8 ecosystem packages. A comprehensive audit revealed structural issues in vcpkg manifests and CMake export naming that could cause build failures or confusion for consumers.
- Current: network_system classifies required kcenon dependencies as optional feature; export naming conventions (targets file name, CMake namespace) are inconsistent across the 8 systems
- Expected: All required dependencies are in top-level
dependencies; export naming follows a single convention ecosystem-wide
- Scope:
vcpkg.json dependency classification (network_system), CMake install(EXPORT) naming convention (all systems)
Why
- network_system:
kcenon-common-system and kcenon-thread-system are required at build time (CMakeLists.txt uses find_package(common_system REQUIRED)), but vcpkg.json places them under the optional ecosystem feature. If a consumer installs kcenon-network-system without [ecosystem], the build will fail because these dependencies won't be resolved
- Naming inconsistency: Consumer projects must guess between
find_package(thread_system) + thread_system::thread_base vs find_package(ThreadSystem) + ThreadSystem::thread_base. This friction slows adoption and creates integration bugs
Export Naming Current State
| System |
Export File |
Namespace |
Separator |
| common_system |
common_systemTargets |
kcenon:: |
— |
| thread_system |
ThreadSystemTargets |
thread_system:: / ThreadSystem:: |
— |
| logger_system |
logger_system-targets |
LoggerSystem:: |
hyphen |
| container_system |
container_system-targets |
ContainerSystem:: |
hyphen |
| monitoring_system |
monitoring_system_targets |
monitoring_system:: |
underscore |
| database_system |
database_system-targets |
DatabaseSystem:: |
hyphen |
| network_system |
network_system-targets |
NetworkSystem:: |
hyphen |
| pacs_system |
pacs_systemTargets |
kcenon::pacs:: |
— |
Where
| System |
File |
Issue |
| network_system |
vcpkg.json |
Required deps in optional ecosystem feature |
| all 8 systems |
CMakeLists.txt, cmake/*Install*.cmake |
Export naming inconsistency |
How
Sub-Issues
Phase 2a: Dependency Classification Fix
Phase 2b: Export Naming Standardization
Acceptance Criteria
What
Tracking epic for Phase 2 of vcpkg deployment readiness across all 8 ecosystem packages. A comprehensive audit revealed structural issues in vcpkg manifests and CMake export naming that could cause build failures or confusion for consumers.
dependencies; export naming follows a single convention ecosystem-widevcpkg.jsondependency classification (network_system), CMakeinstall(EXPORT)naming convention (all systems)Why
kcenon-common-systemandkcenon-thread-systemare required at build time (CMakeLists.txt usesfind_package(common_system REQUIRED)), but vcpkg.json places them under the optionalecosystemfeature. If a consumer installskcenon-network-systemwithout[ecosystem], the build will fail because these dependencies won't be resolvedfind_package(thread_system)+thread_system::thread_basevsfind_package(ThreadSystem)+ThreadSystem::thread_base. This friction slows adoption and creates integration bugsExport Naming Current State
common_systemTargetskcenon::ThreadSystemTargetsthread_system::/ThreadSystem::logger_system-targetsLoggerSystem::container_system-targetsContainerSystem::monitoring_system_targetsmonitoring_system::database_system-targetsDatabaseSystem::network_system-targetsNetworkSystem::pacs_systemTargetskcenon::pacs::Where
vcpkg.jsonecosystemfeatureCMakeLists.txt,cmake/*Install*.cmakeHow
Sub-Issues
Phase 2a: Dependency Classification Fix
Phase 2b: Export Naming Standardization
Acceptance Criteria
vcpkg.jsonlistskcenon-common-systemandkcenon-thread-systemin top-leveldependenciesfind_package()all 8 systems using a predictable naming convention