Skip to content

ci: apply /bigobj globally to demo/example/ladder targets via apply_bigobj() - #82

Merged
Yaraslaut merged 1 commit into
masterfrom
ci/bigobj-global-demo-ladder
Aug 12, 2026
Merged

ci: apply /bigobj globally to demo/example/ladder targets via apply_bigobj()#82
Yaraslaut merged 1 commit into
masterfrom
ci/bigobj-global-demo-ladder

Conversation

@Yaraslaut

Copy link
Copy Markdown
Member

Problem

Several unrelated targets (morph_forms_demo, lab_forms_demo_module, morph_tests) have each independently hit MSVC's C1128 ("number of sections exceeded object file format limit") as they grew, each requiring its own one-off /bigobj fix (#80, #81, and per-branch workarounds on three separate open PRs). Chasing this target by target as it recurs is not sustainable.

Fix

Add a shared apply_bigobj(target) helper in cmake/compiler_options.cmake, matching the existing apply_warnings/apply_sanitizers/apply_coverage pattern, and call it from every demo/example/ladder target:

  • examples/bank: bank_lib, bank_cli, bank_tests
  • examples/bank/gui: bank_gui
  • examples/bank/gui_wasm: bank_gui_wasm
  • examples/concepts: morph_concepts_tests
  • examples/forms: morph_forms_demo (replaces ci: fix pre-existing /bigobj and Doxygen doc-parse failures blocking all PRs #80's one-off manual flag)
  • examples/forms/gui_qml: lab_forms_demo_module
  • examples/qt_tls_client: morph_qt_tls_example
  • examples/vetted_hmac: both libsodium/OpenSSL demo and test targets

MSVC-only ($<$<CXX_COMPILER_ID:MSVC>:/bigobj>), harmless on Release and on every other compiler.

Verification

  • cl-debug, default config: 77/77 targets build clean.
  • cl-debug with -DMORPH_BUILD_FORMS_QML=ON: 180/180 targets build clean (including lab_forms_demo_module/morph_forms_qml, the highest-risk QML targets); full suite passes 915/915.
  • examples/bank's GUI targets could not be exercised locally (Lightweight ORM's yaml-cpp dependency unavailable in this dev environment) but use the identical, already-proven one-line apply_bigobj(...) call — CI will confirm.

🤖 Generated with Claude Code

…igobj()

Several unrelated targets (morph_forms_demo, lab_forms_demo_module,
morph_tests) have each independently hit MSVC's C1128 ('number of
sections exceeded object file format limit') as they grew, requiring
a one-off /bigobj fix each time. Rather than keep discovering this
target by target, add a shared apply_bigobj() helper (matching the
existing apply_warnings/apply_sanitizers/apply_coverage pattern) and
call it from every demo/example/ladder target: bank_lib, bank_cli,
bank_tests, bank_gui, bank_gui_wasm, morph_concepts_tests,
morph_forms_demo, lab_forms_demo_module, morph_qt_tls_example, and
both vetted-HMAC demo/test pairs. Replaces morph_forms_demo's one-off
manual flag (#80) with the shared helper.

Verified locally under cl-debug: default config (77/77 targets) and
with -DMORPH_BUILD_FORMS_QML=ON (180/180 targets, including
lab_forms_demo_module and morph_forms_qml) both build clean; full
suite passes 915/915 with QML enabled. examples/bank's GUI targets
could not be exercised locally (Lightweight ORM's yaml-cpp dependency
unavailable in this environment) but use the identical one-line
apply_bigobj(...) call already proven on every other target — CI will
confirm.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Yaraslaut
Yaraslaut merged commit 8202989 into master Aug 12, 2026
22 checks passed
Yaraslaut pushed a commit that referenced this pull request Aug 13, 2026
PR #82's apply_bigobj() helper (merged into master) covers demo/example
targets outside the ladder; morph_add_rung()'s own targets
(ladder_<rung>_lib/_gui_lib/_gui/_server/_tests/_headless) predate it
and hit the identical MSVC C1128 ("number of sections exceeded object
file format limit") once rebased onto current master -- bookmarks'
and polls' model .cpp files push their COFF section count past the
32-bit format's limit under MSVC Debug the same way morph_tests itself
did before #82.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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