cmake: fix windows-everything configure failures - #126
Open
Yaraslaut wants to merge 1 commit into
Open
Conversation
Three gaps surfaced when actually configuring windows-everything on a real Windows machine (no CI leg has ever exercised this option combination): - MORPH_BUILD_HMAC_EXAMPLE_LIBSODIUM (defaults ON under MORPH_BUILD_HMAC_EXAMPLES) needs PkgConfig + a libsodium pkg-config file, neither available via this toolchain. Turn it off explicitly; the OpenSSL adapter stays on. - MORPH_BUILD_HMAC_EXAMPLE_OPENSSL and MORPH_BUILD_OFFLINE_SQLITE need OpenSSL and SQLite3 respectively, neither listed in vcpkg.json. Add both as vcpkg dependencies. - examples/bank/CMakeLists.txt's own Lightweight FetchContent fetch was missing the CMAKE_SKIP_INSTALL_RULES guard that examples/common/CMakeLists.txt already carries for the same problem: Lightweight's install() rules reference $<TARGET_PDB_FILE:Lightweight>, which CMake rejects for a static build (LIGHTWEIGHT_BUILD_SHARED=OFF) at generate time. This was never hit before because no existing preset turned on MORPH_BUILD_BANK_EXAMPLE and MORPH_BUILD_LADDER together on Windows. Verified: windows-everything now configures cleanly end to end (cmake --preset windows-everything). 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! |
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.
Summary
Fixes three real configure-time failures in the
windows-everythingpreset added by #124, found by actually runningcmake --preset windows-everythingon Windows — no CI leg had exercised this option combination before.MORPH_BUILD_HMAC_EXAMPLE_LIBSODIUM(defaultsONunderMORPH_BUILD_HMAC_EXAMPLES) requiresPkgConfig+ a libsodium pkg-config file. Neither is available via this toolchain (no CI leg builds HMAC examples on Windows, andvcpkg.jsondidn't list libsodium). Turned off explicitly in the preset; the OpenSSL adapter (MORPH_BUILD_HMAC_EXAMPLE_OPENSSL) stays on.MORPH_BUILD_HMAC_EXAMPLE_OPENSSLandMORPH_BUILD_OFFLINE_SQLITEneedOpenSSLandSQLite3respectively — neither was listed invcpkg.json. Added both.examples/bank/CMakeLists.txt's ownFetchContentfetch of Lightweight was missing theCMAKE_SKIP_INSTALL_RULESguard thatexamples/common/CMakeLists.txtalready carries for the identical problem: Lightweight'sinstall()rules reference$<TARGET_PDB_FILE:Lightweight>, which CMake rejects at generate time for a static build (LIGHTWEIGHT_BUILD_SHARED=OFF). This was never hit before because no existing preset turned on bothMORPH_BUILD_BANK_EXAMPLEandMORPH_BUILD_LADDERtogether on Windows.Verification
cmake --preset windows-everythingnow configures cleanly end to end (confirmed locally — "Configuring done" / "Generating done" / "Build files have been written").🤖 Generated with Claude Code