CXX-2750 Remove references to BSONCXX_ABI_VERSION and MONGOCXX_ABI_VERSION #1034
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.
Resolves CXX-2750. (Excuse the ticket/branch number confusion; this PR does not address CXX-2745, although it makes preparations for it.)
To accomodate the presence of multiple ABI namespaces, the
BSONCXX_ABI_VERSION
andMONGOCXX_ABI_VERSION
CMake variables are no longer suitable, as they imply the presence of only a single definitive ABI version. This PR substitutes all current references to these variables with an explicit_noabi
(the current and only supported ABI version). This includes the following changes to derivative variables:${<NAME>_ABI_NAMESPACE}
->_noabi
${<NAME>_HEADER_INSTALL_DIR}
->${CMAKE_INSTALL_INCLUDEDIR}/<name>/v_noabi
${<NAME>_INLINE_NAMESPACE}
->v_noabi
These changes are primarily concerned with CMake project configuration variables and corresponding package config files. These changes should NOT affect the source or binary compatibility of the
v_noabi
libraries (verified by this compat report), and they should not affect downstream users of the CXX Driver using any of the primary supported package import methods.There is one benign exception: the
bsoncxx::v_noabi::k_silence_doxygen
symbol inbsoncxx/json.hpp
(which has no definition) is removed (identified by the mention of the inline namespace macro in the corresponding documentation comment). It is no longer relevant or necessary due to theExtendedJsonMode
enumeration being placed between the inline namespace macro andto_json()
. This symbol appears to be solely for documentation-purposes. It's removal is technically a source compatibility break (as indicated by the compat report linked above), but I do not expect this should affect any downstream users (it really shouldn't).