Repository navigation
build: publish HAS_<Pkg> for detected Synesis packages - #86
Merged
Merged
Conversation
After each successful detection of a Synesis package other than STLSoft, define HAS_<Pkg> and HAS_<PKG>. Dots in package names become underscores. BDUT and CLASP, already all-caps, get the single macro. Client-prefixed presence macros were removed where only the client read them. Dependency switches such as XTESTS_HAS_SHWILD, PANTHEIOS_HAS_SHWILD, and the *_NO_* contracts stay.
Keep versions target_link_libraries in the signature the project already uses, link header-only packages by their imported target, and compare version tests with the current release symbol.
Add an opt-in woad dependency and bring the three scratch versions programs into line with each other for the 1.11.3 release: - add --use-woad to prepare_cmake.sh, passing -DUSE_WOAD:BOOL, and find woad 0.2.0 in CMakeLists.txt when USE_WOAD and BUILD_TESTING are set, defining HAS_woad / HAS_WOAD and the HAS_woad CMake variable; - link woad::woad into the versions.format, versions.iostreams and versions.stdio targets when HAS_woad is set; - define STLSOFT_HAS_COM on WIN32 so that COMSTL is reported; - rework versions.stdio and versions.iostreams to a common layout with headings, language and compiler lines, subproject entries and a conditional efferent-dependencies section (cstring, Diagnosticism, shwild, UNIXem, woad, xTests), rendering versions via Diagnosticism when available; - colour versions.iostreams output via woad (magenta headings, blue names, green versions and values, cyan macros), falling back to plain text when woad is not in use; - include the ACESTL, ATLSTL, COMSTL and MFCSTL headers in the versions programs, ordered consistently; - record the work in CHANGES.md, NEWS.md and INSTALL.md, and add a TODO.md item to colour versions.stdio and versions.format;
mwsis
marked this pull request as ready for review
October 27, 2026 07:31
mwsis
approved these changes
Oct 27, 2026
The fprintf passed an undeclared prefix and one argument too many. Print the name, the Diagnosticism string, and the macro, as the fallback line does.
HAS_xTests is defined for the whole test build, so the scratch versions programs include xtests/xtests.h. They are example targets, which do not link xTests::core, so CI cannot see that header. Link it, as the unit tests already do.
versions.iostreams and versions.format include mfcstl.hpp when STLSOFT_HAS_MFC is set, but example targets never receive _AFXDLL. The windows-cl-mfc cell then rejects afx.h under /MD. Use the same per-target MFC settings as test/unit/versions.
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.
After each successful detection of a Synesis package other than STLSoft, define HAS_ and HAS_. Dots in package names become underscores. BDUT and CLASP, already all-caps, get the single macro. Client-prefixed presence macros were removed where only the client read them. Dependency switches such as XTESTS_HAS_SHWILD, PANTHEIOS_HAS_SHWILD, and the NO contracts stay.