CNA-BUG-274: README.md calls the CNAEXT purity check "a dedicated CMake build option", but CNA_STRICT_XNA_API is a compile definition on two harness targets and no CMake option exists

CNA snapshot 009d40f5  ·  Known Issues › Current bugs  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The README describes the compile-time CNAEXT purity check as a dedicated CMake build option; cmake/Harnesses.cmake only sets the CNA_STRICT_XNA_API compile definition on two check targets, and passing -DCNA_STRICT_XNA_API=ON to CMake does nothing.

Identifier
CNA-BUG-274
Category
Bug
Subsystem
Documentation & release tooling
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
None
Affected contract
README.md, the Verification methodology bullet on the CNAEXT purity check

Expected behaviour

The README describes the mechanism the build has: a compile definition that turns CNAEXT-marked declarations into [[deprecated]] warnings on the targets that define it.

Actual behaviour at TARGET

README.md says the check is “a dedicated CMake build option that turns every non-XNA-tagged declaration into a [[deprecated]] warning under -Werror” and points to CMakeLists.txt. cmake/Harnesses.cmake contains the only definition of CNA_STRICT_XNA_API, through target_compile_definitions on the two targets cna_strict_xna_api_check and cna_strict_xna_api_leak_check; no option() and no CMake variable of that name exists, and the CNAEXT macro in CNAHelper.hpp expands to [[deprecated]] only where the definition is present. The check is compiled only under GNU or Clang.

Source locations

Evidence

Read at 009d40f5; nothing was executed. CNA-VGAP-041 covers how little the check compiles; this entry is only the README's description of its mechanism.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

None: no test checks the README's description.

Regression test

Reword the bullet (a compile definition set on two harness targets) and point to cmake/Harnesses.cmake.

Blast radius

Readers who try -DCNA_STRICT_XNA_API=ON: nothing changes and nothing is checked.

Workaround

Define CNA_STRICT_XNA_API on the target to check (target_compile_definitions), as the site's build page explains.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Known issues
Bug index