Centralize CMake component packaging - #228
Draft
VolkerChristian wants to merge 6 commits into
Draft
Conversation
VolkerChristian
force-pushed
the
agent/centralize-component-packaging
branch
from
July 30, 2026 16:47
555a974 to
6abed7e
Compare
VolkerChristian
force-pushed
the
agent/centralize-component-packaging
branch
from
July 30, 2026 19:32
bf77f60 to
e281cda
Compare
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.
What changed
snodec_add_component(...)declaration beside each component targetHEADERSandDEVELOPMENT_FILESsections of that declarationsnodec_install_component_headers(...)andsnodec_install_component_development_files(...)snodec_finalize_components(...)phase after every component has registered-devpackage split and generatedfind_package(snodec COMPONENTS ...)modelsnodec_finalize_cpack_components()as a CPack adapter over the already-finalized component registryDesign
Each component now has exactly one owning declaration. The declaration records its target, public status, dependency overrides, install destinations, header sets, and development files. No global file contains a second component inventory.
snodec_finalize_components(...)runs once after all component subdirectories. It validates duplicate and missing registrations, resolves runtime and public-development dependency graphs, rejects cycles, creates all install/export rules, and generates the installed CMake package model.CPack consumes that finalized registry rather than owning component metadata. The same registry can be consumed by an OpenWrt adapter through:
snodec_get_components(...)snodec_get_public_components(...)snodec_get_component_dependency_definitions(...)snodec_get_component_metadata(...)This prepares OpenWrt reuse without pretending that CPack itself produces OpenWrt
.ipkpackages.Validation
snodecConfig.cmakeand version metadata remain equivalent