Skip to content

3rdparty: granular per-package system-library overrides - #2091

Open
jcelerier wants to merge 6 commits into
masterfrom
feature/vendoring-cmake-variables
Open

3rdparty: granular per-package system-library overrides#2091
jcelerier wants to merge 6 commits into
masterfrom
feature/vendoring-cmake-variables

Conversation

@jcelerier

Copy link
Copy Markdown
Member

Lets distros unvendor third-party dependencies selectively instead of the all-or-nothing SCORE_USE_SYSTEM_LIBRARIES.

Mechanism

  • score_use_system(out pkg) in cmake/ScoreConfiguration.cmake, mirroring libossia's ossia_use_system. The namespace is unified on OSSIA_USE_SYSTEM_*; SCORE_USE_SYSTEM_LIBRARIES still works as a forwarding alias.
  • Each dependency gets a tri-state OSSIA_USE_SYSTEM_<FindPackageName> cache variable. Empty → follows the global; ON/OFF overrides that one package. Defaults unchanged (empty → global → vendored).

Scope

  • All 3rdparty/*.cmake guards converted (SndFile, Snappy, eigen, xtensor, snmalloc, shmdata, sh4lt, Suil, libpd, vst3, Faust).
  • Added system/find_package branches to deps that previously had none: dspfilters, gamma, r8brain, simpleio, QCodeEditor, clap.
  • Turned inline-compiled deps into proper library targets (linked, not source-included): phantomstyle, Gist, miniply, mikktspace, vcglib, opengametools, outcome, llfio, quickcpplib.
  • Left fused into score_lib_base (use SCORE_LIB_BASE_EXPORT, not separable): zipdownloader, QProgressIndicator, Qt-Color-Widgets.

Requires ossia/libossia#903 (submodule bump included).

Validation

  • SDK build (Qt static): green.
  • System-path build (no SDK, Qt 6.9, OSSIA_USE_SYSTEM_LIBRARIES=ON with granular OFF for the packages not installed locally): configures and compiles; only failure is unrelated system-FFmpeg AVVulkanDeviceContext API skew in score-plugin-gfx.

🤖 Generated with Claude Code

@jcelerier
jcelerier force-pushed the feature/vendoring-cmake-variables branch 2 times, most recently from 28a1177 to 1e14e42 Compare June 24, 2026 00:42
@jcelerier
jcelerier force-pushed the feature/vendoring-cmake-variables branch from 1e14e42 to 5fcd28b Compare July 21, 2026 14:12
jcelerier and others added 6 commits August 17, 2026 20:46
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
…deEditor, clap

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
Extract phantomstyle, Gist, miniply, mikktspace, vcglib, opengametools,
outcome, llfio and quickcpplib into their own targets instead of compiling
their sources / include dirs directly into consumers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
ssynth, miniply, mikktspace, vcglib, opengametools and Gist are now defined
in 3rdparty/*.cmake like the other dependencies; the threedim and analysis
plugins include() them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
snappy, shmdata, sh4lt, suil and wiiuse now build the vendored copy when
the system package is requested but not found, instead of failing. Bumps
libossia (wiiuse).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
…gametools

Give the relocated standalone deps the same tri-state OSSIA_USE_SYSTEM_<pkg>
find path + vendored fallback as the others, instead of vendored-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
@jcelerier
jcelerier force-pushed the feature/vendoring-cmake-variables branch from 5fcd28b to b7039b4 Compare August 18, 2026 01:08
@coveralls

Copy link
Copy Markdown

Coverage Status

Coverage is 20.349%feature/vendoring-cmake-variables into master. No base build found for master.

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.

2 participants