Skip to content

Commit

Permalink
Use the same compiler options for xrpl.libxrpl and all its submodules
Browse files Browse the repository at this point in the history
* Resolves an issue introduced by XRPLF#5111, which inadvertently removed the
  -Wno-maybe-uninitialized compiler option from those modules. This
  resulted in new "may be used uninitialized" build warnings, first
  noticed in the "protocol" module. When compiling with derr=TRUE, those
  warnings became errors, which made the build fail.
  • Loading branch information
ximinez committed Dec 19, 2024
1 parent 31ce7c8 commit e103657
Showing 1 changed file with 48 additions and 32 deletions.
80 changes: 48 additions & 32 deletions cmake/RippledCore.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -67,34 +67,41 @@ include(target_link_modules)

# Level 01
add_module(xrpl beast)
list(APPEND submodules beast)
target_link_libraries(xrpl.libxrpl.beast PUBLIC
xrpl.imports.main
xrpl.libpb
)

# Level 02
add_module(xrpl basics)
list(APPEND submodules basics)
target_link_libraries(xrpl.libxrpl.basics PUBLIC xrpl.libxrpl.beast)

# Level 03
add_module(xrpl json)
list(APPEND submodules json)
target_link_libraries(xrpl.libxrpl.json PUBLIC xrpl.libxrpl.basics)

add_module(xrpl crypto)
list(APPEND submodules crypto)
target_link_libraries(xrpl.libxrpl.crypto PUBLIC xrpl.libxrpl.basics)

# Level 04
add_module(xrpl protocol)
list(APPEND submodules protocol)
target_link_libraries(xrpl.libxrpl.protocol PUBLIC
xrpl.libxrpl.crypto
xrpl.libxrpl.json
)

# Level 05
add_module(xrpl resource)
list(APPEND submodules resource)
target_link_libraries(xrpl.libxrpl.resource PUBLIC xrpl.libxrpl.protocol)

add_module(xrpl server)
list(APPEND submodules server)
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)


Expand All @@ -112,13 +119,7 @@ file(GLOB_RECURSE sources CONFIGURE_DEPENDS
target_sources(xrpl.libxrpl PRIVATE ${sources})

target_link_modules(xrpl PUBLIC
basics
beast
crypto
json
protocol
resource
server
${submodules}
)

# All headers in libxrpl are in modules.
Expand All @@ -130,33 +131,48 @@ target_link_modules(xrpl PUBLIC
# $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
# $<INSTALL_INTERFACE:include>)

target_compile_definitions(xrpl.libxrpl
PUBLIC
BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT
BOOST_CONTAINER_FWD_BAD_DEQUE
HAS_UNCAUGHT_EXCEPTIONS=1)

target_compile_options(xrpl.libxrpl
PUBLIC
$<$<BOOL:${is_gcc}>:-Wno-maybe-uninitialized>
$<$<BOOL:${voidstar}>:-DENABLE_VOIDSTAR>
# These settings must be applied to all the header modules, too.
set(base "xrpl.libxrpl")
foreach(submodule
""
${submodules}
)
STRING(LENGTH "${submodule}" len)
if(len EQUAL 0)
set(module "${base}")
else()
set(module "${base}.${submodule}")
endif()
message(STATUS "Setting up module ${module}")

target_compile_definitions("${module}"
PUBLIC
BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT
BOOST_CONTAINER_FWD_BAD_DEQUE
HAS_UNCAUGHT_EXCEPTIONS=1)

target_compile_options("${module}"
PUBLIC
$<$<BOOL:${is_gcc}>:-Wno-maybe-uninitialized>
$<$<BOOL:${voidstar}>:-DENABLE_VOIDSTAR>
)

target_link_libraries(xrpl.libxrpl
PUBLIC
LibArchive::LibArchive
OpenSSL::Crypto
Ripple::boost
Ripple::opts
Ripple::syslibs
absl::random_random
date::date
ed25519::ed25519
secp256k1::secp256k1
xrpl.libpb
xxHash::xxhash
$<$<BOOL:${voidstar}>:antithesis-sdk-cpp>
)
target_link_libraries("${module}"
PUBLIC
LibArchive::LibArchive
OpenSSL::Crypto
Ripple::boost
Ripple::opts
Ripple::syslibs
absl::random_random
date::date
ed25519::ed25519
secp256k1::secp256k1
xrpl.libpb
xxHash::xxhash
$<$<BOOL:${voidstar}>:antithesis-sdk-cpp>
)
endforeach()

if(xrpld)
add_executable(rippled)
Expand Down

0 comments on commit e103657

Please sign in to comment.