Skip to content

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

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

3rdparty: granular per-package system-library overrides#2091
jcelerier wants to merge 10 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 from 002c37b to 003c2eb Compare June 22, 2026 16:53
jcelerier and others added 10 commits June 23, 2026 20:42
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
libossia #903 was merged; re-point at master (granular overrides) plus the
wiiuse graceful-fallback follow-up (libossia #904) instead of the orphaned
pre-merge branch commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
libossia #904 merged; point submodule at libossia master HEAD so the
reference is reachable from master.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
Points at the libossia fixes branch (ossia/libossia#905) so score builds
clean against current libossia master (unity Abseil + system wiiuse fallback).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5akSKFxSnxVz3RtLyU9QN
libossia #905 merged; point submodule at libossia master HEAD.

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 28a1177 to 1e14e42 Compare June 24, 2026 00:42
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