Skip to content

build: publish HAS_<Pkg> for detected Synesis packages - #86

Merged
synesissoftware merged 7 commits into
devfrom
versions
Oct 27, 2026
Merged

synesissoftware merged 7 commits into
devfrom
versions

Conversation

@synesissoftware

Copy link
Copy Markdown
Owner

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.

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.
@synesissoftware
synesissoftware requested a review from mwsis October 27, 2026 00:43
@synesissoftware synesissoftware self-assigned this Oct 27, 2026
@synesissoftware
synesissoftware changed the base branch from master to dev October 27, 2026 00:43
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
mwsis marked this pull request as ready for review October 27, 2026 07:31
mwsis and others added 4 commits October 27, 2026 18:34
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.
@synesissoftware
synesissoftware merged commit 88a190e into dev Oct 27, 2026
68 checks passed
@synesissoftware
synesissoftware deleted the versions branch October 27, 2026 09:49
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.

2 participants