What
The 8 ecosystem vcpkg ports use inconsistent CMake package names in vcpkg_cmake_config_fixup(), causing find_package() calls to require different naming conventions depending on the package. This also forces downstream CMake code and patches to search multiple target name candidates.
Why
- Consumers must guess whether to call
find_package(common_system) or find_package(LoggerSystem)
- Patches like
fix-common-system-target.patch exist solely because target names vary (common_system, kcenon::common, kcenon::common_system)
- Logger port manually generates CMake target files because upstream uses a different package name convention
- Inconsistency increases integration complexity and maintenance burden for every new consumer
Where
Current PACKAGE_NAME mapping
| Port |
PACKAGE_NAME |
find_package() |
Style |
| kcenon-common-system |
common_system |
find_package(common_system) |
snake_case |
| kcenon-thread-system |
thread_system |
find_package(thread_system) |
snake_case |
| kcenon-logger-system |
LoggerSystem |
find_package(LoggerSystem) |
PascalCase |
| kcenon-container-system |
ContainerSystem |
find_package(ContainerSystem) |
PascalCase |
| kcenon-monitoring-system |
monitoring_system |
find_package(monitoring_system) |
snake_case |
| kcenon-database-system |
DatabaseSystem |
find_package(DatabaseSystem) |
PascalCase |
| kcenon-network-system |
NetworkSystem |
find_package(NetworkSystem) |
PascalCase |
| kcenon-pacs-system |
pacs_system |
find_package(pacs_system) |
snake_case |
Related patches caused by this inconsistency
fix-common-system-target.patch (database, network) — searches multiple target name candidates
fix-unified-deps-target-names.patch (logger) — fixes thread_system package name lookup
fix-vcpkg-dependency-discovery.patch (pacs) — adds find_package fallbacks for 5 different packages
How
- Choose a single convention:
snake_case (matches vcpkg port naming) or PascalCase (matches CMake find_package convention)
- Update upstream
CMakeLists.txt install/export rules in each repo to use the chosen convention
- Update all portfiles to reflect the new PACKAGE_NAME
- Remove target-name-search patches that are no longer needed
- Update consumer projects'
find_package() calls
- Document the convention in ecosystem guidelines
Acceptance Criteria
What
The 8 ecosystem vcpkg ports use inconsistent CMake package names in
vcpkg_cmake_config_fixup(), causingfind_package()calls to require different naming conventions depending on the package. This also forces downstream CMake code and patches to search multiple target name candidates.Why
find_package(common_system)orfind_package(LoggerSystem)fix-common-system-target.patchexist solely because target names vary (common_system,kcenon::common,kcenon::common_system)Where
Current PACKAGE_NAME mapping
common_systemfind_package(common_system)thread_systemfind_package(thread_system)LoggerSystemfind_package(LoggerSystem)ContainerSystemfind_package(ContainerSystem)monitoring_systemfind_package(monitoring_system)DatabaseSystemfind_package(DatabaseSystem)NetworkSystemfind_package(NetworkSystem)pacs_systemfind_package(pacs_system)Related patches caused by this inconsistency
fix-common-system-target.patch(database, network) — searches multiple target name candidatesfix-unified-deps-target-names.patch(logger) — fixes thread_system package name lookupfix-vcpkg-dependency-discovery.patch(pacs) — adds find_package fallbacks for 5 different packagesHow
snake_case(matches vcpkg port naming) orPascalCase(matches CMake find_package convention)CMakeLists.txtinstall/export rules in each repo to use the chosen conventionfind_package()callsAcceptance Criteria
find_package()calls