diff --git a/.github/scripts/levelization/results/ordering.txt b/.github/scripts/levelization/results/ordering.txt index 4f818a9e69..821690ad80 100644 --- a/.github/scripts/levelization/results/ordering.txt +++ b/.github/scripts/levelization/results/ordering.txt @@ -325,4 +325,5 @@ xrpld.shamap > xrpl.nodestore xrpld.shamap > xrpl.protocol xrpld.shamap > xrpl.shamap xrpld.telemetry > xrpl.basics +xrpld.telemetry > xrpl.consensus xrpld.telemetry > xrpl.telemetry diff --git a/cmake/XrplCore.cmake b/cmake/XrplCore.cmake index 4761567232..40aa0add28 100644 --- a/cmake/XrplCore.cmake +++ b/cmake/XrplCore.cmake @@ -204,22 +204,16 @@ target_link_libraries( xrpl.libxrpl.conditions ) -add_module(xrpl consensus) -target_link_libraries( - xrpl.libxrpl.consensus - PUBLIC - xrpl.libxrpl.basics - xrpl.libxrpl.json - xrpl.libxrpl.protocol - xrpl.libxrpl.ledger -) - # Telemetry module — OpenTelemetry distributed tracing support. # Sources: include/xrpl/telemetry/ (headers), src/libxrpl/telemetry/ (impl). # When telemetry=ON, links the Conan-provided umbrella target # opentelemetry-cpp::opentelemetry-cpp (individual component targets like # ::api, ::sdk are not available in the Conan package). # +# Declared before its consumers (consensus, tx) because add_module isolates +# each module's headers: a module can only include xrpl/telemetry/ headers if +# it links this target, and the target must already exist at that point. +# # Links xrpl.libxrpl.protocol PRIVATELY for sha512Half (digest.h) add_module(xrpl telemetry) target_link_libraries( @@ -234,6 +228,19 @@ if(telemetry) ) endif() +# Links xrpl.libxrpl.telemetry for the consensus tracing spans declared in +# include/xrpl/consensus/ConsensusSpanNames.h. +add_module(xrpl consensus) +target_link_libraries( + xrpl.libxrpl.consensus + PUBLIC + xrpl.libxrpl.basics + xrpl.libxrpl.json + xrpl.libxrpl.protocol + xrpl.libxrpl.ledger + xrpl.libxrpl.telemetry +) + add_module(xrpl tx) target_link_libraries( xrpl.libxrpl.tx diff --git a/include/xrpl/consensus/Consensus.h b/include/xrpl/consensus/Consensus.h index 6b06de688b..ed2069b17f 100644 --- a/include/xrpl/consensus/Consensus.h +++ b/include/xrpl/consensus/Consensus.h @@ -1,10 +1,5 @@ #pragma once -#include -#include -#include -#include - #include #include #include @@ -13,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/src/xrpld/app/consensus/RCLConsensus.cpp b/src/xrpld/app/consensus/RCLConsensus.cpp index 8bbae641cc..508ac2bf14 100644 --- a/src/xrpld/app/consensus/RCLConsensus.cpp +++ b/src/xrpld/app/consensus/RCLConsensus.cpp @@ -16,9 +16,6 @@ #include #include #include -#include -#include -#include #include #include diff --git a/src/xrpld/overlay/detail/PeerImp.cpp b/src/xrpld/overlay/detail/PeerImp.cpp index cbaaf399ee..a6375ace06 100644 --- a/src/xrpld/overlay/detail/PeerImp.cpp +++ b/src/xrpld/overlay/detail/PeerImp.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include diff --git a/src/xrpld/telemetry/ConsensusReceiveTracing.h b/src/xrpld/telemetry/ConsensusReceiveTracing.h index 5b7582e13b..03974c5473 100644 --- a/src/xrpld/telemetry/ConsensusReceiveTracing.h +++ b/src/xrpld/telemetry/ConsensusReceiveTracing.h @@ -37,8 +37,7 @@ * validationReceive) so they stay in sync with the rest of Phase 4. */ -#include - +#include #include #include #include