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
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
README.md— the Verification methodology bulletcmake/Harnesses.cmake— the only place CNA_STRICT_XNA_API is definedmodules/core/include/CNA/CNAHelper.hpp— CNAEXT under #ifdef CNA_STRICT_XNA_API
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.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Building CNA · CNAEXT engine layer
- Deep dives
- CNAEXT catalogue · Compatibility and evidence
- Known issues
- Bug index