Skip to content

CXX-2750 Remove references to BSONCXX_ABI_VERSION and MONGOCXX_ABI_VERSION #1034

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 9, 2023

Conversation

eramongodb
Copy link
Contributor

@eramongodb eramongodb commented Oct 6, 2023

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 and MONGOCXX_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 in bsoncxx/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 the ExtendedJsonMode enumeration being placed between the inline namespace macro and to_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).

@eramongodb eramongodb requested a review from kevinAlbs October 6, 2023 14:38
@eramongodb eramongodb self-assigned this Oct 6, 2023
@eramongodb eramongodb changed the title CXX-2745 Remove references to BSONCXX_ABI_VERSION and MONGOCXX_ABI_VERSION CXX-2750 Remove references to BSONCXX_ABI_VERSION and MONGOCXX_ABI_VERSION Oct 6, 2023
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