Skip to content

Move Doxygen dir+ns+pages documentation into docs subdirectory #1316

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 4 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/bsoncxx/include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
COMPONENT dev
FILES_MATCHING
PATTERN "*.hpp"
PATTERN "bsoncxx/doc.hpp" EXCLUDE
PATTERN "bsoncxx/docs/*" EXCLUDE
PATTERN "bsoncxx/docs" EXCLUDE
)

file(GLOB_RECURSE bsoncxx_include_headers
Expand Down
90 changes: 90 additions & 0 deletions src/bsoncxx/include/bsoncxx/docs/top.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
// Copyright 2009-present MongoDB, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#if !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
#error "This file is for documentation purposes only. It should not be included."
#endif // !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)

///
/// @file
/// For documentation purposes only.
///
/// @note This header is not includable!
///

///
/// @dir include/bsoncxx
/// Provides headers declaring entities in @ref bsoncxx
///

///
/// @dir include/bsoncxx/docs
/// For documentation purposes only.
///

///
/// @namespace bsoncxx
/// The top-level namespace within which all bsoncxx library entities are declared.
///
/// In addition to declaring ABI namespaces (`v_noabi`, `v1`, etc.), this namespace also provides
/// "redeclarations" of entities within ABI namespaces. These redeclarations are intended to be the
/// preferred method for using bsoncxx library entities when ABI stability of the bsoncxx library is
/// NOT a requirement by the user. See [Root Namespace
/// Redeclarations](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/api-abi-versioning/abi-versioning/#std-label-cpp-abi-root-namespace-redec).
///

///
/// @namespace bsoncxx::array
/// Declares entities representing a BSON array.
///

///
/// @namespace bsoncxx::builder
/// Declares entities used to build BSON documents.
///

///
/// @namespace bsoncxx::builder::basic
/// Declares entities used with "basic" BSON builder syntax.
///

///
/// @namespace bsoncxx::builder::stream
/// Declares entities used with "streaming" BSON builder syntax.
///

///
/// @namespace bsoncxx::document
/// Declares entities representing a BSON document.
///

///
/// @namespace bsoncxx::stdx
/// Declares C++17 standard library polyfills.
///

///
/// @namespace bsoncxx::string
/// Declares entities related to handling string types.
///

///
/// @namespace bsoncxx::types
/// Declares entities representing BSON value types.
///

///
/// @namespace bsoncxx::types::bson_value
/// Declares entities representing any BSON value type.
///
Original file line number Diff line number Diff line change
Expand Up @@ -23,67 +23,6 @@
/// @note This header is not includable!
///

///
/// @dir include/bsoncxx
/// Provides headers declaring entities in @ref bsoncxx
///

///
/// @namespace bsoncxx
/// The top-level namespace within which all bsoncxx library entities are declared.
///
/// In addition to declaring ABI namespaces (`v_noabi`, `v1`, etc.), this namespace also provides
/// "redeclarations" of entities within ABI namespaces. These redeclarations are intended to be the
/// preferred method for using bsoncxx library entities when ABI stability of the bsoncxx library is
/// NOT a requirement by the user. See [Root Namespace
/// Redeclarations](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/api-abi-versioning/abi-versioning/#std-label-cpp-abi-root-namespace-redec).
///

///
/// @namespace bsoncxx::array
/// Declares entities representing a BSON array.
///

///
/// @namespace bsoncxx::builder
/// Declares entities used to build BSON documents.
///

///
/// @namespace bsoncxx::builder::basic
/// Declares entities used with "basic" BSON builder syntax.
///

///
/// @namespace bsoncxx::builder::stream
/// Declares entities used with "streaming" BSON builder syntax.
///

///
/// @namespace bsoncxx::document
/// Declares entities representing a BSON document.
///

///
/// @namespace bsoncxx::stdx
/// Declares C++17 standard library polyfills.
///

///
/// @namespace bsoncxx::string
/// Declares entities related to handling string types.
///

///
/// @namespace bsoncxx::types
/// Declares entities representing BSON value types.
///

///
/// @namespace bsoncxx::types::bson_value
/// Declares entities representing any BSON value type.
///

///
/// @page topic-bsoncxx The bsoncxx Library
/// @brief Topics relating to the bsoncxx library.
Expand Down
151 changes: 151 additions & 0 deletions src/bsoncxx/include/bsoncxx/docs/v_noabi.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
// Copyright 2009-present MongoDB, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#if !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
#error "This file is for documentation purposes only. It should not be included."
#endif // !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)

///
/// @file
/// For documentation purposes only.
///
/// @note This header is not includable!
///

///
/// @dir bsoncxx/v_noabi
/// The directory relative to which headers declaring entities in @ref bsoncxx::v_noabi are
/// typically included.
///
/// For backward compatibility, unstable ABI headers may be included using the syntax
/// `<bsoncxx/foo.hpp>`, which is equivalent to `<bsoncxx/v_noabi/bsoncxx/foo.hpp>`.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx
/// Provides headers declaring entities in @ref bsoncxx::v_noabi.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/array
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::array.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/builder
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/builder/basic
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder::basic.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/builder/stream
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder::stream.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/config
/// Provides headers related to bsoncxx library configuration.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/document
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::document.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/enums
/// Provides X macro headers over BSON types and binary subtypes.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/exception
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::exception.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/stdx
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::stdx.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/string
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::string.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/types
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::types.
///

///
/// @dir bsoncxx/v_noabi/bsoncxx/types/bson_value
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::types::bson_value.
///

///
/// @namespace bsoncxx::v_noabi
/// Declares entities whose ABI stability is NOT guaranteed.
///

///
/// @namespace bsoncxx::v_noabi::array
/// @copydoc bsoncxx::array
///

///
/// @namespace bsoncxx::v_noabi::builder
/// @copydoc bsoncxx::builder
///

///
/// @namespace bsoncxx::v_noabi::builder::basic
/// @copydoc bsoncxx::builder::basic
///

///
/// @namespace bsoncxx::v_noabi::builder::stream
/// @copydoc bsoncxx::builder::stream
///

///
/// @namespace bsoncxx::v_noabi::document
/// @copydoc bsoncxx::document
///

///
/// @namespace bsoncxx::v_noabi::stdx
/// @copydoc bsoncxx::stdx
///

///
/// @namespace bsoncxx::v_noabi::string
/// @copydoc bsoncxx::string
///

///
/// @namespace bsoncxx::v_noabi::types
/// @copydoc bsoncxx::types
///
/// @see
/// - @ref bsoncxx::v_noabi::types::bson_value
///

///
/// @namespace bsoncxx::v_noabi::types::bson_value
/// Declares entities representing any BSON value type.
///
Loading