Refactor cmake (#1231)

Fixes #920.
This commit is contained in:
Sergey Kuznetsov
2024-03-06 16:29:26 +00:00
committed by GitHub
parent 1842f26826
commit d47f3b71bd
43 changed files with 491 additions and 438 deletions

7
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,7 @@
add_subdirectory(util)
add_subdirectory(data)
add_subdirectory(etl)
add_subdirectory(feed)
add_subdirectory(rpc)
add_subdirectory(web)
add_subdirectory(main)

17
src/data/CMakeLists.txt Normal file
View File

@@ -0,0 +1,17 @@
add_library(clio_data)
target_sources(
clio_data
PRIVATE BackendCounters.cpp
BackendInterface.cpp
LedgerCache.cpp
cassandra/impl/Future.cpp
cassandra/impl/Cluster.cpp
cassandra/impl/Batch.cpp
cassandra/impl/Result.cpp
cassandra/impl/Tuple.cpp
cassandra/impl/SslContext.cpp
cassandra/Handle.cpp
cassandra/SettingsProvider.cpp
)
target_link_libraries(clio_data PUBLIC cassandra-cpp-driver::cassandra-cpp-driver clio_util)

17
src/etl/CMakeLists.txt Normal file
View File

@@ -0,0 +1,17 @@
add_library(clio_etl)
target_sources(
clio_etl
PRIVATE NFTHelpers.cpp
ETLService.cpp
ETLState.cpp
LoadBalancer.cpp
CacheLoaderSettings.cpp
Source.cpp
impl/ForwardingCache.cpp
impl/ForwardingSource.cpp
impl/GrpcSource.cpp
impl/SubscriptionSource.cpp
)
target_link_libraries(clio_etl PUBLIC clio_data)

7
src/feed/CMakeLists.txt Normal file
View File

@@ -0,0 +1,7 @@
add_library(clio_feed)
target_sources(
clio_feed PRIVATE SubscriptionManager.cpp impl/TransactionFeed.cpp impl/LedgerFeed.cpp
impl/ProposedTransactionFeed.cpp impl/SingleFeedBase.cpp
)
target_link_libraries(clio_feed PRIVATE clio_util)

15
src/main/CMakeLists.txt Normal file
View File

@@ -0,0 +1,15 @@
add_library(clio)
target_sources(clio PRIVATE impl/Build.cpp)
target_link_libraries(clio PUBLIC clio_etl clio_feed clio_web clio_rpc)
target_compile_features(clio PUBLIC cxx_std_20)
# Clio server
add_executable(clio_server)
target_sources(clio_server PRIVATE Main.cpp)
target_link_libraries(clio_server PRIVATE clio)
target_link_options(
clio_server PRIVATE $<$<AND:$<NOT:$<BOOL:${APPLE}>>,$<NOT:$<BOOL:${san}>>>:-static-libstdc++ -static-libgcc>
)
set_target_properties(clio_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

44
src/rpc/CMakeLists.txt Normal file
View File

@@ -0,0 +1,44 @@
add_library(clio_rpc)
target_sources(
clio_rpc
PRIVATE Errors.cpp
Factories.cpp
AMMHelpers.cpp
RPCHelpers.cpp
Counters.cpp
WorkQueue.cpp
common/Specs.cpp
common/Validators.cpp
common/MetaProcessors.cpp
common/impl/APIVersionParser.cpp
common/impl/HandlerProvider.cpp
handlers/AccountChannels.cpp
handlers/AccountCurrencies.cpp
handlers/AccountInfo.cpp
handlers/AccountLines.cpp
handlers/AccountNFTs.cpp
handlers/AccountObjects.cpp
handlers/AccountOffers.cpp
handlers/AccountTx.cpp
handlers/AMMInfo.cpp
handlers/BookChanges.cpp
handlers/BookOffers.cpp
handlers/DepositAuthorized.cpp
handlers/GatewayBalances.cpp
handlers/Ledger.cpp
handlers/LedgerData.cpp
handlers/LedgerEntry.cpp
handlers/LedgerRange.cpp
handlers/NFTsByIssuer.cpp
handlers/NFTBuyOffers.cpp
handlers/NFTHistory.cpp
handlers/NFTInfo.cpp
handlers/NFTOffersCommon.cpp
handlers/NFTSellOffers.cpp
handlers/NoRippleCheck.cpp
handlers/Random.cpp
handlers/TransactionEntry.cpp
)
target_link_libraries(clio_rpc PRIVATE clio_util)

44
src/util/CMakeLists.txt Normal file
View File

@@ -0,0 +1,44 @@
add_library(clio_util)
target_sources(
clio_util
PRIVATE config/Config.cpp
log/Logger.cpp
prometheus/Http.cpp
prometheus/Label.cpp
prometheus/MetricBase.cpp
prometheus/MetricBuilder.cpp
prometheus/MetricsFamily.cpp
prometheus/OStream.cpp
prometheus/Prometheus.cpp
Random.cpp
Retry.cpp
requests/RequestBuilder.cpp
requests/Types.cpp
requests/WsConnection.cpp
requests/impl/SslContext.cpp
Taggable.cpp
TerminationHandler.cpp
TxUtils.cpp
LedgerUtils.cpp
)
target_link_libraries(
clio_util
PUBLIC Boost::headers
Boost::stacktrace_backtrace
dl
libbacktrace::libbacktrace
fmt::fmt
openssl::openssl
xrpl::libxrpl
Threads::Threads
clio_options
)
if (is_gcc)
# FIXME: needed on gcc for now
#
# For some reason cmake doesn't propagate the compile definitions from clio_options so we need to add them here
target_compile_definitions(clio_util PUBLIC BOOST_ASIO_DISABLE_CONCEPTS)
endif ()

5
src/web/CMakeLists.txt Normal file
View File

@@ -0,0 +1,5 @@
add_library(clio_web)
target_sources(clio_web PRIVATE impl/AdminVerificationStrategy.cpp IntervalSweepHandler.cpp Resolver.cpp)
target_link_libraries(clio_web PUBLIC clio_util)