Skip to content

feat(build)!: per-component options with mode-driven defaults#55

Open
EnriqueParodi wants to merge 1 commit into
mainfrom
feature/compilation-options
Open

feat(build)!: per-component options with mode-driven defaults#55
EnriqueParodi wants to merge 1 commit into
mainfrom
feature/compilation-options

Conversation

@EnriqueParodi

@EnriqueParodi EnriqueParodi commented May 23, 2026

Copy link
Copy Markdown
Collaborator

Component builds are gated via sen_internal_component_guard at the top of their CMakeLists. A coarse mode switch (barebones / basic / full) is used to gate them, and Conan's system requirements (imgui, sdl, libxext-dev, llhttp, pybind11, tracy, ...) are pulled only when their owning component is enabled.

Developer-facing flags (with_examples, with_tests, with_clang_tidy, with_coverage, with_docs, sanitizer) replace the ENABLE_* env vars. with_docs pulls doxygen via tool_requires.

cli_run's built-in presets (shell / replay / explorer) are conditionally baked in based on their SEN_BUILD_ flags. Example smoke tests skip configs whose required component is disabled.

BREAKING:

  • SEN_DISABLE_EXTRA_COMPONENTS removed; use -o sen/*:mode=basic.
  • ENABLE_CT / COVERAGE / EXAMPLES / TESTS / ASAN / TSAN env vars no longer honored; use the matching Conan options.

@EnriqueParodi EnriqueParodi requested a review from vulder as a code owner May 23, 2026 21:12
@EnriqueParodi EnriqueParodi self-assigned this May 23, 2026
Component builds are gated via sen_internal_component_guard at the top of their CMakeLists.
A coarse mode switch (barebones / basic / full) is used to gate them, and Conan's system
requirements (imgui, sdl, libxext-dev, llhttp, pybind11, tracy, ...) are pulled only when
their owning component is enabled.

Developer-facing flags (with_examples, with_tests, with_clang_tidy, with_coverage, with_docs,
sanitizer) replace the ENABLE_* env vars. with_docs pulls doxygen via tool_requires.

cli_run's built-in presets (shell / replay / explorer) are conditionally baked in based on
their SEN_BUILD_<X> flags. Example smoke tests skip configs whose required component is disabled.

BREAKING:
- SEN_DISABLE_EXTRA_COMPONENTS removed; use -o sen/*:mode=barebones.
- ENABLE_CT / COVERAGE / EXAMPLES / TESTS / ASAN / TSAN env vars no longer
  honored; use the matching Conan options.
@EnriqueParodi EnriqueParodi force-pushed the feature/compilation-options branch from 1571fa5 to 395b299 Compare May 23, 2026 21:22
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