ci: apply /bigobj globally to demo/example/ladder targets via apply_bigobj() - #82
Merged
Merged
Conversation
…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 Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/bigobjfix (#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 incmake/compiler_options.cmake, matching the existingapply_warnings/apply_sanitizers/apply_coveragepattern, and call it from every demo/example/ladder target:examples/bank:bank_lib,bank_cli,bank_testsexamples/bank/gui:bank_guiexamples/bank/gui_wasm:bank_gui_wasmexamples/concepts:morph_concepts_testsexamples/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_moduleexamples/qt_tls_client:morph_qt_tls_exampleexamples/vetted_hmac: both libsodium/OpenSSL demo and test targetsMSVC-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-debugwith-DMORPH_BUILD_FORMS_QML=ON: 180/180 targets build clean (includinglab_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'syaml-cppdependency unavailable in this dev environment) but use the identical, already-proven one-lineapply_bigobj(...)call — CI will confirm.🤖 Generated with Claude Code