diff --git a/Builds/CMake/RippledCore.cmake b/Builds/CMake/RippledCore.cmake index a104f5626..9f2cdc921 100644 --- a/Builds/CMake/RippledCore.cmake +++ b/Builds/CMake/RippledCore.cmake @@ -48,13 +48,9 @@ target_sources (xrpl_core PRIVATE src/ripple/beast/net/impl/IPAddressV6.cpp src/ripple/beast/net/impl/IPEndpoint.cpp src/ripple/beast/utility/src/beast_Journal.cpp - src/ripple/beast/utility/src/beast_PropertyStream.cpp) - -# Conditionally add enhanced logging source when BEAST_ENHANCED_LOGGING is enabled -if(DEFINED BEAST_ENHANCED_LOGGING AND BEAST_ENHANCED_LOGGING) - target_sources(xrpl_core PRIVATE - src/ripple/beast/utility/src/beast_EnhancedLogging.cpp) -endif() + src/ripple/beast/utility/src/beast_PropertyStream.cpp + # Enhanced logging - compiles to empty when BEAST_ENHANCED_LOGGING is not defined + src/ripple/beast/utility/src/beast_EnhancedLogging.cpp) #[===============================[ core sources @@ -162,12 +158,16 @@ target_link_libraries (xrpl_core date::date Ripple::opts) -# Link date-tz library when enhanced logging is enabled -if(DEFINED BEAST_ENHANCED_LOGGING AND BEAST_ENHANCED_LOGGING) - if(TARGET date::date-tz) - target_link_libraries(xrpl_core PUBLIC date::date-tz) - endif() +# date-tz for enhanced logging (always linked, code is #ifdef guarded) +if(TARGET date::date-tz) + target_link_libraries(xrpl_core PUBLIC date::date-tz) endif() + +# BEAST_ENHANCED_LOGGING: enable for Debug builds OR when explicitly requested +# Uses generator expression so it works with multi-config generators (Xcode, VS, Ninja Multi-Config) +target_compile_definitions(xrpl_core PUBLIC + $<$,$>:BEAST_ENHANCED_LOGGING=1> +) #[=================================[ main/core headers installation #]=================================] diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a31d4931..d9d42149e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,20 +37,11 @@ endif() #git set(SOURCE_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/") add_definitions(-DSOURCE_ROOT_PATH="${SOURCE_ROOT_PATH}") -# BEAST_ENHANCED_LOGGING option - adds file:line numbers and formatting to logs -# Default to ON for Debug builds, OFF for Release -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - option(BEAST_ENHANCED_LOGGING "Include file and line numbers in log messages" ON) -else() - option(BEAST_ENHANCED_LOGGING "Include file and line numbers in log messages" OFF) -endif() - -if(BEAST_ENHANCED_LOGGING) - add_definitions(-DBEAST_ENHANCED_LOGGING=1) - message(STATUS "Log line numbers enabled") -else() - message(STATUS "Log line numbers disabled") -endif() +# BEAST_ENHANCED_LOGGING - adds file:line numbers and formatting to logs +# Automatically enabled for Debug builds via generator expression +# Can be explicitly controlled with -DBEAST_ENHANCED_LOGGING=ON/OFF +option(BEAST_ENHANCED_LOGGING "Include file and line numbers in log messages (auto: Debug=ON, Release=OFF)" OFF) +message(STATUS "BEAST_ENHANCED_LOGGING option: ${BEAST_ENHANCED_LOGGING}") if(thread_safety_analysis) add_compile_options(-Wthread-safety -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DRIPPLE_ENABLE_THREAD_SAFETY_ANNOTATIONS) diff --git a/src/ripple/beast/utility/src/beast_EnhancedLogging.cpp b/src/ripple/beast/utility/src/beast_EnhancedLogging.cpp index c5f34bd88..f5a608dd0 100644 --- a/src/ripple/beast/utility/src/beast_EnhancedLogging.cpp +++ b/src/ripple/beast/utility/src/beast_EnhancedLogging.cpp @@ -17,6 +17,8 @@ */ //============================================================================== +#ifdef BEAST_ENHANCED_LOGGING + #include #include #include @@ -112,3 +114,5 @@ log_write_location_string(std::ostream& os, const char* file, int line) } // namespace detail } // namespace beast + +#endif // BEAST_ENHANCED_LOGGING