Skip to content

build: assembly follows the family bin/lib placement convention - #35

Merged
rxdu merged 1 commit into
mainfrom
build/bin-lib-convention
Jul 12, 2026
Merged

build: assembly follows the family bin/lib placement convention#35
rxdu merged 1 commit into
mainfrom
build/bin-lib-convention

Conversation

@rxdu

@rxdu rxdu commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Umbrella-level CMAKE_{RUNTIME,LIBRARY,ARCHIVE}_OUTPUT_DIRECTORY set (guarded) before components are added: every executable lands in build/bin, every library in build/lib, uniformly across all five components — previously telemetry/messaging scattered into their component subdirs while driver/nav already routed to the top level. Verified on the full assembly (MESSAGING=ON): 17 binaries in bin/, 24 archives in lib/, zero strays. Build-layout only; no install/deb impact.

Every executable -> build/bin, every library -> build/lib, regardless
of producing component (previously: driver/nav routed to top-level
lib while telemetry/messaging scattered into their component subdirs
and bin/ was empty). Guarded (if NOT set) so a parent embedding the
superbuild keeps its own layout. Verified: full five-component
assembly, 17 binaries in bin/, 24 archives in lib/, zero strays under
build/components.
@rxdu

rxdu commented Jul 12, 2026

Copy link
Copy Markdown
Owner Author

One known exception, deliberately left: build/components/navigation/bin/quadprog_sample — a sample inside navigation's vendored third_party (quadprog) that sets its own output path. Patching vendored code isn't worth the convention; every first-party target across all five components follows bin/lib.

@rxdu
rxdu merged commit 0d572b2 into main Jul 12, 2026
2 checks passed
@rxdu
rxdu deleted the build/bin-lib-convention branch July 12, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant