From 0c74270b055133a57a497b5c9fc5a75f7647b1f4 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Thu, 5 Mar 2026 19:17:43 +0000 Subject: [PATCH 01/82] chore: Use gersemi instead of ancient cmake-format (#6486) --- .cmake-format.yaml | 247 ---------------------------------------- .pre-commit-config.yaml | 7 +- 2 files changed, 3 insertions(+), 251 deletions(-) delete mode 100644 .cmake-format.yaml diff --git a/.cmake-format.yaml b/.cmake-format.yaml deleted file mode 100644 index 40c1101208..0000000000 --- a/.cmake-format.yaml +++ /dev/null @@ -1,247 +0,0 @@ -_help_parse: Options affecting listfile parsing -parse: - _help_additional_commands: - - Specify structure for custom cmake functions - additional_commands: - target_protobuf_sources: - pargs: - - target - - prefix - kwargs: - PROTOS: "*" - LANGUAGE: cpp - IMPORT_DIRS: "*" - GENERATE_EXTENSIONS: "*" - PLUGIN: "*" - _help_override_spec: - - Override configurations per-command where available - override_spec: {} - _help_vartags: - - Specify variable tags. - vartags: [] - _help_proptags: - - Specify property tags. - proptags: [] -_help_format: Options affecting formatting. -format: - _help_disable: - - Disable formatting entirely, making cmake-format a no-op - disable: false - _help_line_width: - - How wide to allow formatted cmake files - line_width: 100 - _help_tab_size: - - How many spaces to tab for indent - tab_size: 4 - _help_use_tabchars: - - If true, lines are indented using tab characters (utf-8 - - 0x09) instead of space characters (utf-8 0x20). - - In cases where the layout would require a fractional tab - - character, the behavior of the fractional indentation is - - governed by - use_tabchars: false - _help_fractional_tab_policy: - - If is True, then the value of this variable - - indicates how fractional indentions are handled during - - whitespace replacement. If set to 'use-space', fractional - - indentation is left as spaces (utf-8 0x20). If set to - - "`round-up` fractional indentation is replaced with a single" - - tab character (utf-8 0x09) effectively shifting the column - - to the next tabstop - fractional_tab_policy: use-space - _help_max_subgroups_hwrap: - - If an argument group contains more than this many sub-groups - - (parg or kwarg groups) then force it to a vertical layout. - max_subgroups_hwrap: 4 - _help_max_pargs_hwrap: - - If a positional argument group contains more than this many - - arguments, then force it to a vertical layout. - max_pargs_hwrap: 5 - _help_max_rows_cmdline: - - If a cmdline positional group consumes more than this many - - lines without nesting, then invalidate the layout (and nest) - max_rows_cmdline: 2 - _help_separate_ctrl_name_with_space: - - If true, separate flow control names from their parentheses - - with a space - separate_ctrl_name_with_space: true - _help_separate_fn_name_with_space: - - If true, separate function names from parentheses with a - - space - separate_fn_name_with_space: false - _help_dangle_parens: - - If a statement is wrapped to more than one line, than dangle - - the closing parenthesis on its own line. - dangle_parens: false - _help_dangle_align: - - If the trailing parenthesis must be 'dangled' on its on - - "line, then align it to this reference: `prefix`: the start" - - "of the statement, `prefix-indent`: the start of the" - - "statement, plus one indentation level, `child`: align to" - - the column of the arguments - dangle_align: prefix - _help_min_prefix_chars: - - If the statement spelling length (including space and - - parenthesis) is smaller than this amount, then force reject - - nested layouts. - min_prefix_chars: 18 - _help_max_prefix_chars: - - If the statement spelling length (including space and - - parenthesis) is larger than the tab width by more than this - - amount, then force reject un-nested layouts. - max_prefix_chars: 10 - _help_max_lines_hwrap: - - If a candidate layout is wrapped horizontally but it exceeds - - this many lines, then reject the layout. - max_lines_hwrap: 2 - _help_line_ending: - - What style line endings to use in the output. - line_ending: unix - _help_command_case: - - Format command names consistently as 'lower' or 'upper' case - command_case: canonical - _help_keyword_case: - - Format keywords consistently as 'lower' or 'upper' case - keyword_case: unchanged - _help_always_wrap: - - A list of command names which should always be wrapped - always_wrap: [] - _help_enable_sort: - - If true, the argument lists which are known to be sortable - - will be sorted lexicographicall - enable_sort: true - _help_autosort: - - If true, the parsers may infer whether or not an argument - - list is sortable (without annotation). - autosort: true - _help_require_valid_layout: - - By default, if cmake-format cannot successfully fit - - everything into the desired linewidth it will apply the - - last, most aggressive attempt that it made. If this flag is - - True, however, cmake-format will print error, exit with non- - - zero status code, and write-out nothing - require_valid_layout: false - _help_layout_passes: - - A dictionary mapping layout nodes to a list of wrap - - decisions. See the documentation for more information. - layout_passes: {} -_help_markup: Options affecting comment reflow and formatting. -markup: - _help_bullet_char: - - What character to use for bulleted lists - bullet_char: "-" - _help_enum_char: - - What character to use as punctuation after numerals in an - - enumerated list - enum_char: . - _help_first_comment_is_literal: - - If comment markup is enabled, don't reflow the first comment - - block in each listfile. Use this to preserve formatting of - - your copyright/license statements. - first_comment_is_literal: false - _help_literal_comment_pattern: - - If comment markup is enabled, don't reflow any comment block - - which matches this (regex) pattern. Default is `None` - - (disabled). - literal_comment_pattern: null - _help_fence_pattern: - - Regular expression to match preformat fences in comments - - default= ``r'^\s*([`~]{3}[`~]*)(.*)$'`` - fence_pattern: ^\s*([`~]{3}[`~]*)(.*)$ - _help_ruler_pattern: - - Regular expression to match rulers in comments default= - - '``r''^\s*[^\w\s]{3}.*[^\w\s]{3}$''``' - ruler_pattern: ^\s*[^\w\s]{3}.*[^\w\s]{3}$ - _help_explicit_trailing_pattern: - - If a comment line matches starts with this pattern then it - - is explicitly a trailing comment for the preceding - - argument. Default is '#<' - explicit_trailing_pattern: "#<" - _help_hashruler_min_length: - - If a comment line starts with at least this many consecutive - - hash characters, then don't lstrip() them off. This allows - - for lazy hash rulers where the first hash char is not - - separated by space - hashruler_min_length: 10 - _help_canonicalize_hashrulers: - - If true, then insert a space between the first hash char and - - remaining hash chars in a hash ruler, and normalize its - - length to fill the column - canonicalize_hashrulers: true - _help_enable_markup: - - enable comment markup parsing and reflow - enable_markup: false -_help_lint: Options affecting the linter -lint: - _help_disabled_codes: - - a list of lint codes to disable - disabled_codes: [] - _help_function_pattern: - - regular expression pattern describing valid function names - function_pattern: "[0-9a-z_]+" - _help_macro_pattern: - - regular expression pattern describing valid macro names - macro_pattern: "[0-9A-Z_]+" - _help_global_var_pattern: - - regular expression pattern describing valid names for - - variables with global (cache) scope - global_var_pattern: "[A-Z][0-9A-Z_]+" - _help_internal_var_pattern: - - regular expression pattern describing valid names for - - variables with global scope (but internal semantic) - internal_var_pattern: _[A-Z][0-9A-Z_]+ - _help_local_var_pattern: - - regular expression pattern describing valid names for - - variables with local scope - local_var_pattern: "[a-z][a-z0-9_]+" - _help_private_var_pattern: - - regular expression pattern describing valid names for - - privatedirectory variables - private_var_pattern: _[0-9a-z_]+ - _help_public_var_pattern: - - regular expression pattern describing valid names for public - - directory variables - public_var_pattern: "[A-Z][0-9A-Z_]+" - _help_argument_var_pattern: - - regular expression pattern describing valid names for - - function/macro arguments and loop variables. - argument_var_pattern: "[a-z][a-z0-9_]+" - _help_keyword_pattern: - - regular expression pattern describing valid names for - - keywords used in functions or macros - keyword_pattern: "[A-Z][0-9A-Z_]+" - _help_max_conditionals_custom_parser: - - In the heuristic for C0201, how many conditionals to match - - within a loop in before considering the loop a parser. - max_conditionals_custom_parser: 2 - _help_min_statement_spacing: - - Require at least this many newlines between statements - min_statement_spacing: 1 - _help_max_statement_spacing: - - Require no more than this many newlines between statements - max_statement_spacing: 2 - max_returns: 6 - max_branches: 12 - max_arguments: 5 - max_localvars: 15 - max_statements: 50 -_help_encode: Options affecting file encoding -encode: - _help_emit_byteorder_mark: - - If true, emit the unicode byte-order mark (BOM) at the start - - of the file - emit_byteorder_mark: false - _help_input_encoding: - - Specify the encoding of the input file. Defaults to utf-8 - input_encoding: utf-8 - _help_output_encoding: - - Specify the encoding of the output file. Defaults to utf-8. - - Note that cmake only claims to support utf-8 so be careful - - when using anything else - output_encoding: utf-8 -_help_misc: Miscellaneous configurations options. -misc: - _help_per_command: - - A dictionary containing any per-command configuration - - overrides. Currently only `command_case` is supported. - per_command: {} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2d0ff63b38..586cfe860c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -26,11 +26,10 @@ repos: args: [--style=file] "types_or": [c++, c, proto] - - repo: https://github.com/cheshirekow/cmake-format-precommit - rev: e2c2116d86a80e72e7146a06e68b7c228afc6319 # frozen: v0.6.13 + - repo: https://github.com/BlankSpruce/gersemi + rev: 0.26.0 hooks: - - id: cmake-format - additional_dependencies: [PyYAML] + - id: gersemi - repo: https://github.com/rbubley/mirrors-prettier rev: c2bc67fe8f8f549cc489e00ba8b45aa18ee713b1 # frozen: v3.8.1 From af0ec7defdac8dde0c32fec58e79f70c6a7fcf77 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Thu, 5 Mar 2026 19:18:31 +0000 Subject: [PATCH 02/82] chore: Apply gersemi changes (#6486) --- CMakeLists.txt | 97 ++++--- cmake/CMakeFuncs.cmake | 37 +-- cmake/Ccache.cmake | 52 ++-- cmake/CodeCoverage.cmake | 415 ++++++++++++++++++---------- cmake/CompilationEnv.cmake | 30 +- cmake/GitInfo.cmake | 19 +- cmake/XrplAddTest.cmake | 12 +- cmake/XrplCompiler.cmake | 283 ++++++++++--------- cmake/XrplConfig.cmake | 70 ++--- cmake/XrplCore.cmake | 183 ++++++++---- cmake/XrplCov.cmake | 37 +-- cmake/XrplDocs.cmake | 77 +++--- cmake/XrplInstall.cmake | 114 +++++--- cmake/XrplInterface.cmake | 108 ++++---- cmake/XrplSanitizers.cmake | 132 +++++---- cmake/XrplSanity.cmake | 55 ++-- cmake/XrplSettings.cmake | 140 ++++++---- cmake/XrplValidatorKeys.cmake | 28 +- cmake/XrplVersion.cmake | 14 +- cmake/add_module.cmake | 22 +- cmake/create_symbolic_link.cmake | 26 +- cmake/deps/Boost.cmake | 79 +++--- cmake/isolate_headers.cmake | 4 +- cmake/target_link_modules.cmake | 13 +- cmake/target_protobuf_sources.cmake | 35 ++- src/tests/libxrpl/CMakeLists.txt | 9 +- 26 files changed, 1264 insertions(+), 827 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f0d8519327..7ca0798ae4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,16 @@ cmake_minimum_required(VERSION 3.16) -if (POLICY CMP0074) +if(POLICY CMP0074) cmake_policy(SET CMP0074 NEW) -endif () -if (POLICY CMP0077) +endif() +if(POLICY CMP0077) cmake_policy(SET CMP0077 NEW) -endif () +endif() # Fix "unrecognized escape" issues when passing CMAKE_MODULE_PATH on Windows. -if (DEFINED CMAKE_MODULE_PATH) +if(DEFINED CMAKE_MODULE_PATH) file(TO_CMAKE_PATH "${CMAKE_MODULE_PATH}" CMAKE_MODULE_PATH) -endif () +endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") project(xrpl) @@ -21,57 +21,64 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) include(CompilationEnv) -if (is_gcc) +if(is_gcc) # GCC-specific fixes add_compile_options(-Wno-unknown-pragmas -Wno-subobject-linkage) # -Wno-subobject-linkage can be removed when we upgrade GCC version to at least 13.3 -elseif (is_clang) +elseif(is_clang) # Clang-specific fixes add_compile_options(-Wno-unknown-warning-option) # Ignore unknown warning options -elseif (is_msvc) +elseif(is_msvc) # MSVC-specific fixes add_compile_options(/wd4068) # Ignore unknown pragmas -endif () +endif() # Enable ccache to speed up builds. include(Ccache) -if (thread_safety_analysis) - add_compile_options(-Wthread-safety -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS - -DXRPL_ENABLE_THREAD_SAFETY_ANNOTATIONS) +if(thread_safety_analysis) + add_compile_options( + -Wthread-safety + -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS + -DXRPL_ENABLE_THREAD_SAFETY_ANNOTATIONS + ) add_compile_options("-stdlib=libc++") add_link_options("-stdlib=libc++") -endif () +endif() include(CheckCXXCompilerFlag) include(FetchContent) include(ExternalProject) include(CMakeFuncs) # must come *after* ExternalProject b/c it overrides one function in EP -if (target) - message(FATAL_ERROR "The target option has been removed - use native cmake options to control build" +if(target) + message( + FATAL_ERROR + "The target option has been removed - use native cmake options to control build" ) -endif () +endif() include(XrplSanity) include(XrplVersion) include(XrplSettings) # this check has to remain in the top-level cmake because of the early return statement -if (packages_only) - if (NOT TARGET rpm) - message(FATAL_ERROR "packages_only requested, but targets were not created - is docker installed?" +if(packages_only) + if(NOT TARGET rpm) + message( + FATAL_ERROR + "packages_only requested, but targets were not created - is docker installed?" ) - endif () + endif() return() -endif () +endif() include(XrplCompiler) include(XrplSanitizers) include(XrplInterface) option(only_docs "Include only the docs target?" FALSE) include(XrplDocs) -if (only_docs) +if(only_docs) return() -endif () +endif() include(deps/Boost) @@ -90,42 +97,46 @@ find_package(xxHash REQUIRED) target_link_libraries( xrpl_libs - INTERFACE ed25519::ed25519 - lz4::lz4 - OpenSSL::Crypto - OpenSSL::SSL - secp256k1::secp256k1 - soci::soci - SQLite::SQLite3) + INTERFACE + ed25519::ed25519 + lz4::lz4 + OpenSSL::Crypto + OpenSSL::SSL + secp256k1::secp256k1 + soci::soci + SQLite::SQLite3 +) option(rocksdb "Enable RocksDB" ON) -if (rocksdb) +if(rocksdb) find_package(RocksDB REQUIRED) - set_target_properties(RocksDB::rocksdb PROPERTIES INTERFACE_COMPILE_DEFINITIONS - XRPL_ROCKSDB_AVAILABLE=1) + set_target_properties( + RocksDB::rocksdb + PROPERTIES INTERFACE_COMPILE_DEFINITIONS XRPL_ROCKSDB_AVAILABLE=1 + ) target_link_libraries(xrpl_libs INTERFACE RocksDB::rocksdb) -endif () +endif() # Work around changes to Conan recipe for now. -if (TARGET nudb::core) +if(TARGET nudb::core) set(nudb nudb::core) -elseif (TARGET NuDB::nudb) +elseif(TARGET NuDB::nudb) set(nudb NuDB::nudb) -else () +else() message(FATAL_ERROR "unknown nudb target") -endif () +endif() target_link_libraries(xrpl_libs INTERFACE ${nudb}) -if (coverage) +if(coverage) include(XrplCov) -endif () +endif() set(PROJECT_EXPORT_SET XrplExports) include(XrplCore) include(XrplInstall) include(XrplValidatorKeys) -if (tests) +if(tests) include(CTest) add_subdirectory(src/tests/libxrpl) -endif () +endif() diff --git a/cmake/CMakeFuncs.cmake b/cmake/CMakeFuncs.cmake index ec2d9db330..391ed3364c 100644 --- a/cmake/CMakeFuncs.cmake +++ b/cmake/CMakeFuncs.cmake @@ -1,29 +1,32 @@ -macro (exclude_from_default target_) +macro(exclude_from_default target_) set_target_properties(${target_} PROPERTIES EXCLUDE_FROM_ALL ON) set_target_properties(${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON) -endmacro () +endmacro() -macro (exclude_if_included target_) +macro(exclude_if_included target_) get_directory_property(has_parent PARENT_DIRECTORY) - if (has_parent) + if(has_parent) exclude_from_default(${target_}) - endif () -endmacro () + endif() +endmacro() find_package(Git) -function (git_branch branch_val) - if (NOT GIT_FOUND) +function(git_branch branch_val) + if(NOT GIT_FOUND) return() - endif () + endif() set(_branch "") - execute_process(COMMAND ${GIT_EXECUTABLE} "rev-parse" "--abbrev-ref" "HEAD" - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE _git_exit_code - OUTPUT_VARIABLE _temp_branch - OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) - if (_git_exit_code EQUAL 0) + execute_process( + COMMAND ${GIT_EXECUTABLE} "rev-parse" "--abbrev-ref" "HEAD" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE _git_exit_code + OUTPUT_VARIABLE _temp_branch + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(_git_exit_code EQUAL 0) set(_branch ${_temp_branch}) - endif () + endif() set(${branch_val} "${_branch}" PARENT_SCOPE) -endfunction () +endfunction() diff --git a/cmake/Ccache.cmake b/cmake/Ccache.cmake index e34627ad8a..f8972dbb30 100644 --- a/cmake/Ccache.cmake +++ b/cmake/Ccache.cmake @@ -1,50 +1,62 @@ find_program(CCACHE_PATH "ccache") -if (NOT CCACHE_PATH) +if(NOT CCACHE_PATH) return() -endif () +endif() # For Linux and macOS we can use the ccache binary directly. -if (NOT MSVC) +if(NOT MSVC) set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}") set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}") message(STATUS "Found ccache: ${CCACHE_PATH}") return() -endif () +endif() # For Windows more effort is required. The code below is a modified version of # https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage-with-cmake. -if ("${CCACHE_PATH}" MATCHES "chocolatey") +if("${CCACHE_PATH}" MATCHES "chocolatey") message(DEBUG "Ccache path: ${CCACHE_PATH}") # Chocolatey uses a shim executable that we cannot use directly, in which case we have to find the executable it # points to. If we cannot find the target executable then we cannot use ccache. find_program(BASH_PATH "bash") - if (NOT BASH_PATH) + if(NOT BASH_PATH) message(WARNING "Could not find bash.") return() - endif () + endif() - execute_process(COMMAND bash -c - "export LC_ALL='en_US.UTF-8'; ${CCACHE_PATH} --shimgen-noop | grep -oP 'path to executable: \\K.+' | head -c -1" - OUTPUT_VARIABLE CCACHE_PATH) + execute_process( + COMMAND + bash -c + "export LC_ALL='en_US.UTF-8'; ${CCACHE_PATH} --shimgen-noop | grep -oP 'path to executable: \\K.+' | head -c -1" + OUTPUT_VARIABLE CCACHE_PATH + ) - if (NOT CCACHE_PATH) + if(NOT CCACHE_PATH) message(WARNING "Could not find ccache target.") return() - endif () + endif() file(TO_CMAKE_PATH "${CCACHE_PATH}" CCACHE_PATH) -endif () +endif() message(STATUS "Found ccache: ${CCACHE_PATH}") # Tell cmake to use ccache for compiling with Visual Studio. file(COPY_FILE ${CCACHE_PATH} ${CMAKE_BINARY_DIR}/cl.exe ONLY_IF_DIFFERENT) -set(CMAKE_VS_GLOBALS "CLToolExe=cl.exe" "CLToolPath=${CMAKE_BINARY_DIR}" "TrackFileAccess=false" - "UseMultiToolTask=true") +set(CMAKE_VS_GLOBALS + "CLToolExe=cl.exe" + "CLToolPath=${CMAKE_BINARY_DIR}" + "TrackFileAccess=false" + "UseMultiToolTask=true" +) # By default Visual Studio generators will use /Zi to capture debug information, which is not compatible with ccache, so # tell it to use /Z7 instead. -if (MSVC) - foreach (var_ CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_RELEASE) +if(MSVC) + foreach( + var_ + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + ) string(REPLACE "/Zi" "/Z7" ${var_} "${${var_}}") - endforeach () -endif () + endforeach() +endif() diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index 74796718c1..5681f76640 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -174,37 +174,45 @@ option(CODE_COVERAGE_VERBOSE "Verbose information" FALSE) # Check prereqs find_program(GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test) -if (DEFINED CODE_COVERAGE_GCOV_TOOL) +if(DEFINED CODE_COVERAGE_GCOV_TOOL) set(GCOV_TOOL "${CODE_COVERAGE_GCOV_TOOL}") -elseif (DEFINED ENV{CODE_COVERAGE_GCOV_TOOL}) +elseif(DEFINED ENV{CODE_COVERAGE_GCOV_TOOL}) set(GCOV_TOOL "$ENV{CODE_COVERAGE_GCOV_TOOL}") -elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") - if (APPLE) - execute_process(COMMAND xcrun -f llvm-cov OUTPUT_VARIABLE LLVMCOV_PATH - OUTPUT_STRIP_TRAILING_WHITESPACE) - else () +elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") + if(APPLE) + execute_process( + COMMAND xcrun -f llvm-cov + OUTPUT_VARIABLE LLVMCOV_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + else() find_program(LLVMCOV_PATH llvm-cov) - endif () - if (LLVMCOV_PATH) + endif() + if(LLVMCOV_PATH) set(GCOV_TOOL "${LLVMCOV_PATH} gcov") - endif () -elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + endif() +elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") find_program(GCOV_PATH gcov) set(GCOV_TOOL "${GCOV_PATH}") -endif () +endif() # Check supported compiler (Clang, GNU and Flang) get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) -foreach (LANG ${LANGUAGES}) - if ("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") - if ("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) - message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") - endif () - elseif (NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "GNU" AND NOT "${CMAKE_${LANG}_COMPILER_ID}" - MATCHES "(LLVM)?[Ff]lang") +foreach(LANG ${LANGUAGES}) + if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") + if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) + message( + FATAL_ERROR + "Clang version must be 3.0.0 or greater! Aborting..." + ) + endif() + elseif( + NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "GNU" + AND NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(LLVM)?[Ff]lang" + ) message(FATAL_ERROR "Compiler is not GNU or Flang! Aborting...") - endif () -endforeach () + endif() +endforeach() set(COVERAGE_COMPILER_FLAGS "-g --coverage" CACHE INTERNAL "") @@ -213,7 +221,7 @@ set(COVERAGE_C_COMPILER_FLAGS "") set(COVERAGE_CXX_LINKER_FLAGS "") set(COVERAGE_C_LINKER_FLAGS "") -if (CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") include(CheckCXXCompilerFlag) include(CheckCCompilerFlag) include(CheckLinkerFlag) @@ -224,51 +232,77 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") set(COVERAGE_C_LINKER_FLAGS ${COVERAGE_COMPILER_FLAGS}) check_cxx_compiler_flag(-fprofile-abs-path HAVE_cxx_fprofile_abs_path) - if (HAVE_cxx_fprofile_abs_path) - set(COVERAGE_CXX_COMPILER_FLAGS "${COVERAGE_CXX_COMPILER_FLAGS} -fprofile-abs-path") - endif () + if(HAVE_cxx_fprofile_abs_path) + set(COVERAGE_CXX_COMPILER_FLAGS + "${COVERAGE_CXX_COMPILER_FLAGS} -fprofile-abs-path" + ) + endif() check_c_compiler_flag(-fprofile-abs-path HAVE_c_fprofile_abs_path) - if (HAVE_c_fprofile_abs_path) - set(COVERAGE_C_COMPILER_FLAGS "${COVERAGE_C_COMPILER_FLAGS} -fprofile-abs-path") - endif () + if(HAVE_c_fprofile_abs_path) + set(COVERAGE_C_COMPILER_FLAGS + "${COVERAGE_C_COMPILER_FLAGS} -fprofile-abs-path" + ) + endif() check_linker_flag(CXX -fprofile-abs-path HAVE_cxx_linker_fprofile_abs_path) - if (HAVE_cxx_linker_fprofile_abs_path) - set(COVERAGE_CXX_LINKER_FLAGS "${COVERAGE_CXX_LINKER_FLAGS} -fprofile-abs-path") - endif () + if(HAVE_cxx_linker_fprofile_abs_path) + set(COVERAGE_CXX_LINKER_FLAGS + "${COVERAGE_CXX_LINKER_FLAGS} -fprofile-abs-path" + ) + endif() check_linker_flag(C -fprofile-abs-path HAVE_c_linker_fprofile_abs_path) - if (HAVE_c_linker_fprofile_abs_path) - set(COVERAGE_C_LINKER_FLAGS "${COVERAGE_C_LINKER_FLAGS} -fprofile-abs-path") - endif () + if(HAVE_c_linker_fprofile_abs_path) + set(COVERAGE_C_LINKER_FLAGS + "${COVERAGE_C_LINKER_FLAGS} -fprofile-abs-path" + ) + endif() check_cxx_compiler_flag(-fprofile-update=atomic HAVE_cxx_fprofile_update) - if (HAVE_cxx_fprofile_update) - set(COVERAGE_CXX_COMPILER_FLAGS "${COVERAGE_CXX_COMPILER_FLAGS} -fprofile-update=atomic") - endif () + if(HAVE_cxx_fprofile_update) + set(COVERAGE_CXX_COMPILER_FLAGS + "${COVERAGE_CXX_COMPILER_FLAGS} -fprofile-update=atomic" + ) + endif() check_c_compiler_flag(-fprofile-update=atomic HAVE_c_fprofile_update) - if (HAVE_c_fprofile_update) - set(COVERAGE_C_COMPILER_FLAGS "${COVERAGE_C_COMPILER_FLAGS} -fprofile-update=atomic") - endif () + if(HAVE_c_fprofile_update) + set(COVERAGE_C_COMPILER_FLAGS + "${COVERAGE_C_COMPILER_FLAGS} -fprofile-update=atomic" + ) + endif() - check_linker_flag(CXX -fprofile-update=atomic HAVE_cxx_linker_fprofile_update) - if (HAVE_cxx_linker_fprofile_update) - set(COVERAGE_CXX_LINKER_FLAGS "${COVERAGE_CXX_LINKER_FLAGS} -fprofile-update=atomic") - endif () + check_linker_flag( + CXX + -fprofile-update=atomic + HAVE_cxx_linker_fprofile_update + ) + if(HAVE_cxx_linker_fprofile_update) + set(COVERAGE_CXX_LINKER_FLAGS + "${COVERAGE_CXX_LINKER_FLAGS} -fprofile-update=atomic" + ) + endif() check_linker_flag(C -fprofile-update=atomic HAVE_c_linker_fprofile_update) - if (HAVE_c_linker_fprofile_update) - set(COVERAGE_C_LINKER_FLAGS "${COVERAGE_C_LINKER_FLAGS} -fprofile-update=atomic") - endif () + if(HAVE_c_linker_fprofile_update) + set(COVERAGE_C_LINKER_FLAGS + "${COVERAGE_C_LINKER_FLAGS} -fprofile-update=atomic" + ) + endif() +endif() -endif () - -get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if (NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG)) - message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading") -endif () # NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG) +get_property( + GENERATOR_IS_MULTI_CONFIG + GLOBAL + PROPERTY GENERATOR_IS_MULTI_CONFIG +) +if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG)) + message( + WARNING + "Code coverage results with an optimised (non-Debug) build may be misleading" + ) +endif() # NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG) # Defines a target for running and collection code coverage information # Builds dependencies, runs the given executable and outputs reports. @@ -292,125 +326,167 @@ endif () # NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG) # ) # The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the # GCVOR command. -function (setup_target_for_coverage_gcovr) +function(setup_target_for_coverage_gcovr) set(options NONE) set(oneValueArgs BASE_DIRECTORY NAME FORMAT) set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) - cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + cmake_parse_arguments( + Coverage + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) - if (NOT GCOV_TOOL) + if(NOT GCOV_TOOL) message(FATAL_ERROR "Could not find gcov or llvm-cov tool! Aborting...") - endif () + endif() - if (NOT GCOVR_PATH) + if(NOT GCOVR_PATH) message(FATAL_ERROR "Could not find gcovr tool! Aborting...") - endif () + endif() # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR - if (DEFINED Coverage_BASE_DIRECTORY) + if(DEFINED Coverage_BASE_DIRECTORY) get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) - else () + else() set(BASEDIR ${PROJECT_SOURCE_DIR}) - endif () + endif() - if (NOT DEFINED Coverage_FORMAT) + if(NOT DEFINED Coverage_FORMAT) set(Coverage_FORMAT xml) - endif () + endif() - if (NOT DEFINED Coverage_EXECUTABLE AND DEFINED Coverage_EXECUTABLE_ARGS) - message(FATAL_ERROR "EXECUTABLE_ARGS must not be set if EXECUTABLE is not set") - endif () - - if ("--output" IN_LIST GCOVR_ADDITIONAL_ARGS) - message(FATAL_ERROR "Unsupported --output option detected in GCOVR_ADDITIONAL_ARGS! Aborting..." + if(NOT DEFINED Coverage_EXECUTABLE AND DEFINED Coverage_EXECUTABLE_ARGS) + message( + FATAL_ERROR + "EXECUTABLE_ARGS must not be set if EXECUTABLE is not set" ) - else () - if ((Coverage_FORMAT STREQUAL "html-details") OR (Coverage_FORMAT STREQUAL "html-nested")) - set(GCOVR_OUTPUT_FILE ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html) - set(GCOVR_CREATE_FOLDER ${PROJECT_BINARY_DIR}/${Coverage_NAME}) - elseif (Coverage_FORMAT STREQUAL "html-single") - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.html) - elseif ((Coverage_FORMAT STREQUAL "json-summary") OR (Coverage_FORMAT STREQUAL - "json-details") - OR (Coverage_FORMAT STREQUAL "coveralls")) - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.json) - elseif (Coverage_FORMAT STREQUAL "txt") - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.txt) - elseif (Coverage_FORMAT STREQUAL "csv") - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.csv) - elseif (Coverage_FORMAT STREQUAL "lcov") - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.lcov) - else () - set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.xml) - endif () - endif () + endif() - if ((Coverage_FORMAT STREQUAL "cobertura") OR (Coverage_FORMAT STREQUAL "xml")) + if("--output" IN_LIST GCOVR_ADDITIONAL_ARGS) + message( + FATAL_ERROR + "Unsupported --output option detected in GCOVR_ADDITIONAL_ARGS! Aborting..." + ) + else() + if( + (Coverage_FORMAT STREQUAL "html-details") + OR (Coverage_FORMAT STREQUAL "html-nested") + ) + set(GCOVR_OUTPUT_FILE + ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html + ) + set(GCOVR_CREATE_FOLDER ${PROJECT_BINARY_DIR}/${Coverage_NAME}) + elseif(Coverage_FORMAT STREQUAL "html-single") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.html) + elseif( + (Coverage_FORMAT STREQUAL "json-summary") + OR (Coverage_FORMAT STREQUAL "json-details") + OR (Coverage_FORMAT STREQUAL "coveralls") + ) + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.json) + elseif(Coverage_FORMAT STREQUAL "txt") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.txt) + elseif(Coverage_FORMAT STREQUAL "csv") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.csv) + elseif(Coverage_FORMAT STREQUAL "lcov") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.lcov) + else() + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.xml) + endif() + endif() + + if( + (Coverage_FORMAT STREQUAL "cobertura") + OR (Coverage_FORMAT STREQUAL "xml") + ) list(APPEND GCOVR_ADDITIONAL_ARGS --cobertura "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --cobertura-pretty) set(Coverage_FORMAT cobertura) # overwrite xml - elseif (Coverage_FORMAT STREQUAL "sonarqube") + elseif(Coverage_FORMAT STREQUAL "sonarqube") list(APPEND GCOVR_ADDITIONAL_ARGS --sonarqube "${GCOVR_OUTPUT_FILE}") - elseif (Coverage_FORMAT STREQUAL "jacoco") + elseif(Coverage_FORMAT STREQUAL "jacoco") list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco-pretty) - elseif (Coverage_FORMAT STREQUAL "clover") + elseif(Coverage_FORMAT STREQUAL "clover") list(APPEND GCOVR_ADDITIONAL_ARGS --clover "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --clover-pretty) - elseif (Coverage_FORMAT STREQUAL "lcov") + elseif(Coverage_FORMAT STREQUAL "lcov") list(APPEND GCOVR_ADDITIONAL_ARGS --lcov "${GCOVR_OUTPUT_FILE}") - elseif (Coverage_FORMAT STREQUAL "json-summary") + elseif(Coverage_FORMAT STREQUAL "json-summary") list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary-pretty) - elseif (Coverage_FORMAT STREQUAL "json-details") + elseif(Coverage_FORMAT STREQUAL "json-details") list(APPEND GCOVR_ADDITIONAL_ARGS --json "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --json-pretty) - elseif (Coverage_FORMAT STREQUAL "coveralls") + elseif(Coverage_FORMAT STREQUAL "coveralls") list(APPEND GCOVR_ADDITIONAL_ARGS --coveralls "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --coveralls-pretty) - elseif (Coverage_FORMAT STREQUAL "csv") + elseif(Coverage_FORMAT STREQUAL "csv") list(APPEND GCOVR_ADDITIONAL_ARGS --csv "${GCOVR_OUTPUT_FILE}") - elseif (Coverage_FORMAT STREQUAL "txt") + elseif(Coverage_FORMAT STREQUAL "txt") list(APPEND GCOVR_ADDITIONAL_ARGS --txt "${GCOVR_OUTPUT_FILE}") - elseif (Coverage_FORMAT STREQUAL "html-single") + elseif(Coverage_FORMAT STREQUAL "html-single") list(APPEND GCOVR_ADDITIONAL_ARGS --html "${GCOVR_OUTPUT_FILE}") list(APPEND GCOVR_ADDITIONAL_ARGS --html-self-contained) - elseif (Coverage_FORMAT STREQUAL "html-nested") + elseif(Coverage_FORMAT STREQUAL "html-nested") list(APPEND GCOVR_ADDITIONAL_ARGS --html-nested "${GCOVR_OUTPUT_FILE}") - elseif (Coverage_FORMAT STREQUAL "html-details") + elseif(Coverage_FORMAT STREQUAL "html-details") list(APPEND GCOVR_ADDITIONAL_ARGS --html-details "${GCOVR_OUTPUT_FILE}") - else () - message(FATAL_ERROR "Unsupported output style ${Coverage_FORMAT}! Aborting...") - endif () + else() + message( + FATAL_ERROR + "Unsupported output style ${Coverage_FORMAT}! Aborting..." + ) + endif() # Collect excludes (CMake 3.4+: Also compute absolute paths) set(GCOVR_EXCLUDES "") - foreach (EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) - if (CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) - endif () + foreach( + EXCLUDE + ${Coverage_EXCLUDE} + ${COVERAGE_EXCLUDES} + ${COVERAGE_GCOVR_EXCLUDES} + ) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component( + EXCLUDE + ${EXCLUDE} + ABSOLUTE + BASE_DIR ${BASEDIR} + ) + endif() list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") - endforeach () + endforeach() list(REMOVE_DUPLICATES GCOVR_EXCLUDES) # Combine excludes to several -e arguments set(GCOVR_EXCLUDE_ARGS "") - foreach (EXCLUDE ${GCOVR_EXCLUDES}) + foreach(EXCLUDE ${GCOVR_EXCLUDES}) list(APPEND GCOVR_EXCLUDE_ARGS "-e") list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") - endforeach () + endforeach() # Set up commands which will be run to generate coverage data # If EXECUTABLE is not set, the user is expected to run the tests manually # before running the coverage target NAME - if (DEFINED Coverage_EXECUTABLE) - set(GCOVR_EXEC_TESTS_CMD ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}) - endif () + if(DEFINED Coverage_EXECUTABLE) + set(GCOVR_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} + ${Coverage_EXECUTABLE_ARGS} + ) + endif() # Create folder - if (DEFINED GCOVR_CREATE_FOLDER) - set(GCOVR_FOLDER_CMD ${CMAKE_COMMAND} -E make_directory ${GCOVR_CREATE_FOLDER}) - endif () + if(DEFINED GCOVR_CREATE_FOLDER) + set(GCOVR_FOLDER_CMD + ${CMAKE_COMMAND} + -E + make_directory + ${GCOVR_CREATE_FOLDER} + ) + endif() # Running gcovr set(GCOVR_CMD @@ -422,56 +498,95 @@ function (setup_target_for_coverage_gcovr) ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} ${GCOVR_EXCLUDE_ARGS} - --object-directory=${PROJECT_BINARY_DIR}) + --object-directory=${PROJECT_BINARY_DIR} + ) - if (CODE_COVERAGE_VERBOSE) + if(CODE_COVERAGE_VERBOSE) message(STATUS "Executed command report") - if (NOT "${GCOVR_EXEC_TESTS_CMD}" STREQUAL "") + if(NOT "${GCOVR_EXEC_TESTS_CMD}" STREQUAL "") message(STATUS "Command to run tests: ") - string(REPLACE ";" " " GCOVR_EXEC_TESTS_CMD_SPACED "${GCOVR_EXEC_TESTS_CMD}") + string( + REPLACE ";" + " " + GCOVR_EXEC_TESTS_CMD_SPACED + "${GCOVR_EXEC_TESTS_CMD}" + ) message(STATUS "${GCOVR_EXEC_TESTS_CMD_SPACED}") - endif () + endif() - if (NOT "${GCOVR_FOLDER_CMD}" STREQUAL "") + if(NOT "${GCOVR_FOLDER_CMD}" STREQUAL "") message(STATUS "Command to create a folder: ") - string(REPLACE ";" " " GCOVR_FOLDER_CMD_SPACED "${GCOVR_FOLDER_CMD}") + string( + REPLACE ";" + " " + GCOVR_FOLDER_CMD_SPACED + "${GCOVR_FOLDER_CMD}" + ) message(STATUS "${GCOVR_FOLDER_CMD_SPACED}") - endif () + endif() message(STATUS "Command to generate gcovr coverage data: ") string(REPLACE ";" " " GCOVR_CMD_SPACED "${GCOVR_CMD}") message(STATUS "${GCOVR_CMD_SPACED}") - endif () + endif() - add_custom_target(${Coverage_NAME} - COMMAND ${GCOVR_EXEC_TESTS_CMD} - COMMAND ${GCOVR_FOLDER_CMD} - COMMAND ${GCOVR_CMD} - BYPRODUCTS ${GCOVR_OUTPUT_FILE} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS ${Coverage_DEPENDENCIES} - VERBATIM # Protect arguments to commands - COMMENT "Running gcovr to produce code coverage report.") + add_custom_target( + ${Coverage_NAME} + COMMAND ${GCOVR_EXEC_TESTS_CMD} + COMMAND ${GCOVR_FOLDER_CMD} + COMMAND ${GCOVR_CMD} + BYPRODUCTS ${GCOVR_OUTPUT_FILE} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce code coverage report." + ) # Show info where to find the report add_custom_command( - TARGET ${Coverage_NAME} POST_BUILD COMMAND echo - COMMENT "Code coverage report saved in ${GCOVR_OUTPUT_FILE} formatted as ${Coverage_FORMAT}" + TARGET ${Coverage_NAME} + POST_BUILD + COMMAND echo + COMMENT + "Code coverage report saved in ${GCOVR_OUTPUT_FILE} formatted as ${Coverage_FORMAT}" ) -endfunction () # setup_target_for_coverage_gcovr +endfunction() # setup_target_for_coverage_gcovr -function (add_code_coverage_to_target name scope) - separate_arguments(COVERAGE_CXX_COMPILER_FLAGS NATIVE_COMMAND "${COVERAGE_CXX_COMPILER_FLAGS}") - separate_arguments(COVERAGE_C_COMPILER_FLAGS NATIVE_COMMAND "${COVERAGE_C_COMPILER_FLAGS}") - separate_arguments(COVERAGE_CXX_LINKER_FLAGS NATIVE_COMMAND "${COVERAGE_CXX_LINKER_FLAGS}") - separate_arguments(COVERAGE_C_LINKER_FLAGS NATIVE_COMMAND "${COVERAGE_C_LINKER_FLAGS}") +function(add_code_coverage_to_target name scope) + separate_arguments( + COVERAGE_CXX_COMPILER_FLAGS + NATIVE_COMMAND + "${COVERAGE_CXX_COMPILER_FLAGS}" + ) + separate_arguments( + COVERAGE_C_COMPILER_FLAGS + NATIVE_COMMAND + "${COVERAGE_C_COMPILER_FLAGS}" + ) + separate_arguments( + COVERAGE_CXX_LINKER_FLAGS + NATIVE_COMMAND + "${COVERAGE_CXX_LINKER_FLAGS}" + ) + separate_arguments( + COVERAGE_C_LINKER_FLAGS + NATIVE_COMMAND + "${COVERAGE_C_LINKER_FLAGS}" + ) # Add compiler options to the target target_compile_options( - ${name} ${scope} $<$:${COVERAGE_CXX_COMPILER_FLAGS}> - $<$:${COVERAGE_C_COMPILER_FLAGS}>) + ${name} + ${scope} + $<$:${COVERAGE_CXX_COMPILER_FLAGS}> + $<$:${COVERAGE_C_COMPILER_FLAGS}> + ) - target_link_libraries(${name} ${scope} $<$:${COVERAGE_CXX_LINKER_FLAGS}> - $<$:${COVERAGE_C_LINKER_FLAGS}>) -endfunction () # add_code_coverage_to_target + target_link_libraries( + ${name} + ${scope} + $<$:${COVERAGE_CXX_LINKER_FLAGS}> + $<$:${COVERAGE_C_LINKER_FLAGS}> + ) +endfunction() # add_code_coverage_to_target diff --git a/cmake/CompilationEnv.cmake b/cmake/CompilationEnv.cmake index 59b903c13a..0d44f90974 100644 --- a/cmake/CompilationEnv.cmake +++ b/cmake/CompilationEnv.cmake @@ -14,20 +14,20 @@ set(is_gcc FALSE) set(is_msvc FALSE) set(is_xcode FALSE) -if (CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") # Clang or AppleClang +if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") # Clang or AppleClang set(is_clang TRUE) -elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(is_gcc TRUE) -elseif (MSVC) +elseif(MSVC) set(is_msvc TRUE) -else () +else() message(FATAL_ERROR "Unsupported C++ compiler: ${CMAKE_CXX_COMPILER_ID}") -endif () +endif() # Xcode generator detection -if (CMAKE_GENERATOR STREQUAL "Xcode") +if(CMAKE_GENERATOR STREQUAL "Xcode") set(is_xcode TRUE) -endif () +endif() # -------------------------------------------------------------------- # Operating system detection @@ -36,23 +36,23 @@ set(is_linux FALSE) set(is_windows FALSE) set(is_macos FALSE) -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(is_linux TRUE) -elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") set(is_windows TRUE) -elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(is_macos TRUE) -endif () +endif() # -------------------------------------------------------------------- # Architecture # -------------------------------------------------------------------- set(is_amd64 FALSE) set(is_arm64 FALSE) -if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") set(is_amd64 TRUE) -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") set(is_arm64 TRUE) -else () +else() message(FATAL_ERROR "Unknown architecture: ${CMAKE_SYSTEM_PROCESSOR}") -endif () +endif() diff --git a/cmake/GitInfo.cmake b/cmake/GitInfo.cmake index 1281182977..788efe624a 100644 --- a/cmake/GitInfo.cmake +++ b/cmake/GitInfo.cmake @@ -4,18 +4,25 @@ set(GIT_BUILD_BRANCH "") set(GIT_COMMIT_HASH "") find_package(Git) -if (NOT Git_FOUND) +if(NOT Git_FOUND) message(WARNING "Git not found. Git branch and commit hash will be empty.") return() -endif () +endif() set(GIT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.git) -execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${GIT_DIRECTORY} rev-parse --abbrev-ref HEAD - OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GIT_BUILD_BRANCH) +execute_process( + COMMAND + ${GIT_EXECUTABLE} --git-dir=${GIT_DIRECTORY} rev-parse --abbrev-ref HEAD + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE GIT_BUILD_BRANCH +) -execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${GIT_DIRECTORY} rev-parse HEAD - OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GIT_COMMIT_HASH) +execute_process( + COMMAND ${GIT_EXECUTABLE} --git-dir=${GIT_DIRECTORY} rev-parse HEAD + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE GIT_COMMIT_HASH +) message(STATUS "Git branch: ${GIT_BUILD_BRANCH}") message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}") diff --git a/cmake/XrplAddTest.cmake b/cmake/XrplAddTest.cmake index 35189e203f..0f8f9e2c01 100644 --- a/cmake/XrplAddTest.cmake +++ b/cmake/XrplAddTest.cmake @@ -1,13 +1,17 @@ include(isolate_headers) -function (xrpl_add_test name) +function(xrpl_add_test name) set(target ${PROJECT_NAME}.test.${name}) - file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}/*.cpp" - "${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp") + file( + GLOB_RECURSE sources + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/${name}/*.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp" + ) add_executable(${target} ${ARGN} ${sources}) isolate_headers(${target} "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/tests/${name}" PRIVATE) add_test(NAME ${target} COMMAND ${target}) -endfunction () +endfunction() diff --git a/cmake/XrplCompiler.cmake b/cmake/XrplCompiler.cmake index 8093004b2e..0b77ff3525 100644 --- a/cmake/XrplCompiler.cmake +++ b/cmake/XrplCompiler.cmake @@ -14,33 +14,42 @@ include(XrplSanitizers) # add a single global dependency on this interface lib link_libraries(Xrpl::common) # Respect CMAKE_POSITION_INDEPENDENT_CODE setting (may be set by Conan toolchain) -if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) +if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif () -set_target_properties(common PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE - ${CMAKE_POSITION_INDEPENDENT_CODE}) +endif() +set_target_properties( + common + PROPERTIES + INTERFACE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE} +) set(CMAKE_CXX_EXTENSIONS OFF) target_compile_definitions( common - INTERFACE $<$:DEBUG - _DEBUG> - #[===[ + INTERFACE + $<$:DEBUG + _DEBUG> + #[===[ NOTE: CMAKE release builds already have NDEBUG defined, so no need to add it explicitly except for the special case of (profile ON) and (assert OFF). Presumably this is because we don't want profile builds asserting unless asserts were specifically requested. ]===] - $<$,$>>:NDEBUG> - # TODO: Remove once we have migrated functions from OpenSSL 1.x to 3.x. - OPENSSL_SUPPRESS_DEPRECATED) + $<$,$>>:NDEBUG> + # TODO: Remove once we have migrated functions from OpenSSL 1.x to 3.x. + OPENSSL_SUPPRESS_DEPRECATED +) -if (MSVC) +if(MSVC) # remove existing exception flag since we set it to -EHa string(REGEX REPLACE "[-/]EH[a-z]+" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - foreach (var_ CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_RELEASE) - + foreach( + var_ + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + ) # also remove dynamic runtime string(REGEX REPLACE "[-/]MD[d]*" " " ${var_} "${${var_}}") @@ -48,120 +57,143 @@ if (MSVC) string(REPLACE "/ZI" "/Zi" ${var_} "${${var_}}") # omit debug info completely under CI (not needed) - if (is_ci) + if(is_ci) string(REPLACE "/Zi" " " ${var_} "${${var_}}") string(REPLACE "/Z7" " " ${var_} "${${var_}}") - endif () - endforeach () + endif() + endforeach() target_compile_options( common INTERFACE # Increase object file max size - -bigobj - # Floating point behavior - -fp:precise - # __cdecl calling convention - -Gd - # Minimal rebuild: disabled - -Gm- - # Function level linking: disabled - -Gy- - # Multiprocessor compilation - -MP - # pragma omp: disabled - -openmp- - # No error reporting to Internet - -errorReport:none - # Suppress login banner - -nologo - # Disable signed/unsigned comparison warnings - -wd4018 - # Disable float to int possible loss of data warnings - -wd4244 - # Disable size_t to T possible loss of data warnings - -wd4267 - # Disable C4800(int to bool performance) - -wd4800 - # Decorated name length exceeded, name was truncated - -wd4503 - $<$: - -EHa - -GR - > - $<$:-Ox> - $<$,$>: - -GS - -Zc:forScope - > - # static runtime - $<$:-MTd> - $<$>:-MT> - $<$:-WX>) + -bigobj + # Floating point behavior + -fp:precise + # __cdecl calling convention + -Gd + # Minimal rebuild: disabled + -Gm- + # Function level linking: disabled + -Gy- + # Multiprocessor compilation + -MP + # pragma omp: disabled + -openmp- + # No error reporting to Internet + -errorReport:none + # Suppress login banner + -nologo + # Disable signed/unsigned comparison warnings + -wd4018 + # Disable float to int possible loss of data warnings + -wd4244 + # Disable size_t to T possible loss of data warnings + -wd4267 + # Disable C4800(int to bool performance) + -wd4800 + # Decorated name length exceeded, name was truncated + -wd4503 + $<$: + -EHa + -GR + > + $<$:-Ox> + $<$,$>: + -GS + -Zc:forScope + > + # static runtime + $<$:-MTd> + $<$>:-MT> + $<$:-WX> + ) target_compile_definitions( common - INTERFACE _WIN32_WINNT=0x6000 - _SCL_SECURE_NO_WARNINGS - _CRT_SECURE_NO_WARNINGS - WIN32_CONSOLE - WIN32_LEAN_AND_MEAN - NOMINMAX - # TODO: Resolve these warnings, don't just silence them - _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS - $<$,$>:_CRTDBG_MAP_ALLOC>) + INTERFACE + _WIN32_WINNT=0x6000 + _SCL_SECURE_NO_WARNINGS + _CRT_SECURE_NO_WARNINGS + WIN32_CONSOLE + WIN32_LEAN_AND_MEAN + NOMINMAX + # TODO: Resolve these warnings, don't just silence them + _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS + $<$,$>:_CRTDBG_MAP_ALLOC> + ) target_link_libraries(common INTERFACE -errorreport:none -machine:X64) -else () +else() target_compile_options( common - INTERFACE -Wall - -Wdeprecated - $<$:-Wno-deprecated-declarations> - $<$:-Wextra - -Wno-unused-parameter> - $<$:-Werror> - -fstack-protector - -Wno-sign-compare - -Wno-unused-but-set-variable - $<$>:-fno-strict-aliasing> - # tweak gcc optimization for debug - $<$,$>:-O0> - # Add debug symbols to release config - $<$:-g>) + INTERFACE + -Wall + -Wdeprecated + $<$:-Wno-deprecated-declarations> + $<$:-Wextra + -Wno-unused-parameter> + $<$:-Werror> + -fstack-protector + -Wno-sign-compare + -Wno-unused-but-set-variable + $<$>:-fno-strict-aliasing> + # tweak gcc optimization for debug + $<$,$>:-O0> + # Add debug symbols to release config + $<$:-g> + ) target_link_libraries( common - INTERFACE -rdynamic - $<$:-Wl,-z,relro,-z,now,--build-id> - # link to static libc/c++ iff: * static option set and * NOT APPLE (AppleClang does not support static - # libc/c++) and * NOT SANITIZERS (sanitizers typically don't work with static libc/c++) - $<$,$>,$>>: - -static-libstdc++ - -static-libgcc - >) -endif () + INTERFACE + -rdynamic + $<$:-Wl,-z,relro,-z,now,--build-id> + # link to static libc/c++ iff: * static option set and * NOT APPLE (AppleClang does not support static + # libc/c++) and * NOT SANITIZERS (sanitizers typically don't work with static libc/c++) + $<$,$>,$>>: + -static-libstdc++ + -static-libgcc + > + ) +endif() # Antithesis instrumentation will only be built and deployed using machines running Linux. -if (voidstar) - if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - message(FATAL_ERROR "Antithesis instrumentation requires Debug build type, aborting...") - elseif (NOT is_linux) - message(FATAL_ERROR "Antithesis instrumentation requires Linux, aborting...") - elseif (NOT (is_clang AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)) - message(FATAL_ERROR "Antithesis instrumentation requires Clang version 16 or later, aborting..." +if(voidstar) + if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") + message( + FATAL_ERROR + "Antithesis instrumentation requires Debug build type, aborting..." ) - endif () -endif () + elseif(NOT is_linux) + message( + FATAL_ERROR + "Antithesis instrumentation requires Linux, aborting..." + ) + elseif( + NOT (is_clang AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) + ) + message( + FATAL_ERROR + "Antithesis instrumentation requires Clang version 16 or later, aborting..." + ) + endif() +endif() -if (use_mold) +if(use_mold) # use mold linker if available - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=mold -Wl,--version ERROR_QUIET - OUTPUT_VARIABLE LD_VERSION) - if ("${LD_VERSION}" MATCHES "mold") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=mold -Wl,--version + ERROR_QUIET + OUTPUT_VARIABLE LD_VERSION + ) + if("${LD_VERSION}" MATCHES "mold") target_link_libraries(common INTERFACE -fuse-ld=mold) - endif () + endif() unset(LD_VERSION) -elseif (use_gold AND is_gcc) +elseif(use_gold AND is_gcc) # use gold linker if available - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET - OUTPUT_VARIABLE LD_VERSION) + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=gold -Wl,--version + ERROR_QUIET + OUTPUT_VARIABLE LD_VERSION + ) #[=========================================================[ NOTE: THE gold linker inserts -rpath as DT_RUNPATH by default instead of DT_RPATH, so you might have slightly @@ -175,32 +207,37 @@ elseif (use_gold AND is_gcc) disabling would be to figure out all the settings required to make gold play nicely with jemalloc. #]=========================================================] - if (("${LD_VERSION}" MATCHES "GNU gold") AND (NOT jemalloc)) + if(("${LD_VERSION}" MATCHES "GNU gold") AND (NOT jemalloc)) target_link_libraries( common - INTERFACE -fuse-ld=gold - -Wl,--no-as-needed - #[=========================================================[ + INTERFACE + -fuse-ld=gold + -Wl,--no-as-needed + #[=========================================================[ see https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1253638/comments/5 DT_RUNPATH does not work great for transitive dependencies (of which boost has a few) - so just switch to DT_RPATH if doing dynamic linking with gold #]=========================================================] - $<$>:-Wl,--disable-new-dtags>) - endif () + $<$>:-Wl,--disable-new-dtags> + ) + endif() unset(LD_VERSION) -elseif (use_lld) +elseif(use_lld) # use lld linker if available - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=lld -Wl,--version ERROR_QUIET - OUTPUT_VARIABLE LD_VERSION) - if ("${LD_VERSION}" MATCHES "LLD") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=lld -Wl,--version + ERROR_QUIET + OUTPUT_VARIABLE LD_VERSION + ) + if("${LD_VERSION}" MATCHES "LLD") target_link_libraries(common INTERFACE -fuse-ld=lld) - endif () + endif() unset(LD_VERSION) -endif () +endif() -if (assert) - foreach (var_ CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE) +if(assert) + foreach(var_ CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE) string(REGEX REPLACE "[-/]DNDEBUG" "" ${var_} "${${var_}}") - endforeach () -endif () + endforeach() +endif() diff --git a/cmake/XrplConfig.cmake b/cmake/XrplConfig.cmake index bf6aa475ba..76f9af14b1 100644 --- a/cmake/XrplConfig.cmake +++ b/cmake/XrplConfig.cmake @@ -3,50 +3,58 @@ include(CMakeFindDependencyMacro) #[=========================================================[ Boost #]=========================================================] -if (static OR APPLE OR MSVC) +if(static OR APPLE OR MSVC) set(Boost_USE_STATIC_LIBS ON) -endif () +endif() set(Boost_USE_MULTITHREADED ON) -if (static OR MSVC) +if(static OR MSVC) set(Boost_USE_STATIC_RUNTIME ON) -else () +else() set(Boost_USE_STATIC_RUNTIME OFF) -endif () -find_dependency(Boost - COMPONENTS - chrono - container - context - coroutine - date_time - filesystem - program_options - regex - system - thread) +endif() +find_dependency( + Boost + COMPONENTS + chrono + container + context + coroutine + date_time + filesystem + program_options + regex + system + thread +) #[=========================================================[ OpenSSL #]=========================================================] -if (NOT DEFINED OPENSSL_ROOT_DIR) - if (DEFINED ENV{OPENSSL_ROOT}) +if(NOT DEFINED OPENSSL_ROOT_DIR) + if(DEFINED ENV{OPENSSL_ROOT}) set(OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT}) - elseif (APPLE) + elseif(APPLE) find_program(homebrew brew) - if (homebrew) - execute_process(COMMAND ${homebrew} --prefix openssl OUTPUT_VARIABLE OPENSSL_ROOT_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE) - endif () - endif () + if(homebrew) + execute_process( + COMMAND ${homebrew} --prefix openssl + OUTPUT_VARIABLE OPENSSL_ROOT_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() + endif() file(TO_CMAKE_PATH "${OPENSSL_ROOT_DIR}" OPENSSL_ROOT_DIR) -endif () +endif() -if (static OR APPLE OR MSVC) +if(static OR APPLE OR MSVC) set(OPENSSL_USE_STATIC_LIBS ON) -endif () +endif() set(OPENSSL_MSVC_STATIC_RT ON) find_dependency(OpenSSL REQUIRED) find_dependency(ZLIB) find_dependency(date) -if (TARGET ZLIB::ZLIB) - set_target_properties(OpenSSL::Crypto PROPERTIES INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) -endif () +if(TARGET ZLIB::ZLIB) + set_target_properties( + OpenSSL::Crypto + PROPERTIES INTERFACE_LINK_LIBRARIES ZLIB::ZLIB + ) +endif() diff --git a/cmake/XrplCore.cmake b/cmake/XrplCore.cmake index cd44f29df9..1c8f5e33d6 100644 --- a/cmake/XrplCore.cmake +++ b/cmake/XrplCore.cmake @@ -11,24 +11,34 @@ include(target_protobuf_sources) add_library(xrpl.libpb) set_target_properties(xrpl.libpb PROPERTIES UNITY_BUILD OFF) target_protobuf_sources(xrpl.libpb xrpl/proto LANGUAGE cpp IMPORT_DIRS include/xrpl/proto - PROTOS include/xrpl/proto/xrpl.proto) + PROTOS include/xrpl/proto/xrpl.proto +) file(GLOB_RECURSE protos "include/xrpl/proto/org/*.proto") target_protobuf_sources(xrpl.libpb xrpl/proto LANGUAGE cpp IMPORT_DIRS include/xrpl/proto - PROTOS "${protos}") + PROTOS "${protos}" +) target_protobuf_sources( xrpl.libpb xrpl/proto LANGUAGE grpc IMPORT_DIRS include/xrpl/proto PROTOS "${protos}" PLUGIN protoc-gen-grpc=$ - GENERATE_EXTENSIONS .grpc.pb.h .grpc.pb.cc) + GENERATE_EXTENSIONS .grpc.pb.h .grpc.pb.cc +) target_compile_options( xrpl.libpb - PUBLIC $<$:-wd4996> $<$: - --system-header-prefix="google/protobuf" -Wno-deprecated-dynamic-exception-spec > - PRIVATE $<$:-wd4065> $<$>:-Wno-deprecated-declarations>) + PUBLIC + $<$:-wd4996> + $<$: + --system-header-prefix="google/protobuf" + -Wno-deprecated-dynamic-exception-spec + > + PRIVATE + $<$:-wd4065> + $<$>:-Wno-deprecated-declarations> +) target_link_libraries(xrpl.libpb PUBLIC protobuf::libprotobuf gRPC::grpc++) @@ -37,19 +47,21 @@ add_library(xrpl.imports.main INTERFACE) target_link_libraries( xrpl.imports.main - INTERFACE absl::random_random - date::date - ed25519::ed25519 - LibArchive::LibArchive - OpenSSL::Crypto - Xrpl::boost - Xrpl::libs - Xrpl::opts - Xrpl::syslibs - secp256k1::secp256k1 - xrpl.libpb - xxHash::xxhash - $<$:antithesis-sdk-cpp>) + INTERFACE + absl::random_random + date::date + ed25519::ed25519 + LibArchive::LibArchive + OpenSSL::Crypto + Xrpl::boost + Xrpl::libs + Xrpl::opts + Xrpl::syslibs + secp256k1::secp256k1 + xrpl.libpb + xxHash::xxhash + $<$:antithesis-sdk-cpp> +) include(add_module) include(target_link_modules) @@ -60,8 +72,12 @@ target_link_libraries(xrpl.libxrpl.beast PUBLIC xrpl.imports.main) include(GitInfo) add_module(xrpl git) -target_compile_definitions(xrpl.libxrpl.git PRIVATE GIT_COMMIT_HASH="${GIT_COMMIT_HASH}" - GIT_BUILD_BRANCH="${GIT_BUILD_BRANCH}") +target_compile_definitions( + xrpl.libxrpl.git + PRIVATE + GIT_COMMIT_HASH="${GIT_COMMIT_HASH}" + GIT_BUILD_BRANCH="${GIT_BUILD_BRANCH}" +) target_link_libraries(xrpl.libxrpl.git PUBLIC xrpl.imports.main) # Level 02 @@ -77,13 +93,17 @@ target_link_libraries(xrpl.libxrpl.crypto PUBLIC xrpl.libxrpl.basics) # Level 04 add_module(xrpl protocol) -target_link_libraries(xrpl.libxrpl.protocol PUBLIC xrpl.libxrpl.crypto xrpl.libxrpl.git - xrpl.libxrpl.json) +target_link_libraries( + xrpl.libxrpl.protocol + PUBLIC xrpl.libxrpl.crypto xrpl.libxrpl.git xrpl.libxrpl.json +) # Level 05 add_module(xrpl core) -target_link_libraries(xrpl.libxrpl.core PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json - xrpl.libxrpl.protocol) +target_link_libraries( + xrpl.libxrpl.core + PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol +) # Level 06 add_module(xrpl resource) @@ -91,23 +111,46 @@ target_link_libraries(xrpl.libxrpl.resource PUBLIC xrpl.libxrpl.protocol) # Level 07 add_module(xrpl net) -target_link_libraries(xrpl.libxrpl.net PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json - xrpl.libxrpl.protocol xrpl.libxrpl.resource) +target_link_libraries( + xrpl.libxrpl.net + PUBLIC + xrpl.libxrpl.basics + xrpl.libxrpl.json + xrpl.libxrpl.protocol + xrpl.libxrpl.resource +) add_module(xrpl nodestore) -target_link_libraries(xrpl.libxrpl.nodestore PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json - xrpl.libxrpl.protocol) +target_link_libraries( + xrpl.libxrpl.nodestore + PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol +) add_module(xrpl shamap) -target_link_libraries(xrpl.libxrpl.shamap PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.crypto - xrpl.libxrpl.protocol xrpl.libxrpl.nodestore) +target_link_libraries( + xrpl.libxrpl.shamap + PUBLIC + xrpl.libxrpl.basics + xrpl.libxrpl.crypto + xrpl.libxrpl.protocol + xrpl.libxrpl.nodestore +) add_module(xrpl rdb) -target_link_libraries(xrpl.libxrpl.rdb PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.core) +target_link_libraries( + xrpl.libxrpl.rdb + PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.core +) add_module(xrpl server) -target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol xrpl.libxrpl.core - xrpl.libxrpl.rdb xrpl.libxrpl.resource) +target_link_libraries( + xrpl.libxrpl.server + PUBLIC + xrpl.libxrpl.protocol + xrpl.libxrpl.core + xrpl.libxrpl.rdb + xrpl.libxrpl.resource +) add_module(xrpl conditions) target_link_libraries(xrpl.libxrpl.conditions PUBLIC xrpl.libxrpl.server) @@ -115,13 +158,15 @@ target_link_libraries(xrpl.libxrpl.conditions PUBLIC xrpl.libxrpl.server) add_module(xrpl ledger) target_link_libraries( xrpl.libxrpl.ledger - PUBLIC xrpl.libxrpl.basics - xrpl.libxrpl.json - xrpl.libxrpl.protocol - xrpl.libxrpl.rdb - xrpl.libxrpl.server - xrpl.libxrpl.shamap - xrpl.libxrpl.conditions) + PUBLIC + xrpl.libxrpl.basics + xrpl.libxrpl.json + xrpl.libxrpl.protocol + xrpl.libxrpl.rdb + xrpl.libxrpl.server + xrpl.libxrpl.shamap + xrpl.libxrpl.conditions +) add_module(xrpl tx) target_link_libraries(xrpl.libxrpl.tx PUBLIC xrpl.libxrpl.ledger) @@ -131,7 +176,11 @@ set_target_properties(xrpl.libxrpl PROPERTIES OUTPUT_NAME xrpl) add_library(xrpl::libxrpl ALIAS xrpl.libxrpl) -file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/libxrpl/*.cpp") +file( + GLOB_RECURSE sources + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/src/libxrpl/*.cpp" +) target_sources(xrpl.libxrpl PRIVATE ${sources}) target_link_modules( @@ -152,7 +201,8 @@ target_link_modules( resource server shamap - tx) + tx +) # All headers in libxrpl are in modules. # Uncomment this stanza if you have not yet moved new headers into a module. @@ -163,34 +213,51 @@ target_link_modules( # $ # $) -if (xrpld) +if(xrpld) add_executable(xrpld) - if (tests) + if(tests) target_compile_definitions(xrpld PUBLIC ENABLE_TESTS) - target_compile_definitions(xrpld PRIVATE UNIT_TEST_REFERENCE_FEE=${UNIT_TEST_REFERENCE_FEE}) - endif () - target_include_directories(xrpld PRIVATE $) + target_compile_definitions( + xrpld + PRIVATE UNIT_TEST_REFERENCE_FEE=${UNIT_TEST_REFERENCE_FEE} + ) + endif() + target_include_directories( + xrpld + PRIVATE $ + ) - file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/xrpld/*.cpp") + file( + GLOB_RECURSE sources + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/src/xrpld/*.cpp" + ) target_sources(xrpld PRIVATE ${sources}) - if (tests) - file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/test/*.cpp") + if(tests) + file( + GLOB_RECURSE sources + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/src/test/*.cpp" + ) target_sources(xrpld PRIVATE ${sources}) - endif () + endif() target_link_libraries(xrpld Xrpl::boost Xrpl::opts Xrpl::libs xrpl.libxrpl) exclude_if_included(xrpld) # define a macro for tests that might need to # be excluded or run differently in CI environment - if (is_ci) + if(is_ci) target_compile_definitions(xrpld PRIVATE XRPL_RUNNING_IN_CI) - endif () + endif() - if (voidstar) + if(voidstar) target_compile_options(xrpld PRIVATE -fsanitize-coverage=trace-pc-guard) # xrpld requires access to antithesis-sdk-cpp implementation file # antithesis_instrumentation.h, which is not exported as INTERFACE - target_include_directories(xrpld PRIVATE ${CMAKE_SOURCE_DIR}/external/antithesis-sdk) - endif () -endif () + target_include_directories( + xrpld + PRIVATE ${CMAKE_SOURCE_DIR}/external/antithesis-sdk + ) + endif() +endif() diff --git a/cmake/XrplCov.cmake b/cmake/XrplCov.cmake index 62c40407f2..109f5049fd 100644 --- a/cmake/XrplCov.cmake +++ b/cmake/XrplCov.cmake @@ -2,14 +2,17 @@ coverage report target #]===================================================================] -if (NOT coverage) +if(NOT coverage) message(FATAL_ERROR "Code coverage not enabled! Aborting ...") -endif () +endif() -if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - message(WARNING "Code coverage on Windows is not supported, ignoring 'coverage' flag") +if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + message( + WARNING + "Code coverage on Windows is not supported, ignoring 'coverage' flag" + ) return() -endif () +endif() include(ProcessorCount) ProcessorCount(PROCESSOR_COUNT) @@ -21,18 +24,19 @@ include(CodeCoverage) # `CodeCoverage.cmake`) set(GCOVR_ADDITIONAL_ARGS ${coverage_extra_args}) -if (NOT GCOVR_ADDITIONAL_ARGS STREQUAL "") +if(NOT GCOVR_ADDITIONAL_ARGS STREQUAL "") separate_arguments(GCOVR_ADDITIONAL_ARGS) -endif () +endif() -list(APPEND - GCOVR_ADDITIONAL_ARGS - --exclude-throw-branches - --exclude-noncode-lines - --exclude-unreachable-branches - -s - -j - ${PROCESSOR_COUNT}) +list( + APPEND GCOVR_ADDITIONAL_ARGS + --exclude-throw-branches + --exclude-noncode-lines + --exclude-unreachable-branches + -s + -j + ${PROCESSOR_COUNT} +) setup_target_for_coverage_gcovr( NAME @@ -47,6 +51,7 @@ setup_target_for_coverage_gcovr( "${CMAKE_BINARY_DIR}/pb-xrpl.libpb" DEPENDENCIES xrpld - xrpl.tests) + xrpl.tests +) add_code_coverage_to_target(opts INTERFACE) diff --git a/cmake/XrplDocs.cmake b/cmake/XrplDocs.cmake index 4892e390ce..aefffba81b 100644 --- a/cmake/XrplDocs.cmake +++ b/cmake/XrplDocs.cmake @@ -2,44 +2,45 @@ docs target (optional) #]===================================================================] -if (NOT only_docs) +if(NOT only_docs) return() -endif () +endif() find_package(Doxygen) -if (NOT TARGET Doxygen::doxygen) +if(NOT TARGET Doxygen::doxygen) message(STATUS "doxygen executable not found -- skipping docs target") return() -endif () +endif() set(doxygen_output_directory "${CMAKE_BINARY_DIR}/docs") set(doxygen_include_path "${CMAKE_CURRENT_SOURCE_DIR}/src") set(doxygen_index_file "${doxygen_output_directory}/html/index.html") set(doxyfile "${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile") -file(GLOB_RECURSE - doxygen_input - docs/*.md - include/*.h - include/*.cpp - include/*.md - src/*.h - src/*.cpp - src/*.md - Builds/*.md - *.md) +file( + GLOB_RECURSE doxygen_input + docs/*.md + include/*.h + include/*.cpp + include/*.md + src/*.h + src/*.cpp + src/*.md + Builds/*.md + *.md +) list(APPEND doxygen_input external/README.md) set(dependencies "${doxygen_input}" "${doxyfile}") -function (verbose_find_path variable name) +function(verbose_find_path variable name) # find_path sets a CACHE variable, so don't try using a "local" variable. find_path(${variable} "${name}" ${ARGN}) - if (NOT ${variable}) + if(NOT ${variable}) message(NOTICE "could not find ${name}") - else () + else() message(STATUS "found ${name}: ${${variable}}/${name}") - endif () -endfunction () + endif() +endfunction() verbose_find_path(doxygen_plantuml_jar_path plantuml.jar PATH_SUFFIXES share/plantuml) verbose_find_path(doxygen_dot_path dot) @@ -47,26 +48,40 @@ verbose_find_path(doxygen_dot_path dot) # https://en.cppreference.com/w/Cppreference:Archives # https://stackoverflow.com/questions/60822559/how-to-move-a-file-download-from-configure-step-to-build-step set(download_script "${CMAKE_BINARY_DIR}/docs/download-cppreference.cmake") -file(WRITE "${download_script}" - "file(DOWNLOAD \ +file( + WRITE "${download_script}" + "file(DOWNLOAD \ https://github.com/PeterFeicht/cppreference-doc/releases/download/v20250209/html-book-20250209.zip \ ${CMAKE_BINARY_DIR}/docs/cppreference.zip \ EXPECTED_HASH MD5=bda585f72fbca4b817b29a3d5746567b \ )\n \ execute_process( \ COMMAND \"${CMAKE_COMMAND}\" -E tar -xf cppreference.zip \ - )\n") + )\n" +) set(tagfile "${CMAKE_BINARY_DIR}/docs/cppreference-doxygen-web.tag.xml") -add_custom_command(OUTPUT "${tagfile}" COMMAND "${CMAKE_COMMAND}" -P "${download_script}" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/docs") +add_custom_command( + OUTPUT "${tagfile}" + COMMAND "${CMAKE_COMMAND}" -P "${download_script}" + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/docs" +) set(doxygen_tagfiles "${tagfile}=http://en.cppreference.com/w/") add_custom_command( OUTPUT "${doxygen_index_file}" - COMMAND "${CMAKE_COMMAND}" -E env "DOXYGEN_OUTPUT_DIRECTORY=${doxygen_output_directory}" - "DOXYGEN_INCLUDE_PATH=${doxygen_include_path}" "DOXYGEN_TAGFILES=${doxygen_tagfiles}" - "DOXYGEN_PLANTUML_JAR_PATH=${doxygen_plantuml_jar_path}" - "DOXYGEN_DOT_PATH=${doxygen_dot_path}" "${DOXYGEN_EXECUTABLE}" "${doxyfile}" + COMMAND + "${CMAKE_COMMAND}" -E env + "DOXYGEN_OUTPUT_DIRECTORY=${doxygen_output_directory}" + "DOXYGEN_INCLUDE_PATH=${doxygen_include_path}" + "DOXYGEN_TAGFILES=${doxygen_tagfiles}" + "DOXYGEN_PLANTUML_JAR_PATH=${doxygen_plantuml_jar_path}" + "DOXYGEN_DOT_PATH=${doxygen_dot_path}" "${DOXYGEN_EXECUTABLE}" + "${doxyfile}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - DEPENDS "${dependencies}" "${tagfile}") -add_custom_target(docs DEPENDS "${doxygen_index_file}" SOURCES "${dependencies}") + DEPENDS "${dependencies}" "${tagfile}" +) +add_custom_target( + docs + DEPENDS "${doxygen_index_file}" + SOURCES "${dependencies}" +) diff --git a/cmake/XrplInstall.cmake b/cmake/XrplInstall.cmake index 666fc0712f..6ea41b5ffd 100644 --- a/cmake/XrplInstall.cmake +++ b/cmake/XrplInstall.cmake @@ -6,57 +6,71 @@ include(create_symbolic_link) # If no suffix is defined for executables (e.g. Windows uses .exe but Linux # and macOS use none), then explicitly set it to the empty string. -if (NOT DEFINED suffix) +if(NOT DEFINED suffix) set(suffix "") -endif () +endif() -install(TARGETS common - opts - xrpl_boost - xrpl_libs - xrpl_syslibs - xrpl.imports.main - xrpl.libpb - xrpl.libxrpl - xrpl.libxrpl.basics - xrpl.libxrpl.beast - xrpl.libxrpl.conditions - xrpl.libxrpl.core - xrpl.libxrpl.crypto - xrpl.libxrpl.git - xrpl.libxrpl.json - xrpl.libxrpl.rdb - xrpl.libxrpl.ledger - xrpl.libxrpl.net - xrpl.libxrpl.nodestore - xrpl.libxrpl.protocol - xrpl.libxrpl.resource - xrpl.libxrpl.server - xrpl.libxrpl.shamap - xrpl.libxrpl.tx - antithesis-sdk-cpp - EXPORT XrplExports - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES - DESTINATION include) +install( + TARGETS + common + opts + xrpl_boost + xrpl_libs + xrpl_syslibs + xrpl.imports.main + xrpl.libpb + xrpl.libxrpl + xrpl.libxrpl.basics + xrpl.libxrpl.beast + xrpl.libxrpl.conditions + xrpl.libxrpl.core + xrpl.libxrpl.crypto + xrpl.libxrpl.git + xrpl.libxrpl.json + xrpl.libxrpl.rdb + xrpl.libxrpl.ledger + xrpl.libxrpl.net + xrpl.libxrpl.nodestore + xrpl.libxrpl.protocol + xrpl.libxrpl.resource + xrpl.libxrpl.server + xrpl.libxrpl.shamap + xrpl.libxrpl.tx + antithesis-sdk-cpp + EXPORT XrplExports + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include +) -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/xrpl" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +install( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/xrpl" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) -install(EXPORT XrplExports FILE XrplTargets.cmake NAMESPACE Xrpl:: DESTINATION lib/cmake/xrpl) +install( + EXPORT XrplExports + FILE XrplTargets.cmake + NAMESPACE Xrpl:: + DESTINATION lib/cmake/xrpl +) include(CMakePackageConfigHelpers) -write_basic_package_version_file(XrplConfigVersion.cmake VERSION ${xrpld_version} - COMPATIBILITY SameMajorVersion) +write_basic_package_version_file( + XrplConfigVersion.cmake + VERSION ${xrpld_version} + COMPATIBILITY SameMajorVersion +) -if (is_root_project AND TARGET xrpld) +if(is_root_project AND TARGET xrpld) install(TARGETS xrpld RUNTIME DESTINATION bin) set_target_properties(xrpld PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) # sample configs should not overwrite existing files # install if-not-exists workaround as suggested by # https://cmake.org/Bug/view.php?id=12646 - install(CODE " + install( + CODE + " macro (copy_if_not_exists SRC DEST NEWNAME) if (NOT EXISTS \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DEST}/\${NEWNAME}\") file (INSTALL FILE_PERMISSIONS OWNER_READ OWNER_WRITE DESTINATION \"\${CMAKE_INSTALL_PREFIX}/\${DEST}\" FILES \"\${SRC}\" RENAME \"\${NEWNAME}\") @@ -66,14 +80,22 @@ if (is_root_project AND TARGET xrpld) endmacro() copy_if_not_exists(\"${CMAKE_CURRENT_SOURCE_DIR}/cfg/xrpld-example.cfg\" etc xrpld.cfg) copy_if_not_exists(\"${CMAKE_CURRENT_SOURCE_DIR}/cfg/validators-example.txt\" etc validators.txt) - ") - install(CODE " + " + ) + install( + CODE + " set(CMAKE_MODULE_PATH \"${CMAKE_MODULE_PATH}\") include(create_symbolic_link) create_symbolic_link(xrpld${suffix} \ \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/rippled${suffix}) - ") -endif () + " + ) +endif() -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/XrplConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/XrplConfigVersion.cmake DESTINATION lib/cmake/xrpl) +install( + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/XrplConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/XrplConfigVersion.cmake + DESTINATION lib/cmake/xrpl +) diff --git a/cmake/XrplInterface.cmake b/cmake/XrplInterface.cmake index dbf907c7b4..21fa76501d 100644 --- a/cmake/XrplInterface.cmake +++ b/cmake/XrplInterface.cmake @@ -5,47 +5,55 @@ include(CompilationEnv) # Set defaults for optional variables to avoid uninitialized variable warnings -if (NOT DEFINED voidstar) +if(NOT DEFINED voidstar) set(voidstar OFF) -endif () +endif() add_library(opts INTERFACE) add_library(Xrpl::opts ALIAS opts) target_compile_definitions( opts - INTERFACE BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS - BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT - BOOST_CONTAINER_FWD_BAD_DEQUE - HAS_UNCAUGHT_EXCEPTIONS=1 - $<$: - BOOST_ASIO_NO_DEPRECATED - BOOST_FILESYSTEM_NO_DEPRECATED - > - $<$>: - BOOST_COROUTINES_NO_DEPRECATION_WARNING - BOOST_BEAST_ALLOW_DEPRECATED - BOOST_FILESYSTEM_DEPRECATED - > - $<$:BEAST_NO_UNIT_TEST_INLINE=1> - $<$:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1> - $<$:XRPL_SINGLE_IO_SERVICE_THREAD=1> - $<$:ENABLE_VOIDSTAR>) + INTERFACE + BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS + BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT + BOOST_CONTAINER_FWD_BAD_DEQUE + HAS_UNCAUGHT_EXCEPTIONS=1 + $<$: + BOOST_ASIO_NO_DEPRECATED + BOOST_FILESYSTEM_NO_DEPRECATED + > + $<$>: + BOOST_COROUTINES_NO_DEPRECATION_WARNING + BOOST_BEAST_ALLOW_DEPRECATED + BOOST_FILESYSTEM_DEPRECATED + > + $<$:BEAST_NO_UNIT_TEST_INLINE=1> + $<$:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1> + $<$:XRPL_SINGLE_IO_SERVICE_THREAD=1> + $<$:ENABLE_VOIDSTAR> +) target_compile_options( opts - INTERFACE $<$,$>:-Wsuggest-override> - $<$:-Wno-maybe-uninitialized> - $<$:-fno-omit-frame-pointer> - $<$:-pg> - $<$,$>:-p>) + INTERFACE + $<$,$>:-Wsuggest-override> + $<$:-Wno-maybe-uninitialized> + $<$:-fno-omit-frame-pointer> + $<$:-pg> + $<$,$>:-p> +) -target_link_libraries(opts INTERFACE $<$:-pg> - $<$,$>:-p>) +target_link_libraries( + opts + INTERFACE + $<$:-pg> + $<$,$>:-p> +) -if (jemalloc) +if(jemalloc) find_package(jemalloc REQUIRED) target_compile_definitions(opts INTERFACE PROFILE_JEMALLOC) target_link_libraries(opts INTERFACE jemalloc::jemalloc) -endif () +endif() #[===================================================================[ xrpld transitive library deps via an interface library @@ -55,31 +63,33 @@ add_library(xrpl_syslibs INTERFACE) add_library(Xrpl::syslibs ALIAS xrpl_syslibs) target_link_libraries( xrpl_syslibs - INTERFACE $<$: - legacy_stdio_definitions.lib - Shlwapi - kernel32 - user32 - gdi32 - winspool - comdlg32 - advapi32 - shell32 - ole32 - oleaut32 - uuid - odbc32 - odbccp32 - crypt32 - > - $<$>:dl> - $<$,$>>:rt>) + INTERFACE + $<$: + legacy_stdio_definitions.lib + Shlwapi + kernel32 + user32 + gdi32 + winspool + comdlg32 + advapi32 + shell32 + ole32 + oleaut32 + uuid + odbc32 + odbccp32 + crypt32 + > + $<$>:dl> + $<$,$>>:rt> +) -if (NOT is_msvc) +if(NOT is_msvc) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads) target_link_libraries(xrpl_syslibs INTERFACE Threads::Threads) -endif () +endif() add_library(xrpl_libs INTERFACE) add_library(Xrpl::libs ALIAS xrpl_libs) diff --git a/cmake/XrplSanitizers.cmake b/cmake/XrplSanitizers.cmake index 6ddc0b7e7d..f9630f6856 100644 --- a/cmake/XrplSanitizers.cmake +++ b/cmake/XrplSanitizers.cmake @@ -44,23 +44,26 @@ include(CompilationEnv) # Read environment variable set(SANITIZERS "") -if (DEFINED ENV{SANITIZERS}) +if(DEFINED ENV{SANITIZERS}) set(SANITIZERS "$ENV{SANITIZERS}") -endif () +endif() # Set SANITIZERS_ENABLED flag for use in other modules -if (SANITIZERS MATCHES "address|thread|undefinedbehavior") +if(SANITIZERS MATCHES "address|thread|undefinedbehavior") set(SANITIZERS_ENABLED TRUE) -else () +else() set(SANITIZERS_ENABLED FALSE) return() -endif () +endif() # Sanitizers are not supported on Windows/MSVC -if (is_msvc) - message(FATAL_ERROR "Sanitizers are not supported on Windows/MSVC. " - "Please unset the SANITIZERS environment variable.") -endif () +if(is_msvc) + message( + FATAL_ERROR + "Sanitizers are not supported on Windows/MSVC. " + "Please unset the SANITIZERS environment variable." + ) +endif() message(STATUS "Configuring sanitizers: ${SANITIZERS}") @@ -74,24 +77,30 @@ set(san_list "${SANITIZERS}") string(REPLACE "," ";" san_list "${san_list}") separate_arguments(san_list) -foreach (san IN LISTS san_list) - if (san STREQUAL "address") +foreach(san IN LISTS san_list) + if(san STREQUAL "address") set(enable_asan TRUE) - elseif (san STREQUAL "thread") + elseif(san STREQUAL "thread") set(enable_tsan TRUE) - elseif (san STREQUAL "undefinedbehavior") + elseif(san STREQUAL "undefinedbehavior") set(enable_ubsan TRUE) - else () - message(FATAL_ERROR "Unsupported sanitizer type: ${san}" - "Supported: address, thread, undefinedbehavior and their combinations.") - endif () -endforeach () + else() + message( + FATAL_ERROR + "Unsupported sanitizer type: ${san}" + "Supported: address, thread, undefinedbehavior and their combinations." + ) + endif() +endforeach() # Validate sanitizer compatibility -if (enable_asan AND enable_tsan) - message(FATAL_ERROR "AddressSanitizer and ThreadSanitizer are incompatible and cannot be enabled simultaneously. " - "Use 'address' or 'thread', optionally with 'undefinedbehavior'.") -endif () +if(enable_asan AND enable_tsan) + message( + FATAL_ERROR + "AddressSanitizer and ThreadSanitizer are incompatible and cannot be enabled simultaneously. " + "Use 'address' or 'thread', optionally with 'undefinedbehavior'." + ) +endif() # Frame pointer is required for meaningful stack traces. Sanitizers recommend minimum of -O1 for reasonable performance set(SANITIZERS_COMPILE_FLAGS "-fno-omit-frame-pointer" "-O1") @@ -99,66 +108,79 @@ set(SANITIZERS_COMPILE_FLAGS "-fno-omit-frame-pointer" "-O1") # Build the sanitizer flags list set(SANITIZER_TYPES) -if (enable_asan) +if(enable_asan) list(APPEND SANITIZER_TYPES "address") -elseif (enable_tsan) +elseif(enable_tsan) list(APPEND SANITIZER_TYPES "thread") -endif () +endif() -if (enable_ubsan) +if(enable_ubsan) # UB sanitizer flags list(APPEND SANITIZER_TYPES "undefined" "float-divide-by-zero") - if (is_clang) + if(is_clang) # Clang supports additional UB checks. More info here # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html list(APPEND SANITIZER_TYPES "unsigned-integer-overflow") - endif () -endif () + endif() +endif() # Configure code model for GCC on amd64 Use large code model for ASAN to avoid relocation errors Use medium code model # for TSAN (large is not compatible with TSAN) set(SANITIZERS_RELOCATION_FLAGS) # Compiler-specific configuration -if (is_gcc) +if(is_gcc) # Disable mold, gold and lld linkers for GCC with sanitizers Use default linker (bfd/ld) which is more lenient with # mixed code models This is needed since the size of instrumented binary exceeds the limits set by mold, lld and # gold linkers set(use_mold OFF CACHE BOOL "Use mold linker" FORCE) set(use_gold OFF CACHE BOOL "Use gold linker" FORCE) set(use_lld OFF CACHE BOOL "Use lld linker" FORCE) - message(STATUS " Disabled mold, gold, and lld linkers for GCC with sanitizers") + message( + STATUS + " Disabled mold, gold, and lld linkers for GCC with sanitizers" + ) # Suppress false positive warnings in GCC with stringop-overflow list(APPEND SANITIZERS_COMPILE_FLAGS "-Wno-stringop-overflow") - if (is_amd64 AND enable_asan) + if(is_amd64 AND enable_asan) message(STATUS " Using large code model (-mcmodel=large)") list(APPEND SANITIZERS_COMPILE_FLAGS "-mcmodel=large") list(APPEND SANITIZERS_RELOCATION_FLAGS "-mcmodel=large") - elseif (enable_tsan) + elseif(enable_tsan) # GCC doesn't support atomic_thread_fence with tsan. Suppress warnings. list(APPEND SANITIZERS_COMPILE_FLAGS "-Wno-tsan") message(STATUS " Using medium code model (-mcmodel=medium)") list(APPEND SANITIZERS_COMPILE_FLAGS "-mcmodel=medium") list(APPEND SANITIZERS_RELOCATION_FLAGS "-mcmodel=medium") - endif () + endif() # Join sanitizer flags with commas for -fsanitize option list(JOIN SANITIZER_TYPES "," SANITIZER_TYPES_STR) # Add sanitizer to compile and link flags list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") - set(SANITIZERS_LINK_FLAGS "${SANITIZERS_RELOCATION_FLAGS}" "-fsanitize=${SANITIZER_TYPES_STR}") - -elseif (is_clang) + set(SANITIZERS_LINK_FLAGS + "${SANITIZERS_RELOCATION_FLAGS}" + "-fsanitize=${SANITIZER_TYPES_STR}" + ) +elseif(is_clang) # Add ignorelist for Clang (GCC doesn't support this) Use CMAKE_SOURCE_DIR to get the path to the ignorelist - set(IGNORELIST_PATH "${CMAKE_SOURCE_DIR}/sanitizers/suppressions/sanitizer-ignorelist.txt") - if (NOT EXISTS "${IGNORELIST_PATH}") - message(FATAL_ERROR "Sanitizer ignorelist not found: ${IGNORELIST_PATH}") - endif () + set(IGNORELIST_PATH + "${CMAKE_SOURCE_DIR}/sanitizers/suppressions/sanitizer-ignorelist.txt" + ) + if(NOT EXISTS "${IGNORELIST_PATH}") + message( + FATAL_ERROR + "Sanitizer ignorelist not found: ${IGNORELIST_PATH}" + ) + endif() - list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize-ignorelist=${IGNORELIST_PATH}") + list( + APPEND SANITIZERS_COMPILE_FLAGS + "-fsanitize-ignorelist=${IGNORELIST_PATH}" + ) message(STATUS " Using sanitizer ignorelist: ${IGNORELIST_PATH}") # Join sanitizer flags with commas for -fsanitize option @@ -167,31 +189,35 @@ elseif (is_clang) # Add sanitizer to compile and link flags list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") set(SANITIZERS_LINK_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") -endif () +endif() message(STATUS " Compile flags: ${SANITIZERS_COMPILE_FLAGS}") message(STATUS " Link flags: ${SANITIZERS_LINK_FLAGS}") # Apply the sanitizer flags to the 'common' interface library This is the same library used by XrplCompiler.cmake -target_compile_options(common INTERFACE $<$:${SANITIZERS_COMPILE_FLAGS}> - $<$:${SANITIZERS_COMPILE_FLAGS}>) +target_compile_options( + common + INTERFACE + $<$:${SANITIZERS_COMPILE_FLAGS}> + $<$:${SANITIZERS_COMPILE_FLAGS}> +) # Apply linker flags target_link_options(common INTERFACE ${SANITIZERS_LINK_FLAGS}) # Define SANITIZERS macro for BuildInfo.cpp set(sanitizers_list) -if (enable_asan) +if(enable_asan) list(APPEND sanitizers_list "ASAN") -endif () -if (enable_tsan) +endif() +if(enable_tsan) list(APPEND sanitizers_list "TSAN") -endif () -if (enable_ubsan) +endif() +if(enable_ubsan) list(APPEND sanitizers_list "UBSAN") -endif () +endif() -if (sanitizers_list) +if(sanitizers_list) list(JOIN sanitizers_list "." sanitizers_str) target_compile_definitions(common INTERFACE SANITIZERS=${sanitizers_str}) -endif () +endif() diff --git a/cmake/XrplSanity.cmake b/cmake/XrplSanity.cmake index 489ad026e1..24b4d4d408 100644 --- a/cmake/XrplSanity.cmake +++ b/cmake/XrplSanity.cmake @@ -7,40 +7,49 @@ include(CompilationEnv) get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) -if (NOT is_multiconfig) - if (NOT CMAKE_BUILD_TYPE) +if(NOT is_multiconfig) + if(NOT CMAKE_BUILD_TYPE) message(STATUS "Build type not specified - defaulting to Release") set(CMAKE_BUILD_TYPE Release CACHE STRING "build type" FORCE) - elseif (NOT (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL Release)) + elseif( + NOT (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL Release) + ) # for simplicity, these are the only two config types we care about. Limiting the build types simplifies dealing # with external project builds especially - message(FATAL_ERROR " *** Only Debug or Release build types are currently supported ***") - endif () -endif () + message( + FATAL_ERROR + " *** Only Debug or Release build types are currently supported ***" + ) + endif() +endif() -if (is_clang) # both Clang and AppleClang - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS - 16.0) +if(is_clang) # both Clang and AppleClang + if( + "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0 + ) message(FATAL_ERROR "This project requires clang 16 or later") - endif () -elseif (is_gcc) - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0) + endif() +elseif(is_gcc) + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0) message(FATAL_ERROR "This project requires GCC 12 or later") - endif () -endif () + endif() +endif() # check for in-source build and fail -if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") - message(FATAL_ERROR "Builds (in-source) are not allowed in " - "${CMAKE_CURRENT_SOURCE_DIR}. Please remove CMakeCache.txt and the CMakeFiles " - "directory from ${CMAKE_CURRENT_SOURCE_DIR} and try building in a separate directory." +if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") + message( + FATAL_ERROR + "Builds (in-source) are not allowed in " + "${CMAKE_CURRENT_SOURCE_DIR}. Please remove CMakeCache.txt and the CMakeFiles " + "directory from ${CMAKE_CURRENT_SOURCE_DIR} and try building in a separate directory." ) -endif () +endif() -if (MSVC AND CMAKE_GENERATOR_PLATFORM STREQUAL "Win32") +if(MSVC AND CMAKE_GENERATOR_PLATFORM STREQUAL "Win32") message(FATAL_ERROR "Visual Studio 32-bit build is not supported.") -endif () +endif() -if (APPLE AND NOT HOMEBREW) +if(APPLE AND NOT HOMEBREW) find_program(HOMEBREW brew) -endif () +endif() diff --git a/cmake/XrplSettings.cmake b/cmake/XrplSettings.cmake index 5c753fdcda..44a727a994 100644 --- a/cmake/XrplSettings.cmake +++ b/cmake/XrplSettings.cmake @@ -5,59 +5,67 @@ include(CompilationEnv) set(is_ci FALSE) -if (DEFINED ENV{CI}) - if ("$ENV{CI}" STREQUAL "true") +if(DEFINED ENV{CI}) + if("$ENV{CI}" STREQUAL "true") set(is_ci TRUE) - endif () -endif () + endif() +endif() get_directory_property(has_parent PARENT_DIRECTORY) -if (has_parent) +if(has_parent) set(is_root_project OFF) -else () +else() set(is_root_project ON) -endif () +endif() option(assert "Enables asserts, even in release builds" OFF) option(xrpld "Build xrpld" ON) option(tests "Build tests" ON) -if (tests) +if(tests) # This setting allows making a separate workflow to test fees other than default 10 - if (NOT UNIT_TEST_REFERENCE_FEE) + if(NOT UNIT_TEST_REFERENCE_FEE) set(UNIT_TEST_REFERENCE_FEE "10" CACHE STRING "") - endif () -endif () + endif() +endif() option(unity "Creates a build using UNITY support in cmake." OFF) -if (unity) - if (NOT is_ci) +if(unity) + if(NOT is_ci) set(CMAKE_UNITY_BUILD_BATCH_SIZE 15 CACHE STRING "") - endif () + endif() set(CMAKE_UNITY_BUILD ON CACHE BOOL "Do a unity build") -endif () +endif() -if (is_clang AND is_linux) +if(is_clang AND is_linux) option(voidstar "Enable Antithesis instrumentation." OFF) -endif () +endif() -if (is_gcc OR is_clang) +if(is_gcc OR is_clang) include(ProcessorCount) ProcessorCount(PROCESSOR_COUNT) option(coverage "Generates coverage info." OFF) option(profile "Add profiling flags" OFF) - set(coverage_format "html-details" CACHE STRING "Output format of the coverage report.") - set(coverage_extra_args "" CACHE STRING "Additional arguments to pass to gcovr.") + set(coverage_format + "html-details" + CACHE STRING + "Output format of the coverage report." + ) + set(coverage_extra_args + "" + CACHE STRING + "Additional arguments to pass to gcovr." + ) option(wextra "compile with extra gcc/clang warnings enabled" ON) -else () +else() set(profile OFF CACHE BOOL "gcc/clang only" FORCE) set(coverage OFF CACHE BOOL "gcc/clang only" FORCE) set(wextra OFF CACHE BOOL "gcc/clang only" FORCE) -endif () +endif() -if (is_linux AND NOT SANITIZER) +if(is_linux AND NOT SANITIZER) option(BUILD_SHARED_LIBS "build shared xrpl libraries" OFF) option(static "link protobuf, openssl, libc++, and boost statically" ON) option(perf "Enables flags that assist with perf recording" OFF) @@ -65,53 +73,83 @@ if (is_linux AND NOT SANITIZER) option(use_mold "enables detection of mold (binutils) linker" ON) # Set a default value for the log flag based on the build type. This provides a sensible default (on for debug, off # for release) while still allowing the user to override it for any build. - if (CMAKE_BUILD_TYPE STREQUAL "Debug") + if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(TRUNCATED_LOGS_DEFAULT ON) - else () + else() set(TRUNCATED_LOGS_DEFAULT OFF) - endif () - option(TRUNCATED_THREAD_NAME_LOGS "Show warnings about truncated thread names on Linux." - ${TRUNCATED_LOGS_DEFAULT}) - if (TRUNCATED_THREAD_NAME_LOGS) + endif() + option( + TRUNCATED_THREAD_NAME_LOGS + "Show warnings about truncated thread names on Linux." + ${TRUNCATED_LOGS_DEFAULT} + ) + if(TRUNCATED_THREAD_NAME_LOGS) add_compile_definitions(TRUNCATED_THREAD_NAME_LOGS) - endif () -else () + endif() +else() # we are not ready to allow shared-libs on windows because it would require export declarations. On macos it's more # feasible, but static openssl produces odd linker errors, thus we disable shared lib builds for now. - set(BUILD_SHARED_LIBS OFF CACHE BOOL "build shared xrpl libraries - OFF for win/macos" FORCE) + set(BUILD_SHARED_LIBS + OFF + CACHE BOOL + "build shared xrpl libraries - OFF for win/macos" + FORCE + ) set(static ON CACHE BOOL "static link, linux only. ON for WIN/macos" FORCE) set(perf OFF CACHE BOOL "perf flags, linux only" FORCE) set(use_gold OFF CACHE BOOL "gold linker, linux only" FORCE) set(use_mold OFF CACHE BOOL "mold linker, linux only" FORCE) -endif () +endif() -if (is_clang) +if(is_clang) option(use_lld "enables detection of lld linker" ON) -else () +else() set(use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE) -endif () +endif() option(jemalloc "Enables jemalloc for heap profiling" OFF) option(werr "treat warnings as errors" OFF) -option(local_protobuf - "Force a local build of protobuf instead of looking for an installed version." OFF) -option(local_grpc "Force a local build of gRPC instead of looking for an installed version." OFF) +option( + local_protobuf + "Force a local build of protobuf instead of looking for an installed version." + OFF +) +option( + local_grpc + "Force a local build of gRPC instead of looking for an installed version." + OFF +) # the remaining options are obscure and rarely used -option(beast_no_unit_test_inline - "Prevents unit test definitions from being inserted into global table" OFF) -option(single_io_service_thread "Restricts the number of threads calling io_context::run to one. \ - This can be useful when debugging." OFF) -option(boost_show_deprecated "Allow boost to fail on deprecated usage. Only useful if you're trying\ - to find deprecated calls." OFF) +option( + beast_no_unit_test_inline + "Prevents unit test definitions from being inserted into global table" + OFF +) +option( + single_io_service_thread + "Restricts the number of threads calling io_context::run to one. \ + This can be useful when debugging." + OFF +) +option( + boost_show_deprecated + "Allow boost to fail on deprecated usage. Only useful if you're trying\ + to find deprecated calls." + OFF +) -if (WIN32) - option(beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF) -else () +if(WIN32) + option( + beast_disable_autolink + "Disables autolinking of system libraries on WIN32" + OFF + ) +else() set(beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE) -endif () +endif() -if (coverage) +if(coverage) message(STATUS "coverage build requested - forcing Debug build") set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE) -endif () +endif() diff --git a/cmake/XrplValidatorKeys.cmake b/cmake/XrplValidatorKeys.cmake index 58672aada5..0e511b6a88 100644 --- a/cmake/XrplValidatorKeys.cmake +++ b/cmake/XrplValidatorKeys.cmake @@ -1,20 +1,26 @@ -option(validator_keys - "Enables building of validator-keys tool as a separate target (imported via FetchContent)" - OFF) +option( + validator_keys + "Enables building of validator-keys tool as a separate target (imported via FetchContent)" + OFF +) -if (validator_keys) +if(validator_keys) git_branch(current_branch) # default to tracking VK master branch unless we are on release - if (NOT (current_branch STREQUAL "release")) + if(NOT (current_branch STREQUAL "release")) set(current_branch "master") - endif () + endif() message(STATUS "Tracking ValidatorKeys branch: ${current_branch}") FetchContent_Declare( - validator_keys GIT_REPOSITORY https://github.com/ripple/validator-keys-tool.git - GIT_TAG "${current_branch}") + validator_keys + GIT_REPOSITORY https://github.com/ripple/validator-keys-tool.git + GIT_TAG "${current_branch}" + ) FetchContent_MakeAvailable(validator_keys) - set_target_properties(validator-keys PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + set_target_properties( + validator-keys + PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" + ) install(TARGETS validator-keys RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - -endif () +endif() diff --git a/cmake/XrplVersion.cmake b/cmake/XrplVersion.cmake index 6eeda7b1eb..595b750d69 100644 --- a/cmake/XrplVersion.cmake +++ b/cmake/XrplVersion.cmake @@ -3,13 +3,13 @@ #]===================================================================] file(STRINGS src/libxrpl/protocol/BuildInfo.cpp BUILD_INFO) -foreach (line_ ${BUILD_INFO}) - if (line_ MATCHES "versionString[ ]*=[ ]*\"(.+)\"") +foreach(line_ ${BUILD_INFO}) + if(line_ MATCHES "versionString[ ]*=[ ]*\"(.+)\"") set(xrpld_version ${CMAKE_MATCH_1}) - endif () -endforeach () -if (xrpld_version) + endif() +endforeach() +if(xrpld_version) message(STATUS "xrpld version: ${xrpld_version}") -else () +else() message(FATAL_ERROR "unable to determine xrpld version") -endif () +endif() diff --git a/cmake/add_module.cmake b/cmake/add_module.cmake index 73618e8be3..5b1864a0bb 100644 --- a/cmake/add_module.cmake +++ b/cmake/add_module.cmake @@ -12,15 +12,23 @@ include(isolate_headers) # add_module(parent a) # add_module(parent b) # target_link_libraries(project.libparent.b PUBLIC project.libparent.a) -function (add_module parent name) +function(add_module parent name) set(target ${PROJECT_NAME}.lib${parent}.${name}) add_library(${target} OBJECT) - file(GLOB_RECURSE sources CONFIGURE_DEPENDS - "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}/*.cpp") + file( + GLOB_RECURSE sources + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}/*.cpp" + ) target_sources(${target} PRIVATE ${sources}) - target_include_directories(${target} PUBLIC "$") + target_include_directories( + ${target} + PUBLIC "$" + ) isolate_headers(${target} "${CMAKE_CURRENT_SOURCE_DIR}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/include/${parent}/${name}" PUBLIC) + "${CMAKE_CURRENT_SOURCE_DIR}/include/${parent}/${name}" PUBLIC + ) isolate_headers(${target} "${CMAKE_CURRENT_SOURCE_DIR}/src" - "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}" PRIVATE) -endfunction () + "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}" PRIVATE + ) +endfunction() diff --git a/cmake/create_symbolic_link.cmake b/cmake/create_symbolic_link.cmake index 82ca915f5c..0cd8e1f567 100644 --- a/cmake/create_symbolic_link.cmake +++ b/cmake/create_symbolic_link.cmake @@ -1,19 +1,21 @@ # file(CREATE_SYMLINK) only works on Windows with administrator privileges. https://stackoverflow.com/a/61244115/618906 -function (create_symbolic_link target link) - if (WIN32) - if (NOT IS_SYMLINK "${link}") - if (NOT IS_ABSOLUTE "${target}") +function(create_symbolic_link target link) + if(WIN32) + if(NOT IS_SYMLINK "${link}") + if(NOT IS_ABSOLUTE "${target}") # Relative links work do not work on Windows. set(target "${link}/../${target}") - endif () + endif() file(TO_NATIVE_PATH "${target}" target) file(TO_NATIVE_PATH "${link}" link) - execute_process(COMMAND cmd.exe /c mklink /J "${link}" "${target}") - endif () - else () + execute_process( + COMMAND cmd.exe /c mklink /J "${link}" "${target}" + ) + endif() + else() file(CREATE_LINK "${target}" "${link}" SYMBOLIC) - endif () - if (NOT IS_SYMLINK "${link}") + endif() + if(NOT IS_SYMLINK "${link}") message(ERROR "failed to create symlink: <${link}>") - endif () -endfunction () + endif() +endfunction() diff --git a/cmake/deps/Boost.cmake b/cmake/deps/Boost.cmake index a7b145364d..10dc3e271a 100644 --- a/cmake/deps/Boost.cmake +++ b/cmake/deps/Boost.cmake @@ -1,45 +1,60 @@ include(CompilationEnv) include(XrplSanitizers) -find_package(Boost REQUIRED - COMPONENTS chrono - container - coroutine - date_time - filesystem - json - program_options - regex - system - thread) +find_package( + Boost + REQUIRED + COMPONENTS + chrono + container + coroutine + date_time + filesystem + json + program_options + regex + system + thread +) add_library(xrpl_boost INTERFACE) add_library(Xrpl::boost ALIAS xrpl_boost) target_link_libraries( xrpl_boost - INTERFACE Boost::headers - Boost::chrono - Boost::container - Boost::coroutine - Boost::date_time - Boost::filesystem - Boost::json - Boost::process - Boost::program_options - Boost::regex - Boost::thread) -if (Boost_COMPILER) + INTERFACE + Boost::headers + Boost::chrono + Boost::container + Boost::coroutine + Boost::date_time + Boost::filesystem + Boost::json + Boost::process + Boost::program_options + Boost::regex + Boost::thread +) +if(Boost_COMPILER) target_link_libraries(xrpl_boost INTERFACE Boost::disable_autolinking) -endif () -if (SANITIZERS_ENABLED AND is_clang) +endif() +if(SANITIZERS_ENABLED AND is_clang) # TODO: gcc does not support -fsanitize-blacklist...can we do something else for gcc ? - if (NOT Boost_INCLUDE_DIRS AND TARGET Boost::headers) - get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES) - endif () + if(NOT Boost_INCLUDE_DIRS AND TARGET Boost::headers) + get_target_property( + Boost_INCLUDE_DIRS + Boost::headers + INTERFACE_INCLUDE_DIRECTORIES + ) + endif() message(STATUS "Adding [${Boost_INCLUDE_DIRS}] to sanitizer blacklist") - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt "src:${Boost_INCLUDE_DIRS}/*") + file( + WRITE ${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt + "src:${Boost_INCLUDE_DIRS}/*" + ) target_compile_options( - opts INTERFACE # ignore boost headers for sanitizing - -fsanitize-blacklist=${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt) -endif () + opts + INTERFACE # ignore boost headers for sanitizing + -fsanitize-blacklist=${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt + ) +endif() diff --git a/cmake/isolate_headers.cmake b/cmake/isolate_headers.cmake index ef53b3f20a..4053cd6831 100644 --- a/cmake/isolate_headers.cmake +++ b/cmake/isolate_headers.cmake @@ -37,7 +37,7 @@ include(create_symbolic_link) # `${CMAKE_CURRENT_BINARY_DIR}/include/${target}`. # # isolate_headers(target A B scope) -function (isolate_headers target A B scope) +function(isolate_headers target A B scope) file(RELATIVE_PATH C "${A}" "${B}") set(X "${CMAKE_CURRENT_BINARY_DIR}/modules/${target}") set(Y "${X}/${C}") @@ -45,4 +45,4 @@ function (isolate_headers target A B scope) file(MAKE_DIRECTORY "${parent}") create_symbolic_link("${B}" "${Y}") target_include_directories(${target} ${scope} "$") -endfunction () +endfunction() diff --git a/cmake/target_link_modules.cmake b/cmake/target_link_modules.cmake index bcd80591b0..a923d81c66 100644 --- a/cmake/target_link_modules.cmake +++ b/cmake/target_link_modules.cmake @@ -6,9 +6,9 @@ # target_link_libraries(project.libparent.b PUBLIC project.libparent.a) # add_library(project.libparent) # target_link_modules(parent PUBLIC a b) -function (target_link_modules parent scope) +function(target_link_modules parent scope) set(library ${PROJECT_NAME}.lib${parent}) - foreach (name ${ARGN}) + foreach(name ${ARGN}) set(module ${library}.${name}) get_target_property(sources ${library} SOURCES) list(LENGTH sources before) @@ -17,8 +17,11 @@ function (target_link_modules parent scope) list(REMOVE_ITEM sources ${dupes}) list(LENGTH sources after) math(EXPR actual "${before} - ${after}") - message(STATUS "${module} with ${expected} sources took ${actual} sources from ${library}") + message( + STATUS + "${module} with ${expected} sources took ${actual} sources from ${library}" + ) set_target_properties(${library} PROPERTIES SOURCES "${sources}") target_link_libraries(${library} ${scope} ${module}) - endforeach () -endfunction () + endforeach() +endfunction() diff --git a/cmake/target_protobuf_sources.cmake b/cmake/target_protobuf_sources.cmake index bb5de02b53..2a04de9e11 100644 --- a/cmake/target_protobuf_sources.cmake +++ b/cmake/target_protobuf_sources.cmake @@ -35,20 +35,31 @@ find_package(Protobuf REQUIRED) # This prefix should appear at the start of all your consumer includes. # ARGN: # A list of .proto files. -function (target_protobuf_sources target prefix) +function(target_protobuf_sources target prefix) set(dir "${CMAKE_CURRENT_BINARY_DIR}/pb-${target}") file(MAKE_DIRECTORY "${dir}/${prefix}") - protobuf_generate(TARGET ${target} PROTOC_OUT_DIR "${dir}/${prefix}" "${ARGN}") + protobuf_generate( + TARGET ${target} + PROTOC_OUT_DIR "${dir}/${prefix}" + "${ARGN}" + ) target_include_directories( - ${target} SYSTEM + ${target} + SYSTEM PUBLIC # Allows #include used by consumer files. - $ - # Allows #include "path/to/file.proto" used by generated files. - $ - # Allows #include used by consumer files. - $ - # Allows #include "path/to/file.proto" used by generated files. - $) - install(DIRECTORY ${dir}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.h") -endfunction () + $ + # Allows #include "path/to/file.proto" used by generated files. + $ + # Allows #include used by consumer files. + $ + # Allows #include "path/to/file.proto" used by generated files. + $ + ) + install( + DIRECTORY ${dir}/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING + PATTERN "*.h" + ) +endfunction() diff --git a/src/tests/libxrpl/CMakeLists.txt b/src/tests/libxrpl/CMakeLists.txt index cfa056b0aa..6bcb6aff89 100644 --- a/src/tests/libxrpl/CMakeLists.txt +++ b/src/tests/libxrpl/CMakeLists.txt @@ -14,7 +14,10 @@ target_link_libraries(xrpl.helpers.test PRIVATE xrpl.libxrpl) # Common library dependencies for the rest of the tests. add_library(xrpl.imports.test INTERFACE) -target_link_libraries(xrpl.imports.test INTERFACE gtest::gtest xrpl.libxrpl xrpl.helpers.test) +target_link_libraries( + xrpl.imports.test + INTERFACE gtest::gtest xrpl.libxrpl xrpl.helpers.test +) # One test for each module. xrpl_add_test(basics) @@ -30,8 +33,8 @@ target_link_libraries(xrpl.test.json PRIVATE xrpl.imports.test) add_dependencies(xrpl.tests xrpl.test.json) # Network unit tests are currently not supported on Windows -if (NOT WIN32) +if(NOT WIN32) xrpl_add_test(net) target_link_libraries(xrpl.test.net PRIVATE xrpl.imports.test) add_dependencies(xrpl.tests xrpl.test.net) -endif () +endif() From 5865bd017f777491b4a956f9210be0c4161f5442 Mon Sep 17 00:00:00 2001 From: Vito Tumas <5780819+Tapanito@users.noreply.github.com> Date: Fri, 6 Mar 2026 09:25:31 +0100 Subject: [PATCH 03/82] refactor: Update transaction folder structure (#6483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change reorganizes the `tx/transactors` directory for consistency and discoverability. There are no behavioral changes, this is a pure refactor. Underscores were chosen as the way to separate multi-words as this is the more popular option in C++ projects. Specific changes: - Rename all subdirectories to lowercase/snake_case (`AMM` → `amm`, `Check` → `check`, `NFT` → `nft`, `PermissionedDomain` → `permissioned_domain`, etc.) - Merge `AMM/` and `Offer/` into `dex/`, including `PermissionedDEXHelpers` - Rename `MPT/` → `token/`, absorbing `SetTrust` and `Clawback` - Move top-level transactors into named groups: `account/`, `bridge/`, `credentials/`, `did/`, `escrow/`, `oracle/`, `payment/`, `payment_channel/`, `system/` - Update all include paths across the codebase and `transactions.macro` --- .../xrpl/protocol/detail/transactions.macro | 120 +++++++++--------- include/xrpl/tx/paths/detail/StrandFlow.h | 4 +- .../transactors/{ => account}/DeleteAccount.h | 0 .../tx/transactors/{ => account}/SetAccount.h | 0 .../transactors/{ => account}/SetRegularKey.h | 0 .../transactors/{ => account}/SetSignerList.h | 0 .../transactors/{ => bridge}/XChainBridge.h | 0 .../{Check => check}/CancelCheck.h | 0 .../transactors/{Check => check}/CashCheck.h | 0 .../{Check => check}/CreateCheck.h | 0 .../{ => credentials}/Credentials.h | 0 .../{Delegate => delegate}/DelegateSet.h | 0 .../{Delegate => delegate}/DelegateUtils.h | 0 .../xrpl/tx/transactors/{AMM => dex}/AMMBid.h | 0 .../tx/transactors/{AMM => dex}/AMMClawback.h | 0 .../tx/transactors/{AMM => dex}/AMMContext.h | 0 .../tx/transactors/{AMM => dex}/AMMCreate.h | 0 .../tx/transactors/{AMM => dex}/AMMDelete.h | 0 .../tx/transactors/{AMM => dex}/AMMDeposit.h | 0 .../tx/transactors/{AMM => dex}/AMMHelpers.h | 0 .../tx/transactors/{AMM => dex}/AMMUtils.h | 0 .../tx/transactors/{AMM => dex}/AMMVote.h | 0 .../tx/transactors/{AMM => dex}/AMMWithdraw.h | 0 .../transactors/{Offer => dex}/CancelOffer.h | 0 .../transactors/{Offer => dex}/CreateOffer.h | 0 .../{ => dex}/PermissionedDEXHelpers.h | 0 include/xrpl/tx/transactors/{ => did}/DID.h | 0 .../xrpl/tx/transactors/{ => escrow}/Escrow.h | 0 .../{Lending => lending}/LendingHelpers.h | 0 .../LoanBrokerCoverClawback.h | 0 .../LoanBrokerCoverDeposit.h | 0 .../LoanBrokerCoverWithdraw.h | 0 .../{Lending => lending}/LoanBrokerDelete.h | 0 .../{Lending => lending}/LoanBrokerSet.h | 0 .../{Lending => lending}/LoanDelete.h | 0 .../{Lending => lending}/LoanManage.h | 0 .../{Lending => lending}/LoanPay.h | 0 .../{Lending => lending}/LoanSet.h | 2 +- .../{NFT => nft}/NFTokenAcceptOffer.h | 0 .../tx/transactors/{NFT => nft}/NFTokenBurn.h | 0 .../{NFT => nft}/NFTokenCancelOffer.h | 0 .../{NFT => nft}/NFTokenCreateOffer.h | 0 .../tx/transactors/{NFT => nft}/NFTokenMint.h | 2 +- .../transactors/{NFT => nft}/NFTokenModify.h | 0 .../transactors/{NFT => nft}/NFTokenUtils.h | 0 .../transactors/{ => oracle}/DeleteOracle.h | 0 .../tx/transactors/{ => oracle}/SetOracle.h | 0 .../{ => payment}/DepositPreauth.h | 0 .../tx/transactors/{ => payment}/Payment.h | 0 .../{ => payment_channel}/PayChan.h | 0 .../PermissionedDomainDelete.h | 0 .../PermissionedDomainSet.h | 0 .../xrpl/tx/transactors/{ => system}/Batch.h | 0 .../xrpl/tx/transactors/{ => system}/Change.h | 0 .../transactors/{ => system}/CreateTicket.h | 0 .../transactors/{ => system}/LedgerStateFix.h | 0 .../tx/transactors/{ => token}/Clawback.h | 0 .../{MPT => token}/MPTokenAuthorize.h | 0 .../{MPT => token}/MPTokenIssuanceCreate.h | 0 .../{MPT => token}/MPTokenIssuanceDestroy.h | 0 .../{MPT => token}/MPTokenIssuanceSet.h | 0 .../tx/transactors/{ => token}/SetTrust.h | 0 .../{Vault => vault}/VaultClawback.h | 0 .../{Vault => vault}/VaultCreate.h | 0 .../{Vault => vault}/VaultDelete.h | 0 .../{Vault => vault}/VaultDeposit.h | 0 .../transactors/{Vault => vault}/VaultSet.h | 0 .../{Vault => vault}/VaultWithdraw.h | 0 src/libxrpl/tx/Transactor.cpp | 4 +- src/libxrpl/tx/invariants/AMMInvariant.cpp | 4 +- src/libxrpl/tx/invariants/NFTInvariant.cpp | 2 +- src/libxrpl/tx/paths/Flow.cpp | 2 +- src/libxrpl/tx/paths/OfferStream.cpp | 2 +- .../{ => account}/DeleteAccount.cpp | 14 +- .../transactors/{ => account}/SetAccount.cpp | 4 +- .../{ => account}/SetRegularKey.cpp | 2 +- .../{ => account}/SetSignerList.cpp | 2 +- .../transactors/{ => bridge}/XChainBridge.cpp | 2 +- .../{Check => check}/CancelCheck.cpp | 2 +- .../{Check => check}/CashCheck.cpp | 2 +- .../{Check => check}/CreateCheck.cpp | 2 +- .../{ => credentials}/Credentials.cpp | 2 +- .../{Delegate => delegate}/DelegateSet.cpp | 2 +- .../{Delegate => delegate}/DelegateUtils.cpp | 2 +- .../tx/transactors/{AMM => dex}/AMMBid.cpp | 6 +- .../transactors/{AMM => dex}/AMMClawback.cpp | 8 +- .../tx/transactors/{AMM => dex}/AMMCreate.cpp | 6 +- .../tx/transactors/{AMM => dex}/AMMDelete.cpp | 4 +- .../transactors/{AMM => dex}/AMMDeposit.cpp | 6 +- .../transactors/{AMM => dex}/AMMHelpers.cpp | 2 +- .../tx/transactors/{AMM => dex}/AMMUtils.cpp | 4 +- .../tx/transactors/{AMM => dex}/AMMVote.cpp | 4 +- .../transactors/{AMM => dex}/AMMWithdraw.cpp | 6 +- .../{Offer => dex}/CancelOffer.cpp | 2 +- .../{Offer => dex}/CreateOffer.cpp | 4 +- .../PermissionedDEXHelpers.cpp | 2 +- src/libxrpl/tx/transactors/{ => did}/DID.cpp | 2 +- .../tx/transactors/{ => escrow}/Escrow.cpp | 4 +- .../{Lending => lending}/LendingHelpers.cpp | 4 +- .../LoanBrokerCoverClawback.cpp | 4 +- .../LoanBrokerCoverDeposit.cpp | 4 +- .../LoanBrokerCoverWithdraw.cpp | 6 +- .../{Lending => lending}/LoanBrokerDelete.cpp | 4 +- .../{Lending => lending}/LoanBrokerSet.cpp | 4 +- .../{Lending => lending}/LoanDelete.cpp | 4 +- .../{Lending => lending}/LoanManage.cpp | 4 +- .../{Lending => lending}/LoanPay.cpp | 6 +- .../{Lending => lending}/LoanSet.cpp | 4 +- .../{NFT => nft}/NFTokenAcceptOffer.cpp | 4 +- .../transactors/{NFT => nft}/NFTokenBurn.cpp | 4 +- .../{NFT => nft}/NFTokenCancelOffer.cpp | 4 +- .../{NFT => nft}/NFTokenCreateOffer.cpp | 4 +- .../transactors/{NFT => nft}/NFTokenMint.cpp | 2 +- .../{NFT => nft}/NFTokenModify.cpp | 4 +- .../transactors/{NFT => nft}/NFTokenUtils.cpp | 2 +- .../transactors/{ => oracle}/DeleteOracle.cpp | 2 +- .../tx/transactors/{ => oracle}/SetOracle.cpp | 2 +- .../{ => payment}/DepositPreauth.cpp | 2 +- .../tx/transactors/{ => payment}/Payment.cpp | 6 +- .../{ => payment_channel}/PayChan.cpp | 2 +- .../PermissionedDomainDelete.cpp | 2 +- .../PermissionedDomainSet.cpp | 2 +- .../tx/transactors/{ => system}/Batch.cpp | 2 +- .../tx/transactors/{ => system}/Change.cpp | 2 +- .../transactors/{ => system}/CreateTicket.cpp | 2 +- .../{ => system}/LedgerStateFix.cpp | 4 +- .../tx/transactors/{ => token}/Clawback.cpp | 2 +- .../{MPT => token}/MPTokenAuthorize.cpp | 2 +- .../{MPT => token}/MPTokenIssuanceCreate.cpp | 2 +- .../{MPT => token}/MPTokenIssuanceDestroy.cpp | 2 +- .../{MPT => token}/MPTokenIssuanceSet.cpp | 4 +- .../tx/transactors/{ => token}/SetTrust.cpp | 4 +- .../{Vault => vault}/VaultClawback.cpp | 2 +- .../{Vault => vault}/VaultCreate.cpp | 6 +- .../{Vault => vault}/VaultDelete.cpp | 2 +- .../{Vault => vault}/VaultDeposit.cpp | 4 +- .../transactors/{Vault => vault}/VaultSet.cpp | 2 +- .../{Vault => vault}/VaultWithdraw.cpp | 2 +- src/test/app/AMMCalc_test.cpp | 2 +- src/test/app/AMMClawback_test.cpp | 2 +- src/test/app/AMMExtended_test.cpp | 4 +- src/test/app/AMM_test.cpp | 8 +- src/test/app/Batch_test.cpp | 2 +- src/test/app/FixNFTokenPageLinks_test.cpp | 2 +- src/test/app/LendingHelpers_test.cpp | 6 +- src/test/app/LoanBroker_test.cpp | 2 +- src/test/app/Loan_test.cpp | 6 +- src/test/app/NFTokenAuth_test.cpp | 2 +- src/test/app/NFTokenBurn_test.cpp | 2 +- src/test/app/NFTokenDir_test.cpp | 2 +- src/test/app/NFToken_test.cpp | 2 +- src/test/app/PayStrand_test.cpp | 2 +- src/test/app/PermissionedDEX_test.cpp | 2 +- src/test/app/PermissionedDomains_test.cpp | 2 +- src/test/app/TheoreticalQuality_test.cpp | 2 +- src/test/jtx/impl/AMM.cpp | 4 +- src/test/jtx/impl/ledgerStateFixes.cpp | 2 +- src/test/jtx/impl/token.cpp | 2 +- src/test/rpc/AccountObjects_test.cpp | 2 +- src/xrpld/app/ledger/OrderBookDBImpl.cpp | 2 +- src/xrpld/app/paths/AMMLiquidity.h | 6 +- src/xrpld/app/paths/detail/BookStep.cpp | 2 +- src/xrpld/rpc/detail/RPCHelpers.cpp | 2 +- src/xrpld/rpc/handlers/AMMInfo.cpp | 2 +- src/xrpld/rpc/handlers/AccountObjects.cpp | 2 +- 165 files changed, 222 insertions(+), 222 deletions(-) rename include/xrpl/tx/transactors/{ => account}/DeleteAccount.h (100%) rename include/xrpl/tx/transactors/{ => account}/SetAccount.h (100%) rename include/xrpl/tx/transactors/{ => account}/SetRegularKey.h (100%) rename include/xrpl/tx/transactors/{ => account}/SetSignerList.h (100%) rename include/xrpl/tx/transactors/{ => bridge}/XChainBridge.h (100%) rename include/xrpl/tx/transactors/{Check => check}/CancelCheck.h (100%) rename include/xrpl/tx/transactors/{Check => check}/CashCheck.h (100%) rename include/xrpl/tx/transactors/{Check => check}/CreateCheck.h (100%) rename include/xrpl/tx/transactors/{ => credentials}/Credentials.h (100%) rename include/xrpl/tx/transactors/{Delegate => delegate}/DelegateSet.h (100%) rename include/xrpl/tx/transactors/{Delegate => delegate}/DelegateUtils.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMBid.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMClawback.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMContext.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMCreate.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMDelete.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMDeposit.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMHelpers.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMUtils.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMVote.h (100%) rename include/xrpl/tx/transactors/{AMM => dex}/AMMWithdraw.h (100%) rename include/xrpl/tx/transactors/{Offer => dex}/CancelOffer.h (100%) rename include/xrpl/tx/transactors/{Offer => dex}/CreateOffer.h (100%) rename include/xrpl/tx/transactors/{ => dex}/PermissionedDEXHelpers.h (100%) rename include/xrpl/tx/transactors/{ => did}/DID.h (100%) rename include/xrpl/tx/transactors/{ => escrow}/Escrow.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LendingHelpers.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverClawback.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverDeposit.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverWithdraw.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanBrokerDelete.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanBrokerSet.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanDelete.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanManage.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanPay.h (100%) rename include/xrpl/tx/transactors/{Lending => lending}/LoanSet.h (96%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenAcceptOffer.h (100%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenBurn.h (100%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenCancelOffer.h (100%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenCreateOffer.h (100%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenMint.h (94%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenModify.h (100%) rename include/xrpl/tx/transactors/{NFT => nft}/NFTokenUtils.h (100%) rename include/xrpl/tx/transactors/{ => oracle}/DeleteOracle.h (100%) rename include/xrpl/tx/transactors/{ => oracle}/SetOracle.h (100%) rename include/xrpl/tx/transactors/{ => payment}/DepositPreauth.h (100%) rename include/xrpl/tx/transactors/{ => payment}/Payment.h (100%) rename include/xrpl/tx/transactors/{ => payment_channel}/PayChan.h (100%) rename include/xrpl/tx/transactors/{PermissionedDomain => permissioned_domain}/PermissionedDomainDelete.h (100%) rename include/xrpl/tx/transactors/{PermissionedDomain => permissioned_domain}/PermissionedDomainSet.h (100%) rename include/xrpl/tx/transactors/{ => system}/Batch.h (100%) rename include/xrpl/tx/transactors/{ => system}/Change.h (100%) rename include/xrpl/tx/transactors/{ => system}/CreateTicket.h (100%) rename include/xrpl/tx/transactors/{ => system}/LedgerStateFix.h (100%) rename include/xrpl/tx/transactors/{ => token}/Clawback.h (100%) rename include/xrpl/tx/transactors/{MPT => token}/MPTokenAuthorize.h (100%) rename include/xrpl/tx/transactors/{MPT => token}/MPTokenIssuanceCreate.h (100%) rename include/xrpl/tx/transactors/{MPT => token}/MPTokenIssuanceDestroy.h (100%) rename include/xrpl/tx/transactors/{MPT => token}/MPTokenIssuanceSet.h (100%) rename include/xrpl/tx/transactors/{ => token}/SetTrust.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultClawback.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultCreate.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultDelete.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultDeposit.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultSet.h (100%) rename include/xrpl/tx/transactors/{Vault => vault}/VaultWithdraw.h (100%) rename src/libxrpl/tx/transactors/{ => account}/DeleteAccount.cpp (97%) rename src/libxrpl/tx/transactors/{ => account}/SetAccount.cpp (99%) rename src/libxrpl/tx/transactors/{ => account}/SetRegularKey.cpp (96%) rename src/libxrpl/tx/transactors/{ => account}/SetSignerList.cpp (99%) rename src/libxrpl/tx/transactors/{ => bridge}/XChainBridge.cpp (99%) rename src/libxrpl/tx/transactors/{Check => check}/CancelCheck.cpp (98%) rename src/libxrpl/tx/transactors/{Check => check}/CashCheck.cpp (99%) rename src/libxrpl/tx/transactors/{Check => check}/CreateCheck.cpp (99%) rename src/libxrpl/tx/transactors/{ => credentials}/Credentials.cpp (99%) rename src/libxrpl/tx/transactors/{Delegate => delegate}/DelegateSet.cpp (98%) rename src/libxrpl/tx/transactors/{Delegate => delegate}/DelegateUtils.cpp (95%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMBid.cpp (98%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMClawback.cpp (98%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMCreate.cpp (98%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMDelete.cpp (92%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMDeposit.cpp (99%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMHelpers.cpp (99%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMUtils.cpp (99%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMVote.cpp (98%) rename src/libxrpl/tx/transactors/{AMM => dex}/AMMWithdraw.cpp (99%) rename src/libxrpl/tx/transactors/{Offer => dex}/CancelOffer.cpp (96%) rename src/libxrpl/tx/transactors/{Offer => dex}/CreateOffer.cpp (99%) rename src/libxrpl/tx/transactors/{PermissionedDomain => dex}/PermissionedDEXHelpers.cpp (97%) rename src/libxrpl/tx/transactors/{ => did}/DID.cpp (99%) rename src/libxrpl/tx/transactors/{ => escrow}/Escrow.cpp (99%) rename src/libxrpl/tx/transactors/{Lending => lending}/LendingHelpers.cpp (99%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverClawback.cpp (98%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverDeposit.cpp (96%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanBrokerCoverWithdraw.cpp (96%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanBrokerDelete.cpp (97%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanBrokerSet.cpp (98%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanDelete.cpp (97%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanManage.cpp (99%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanPay.cpp (99%) rename src/libxrpl/tx/transactors/{Lending => lending}/LoanSet.cpp (99%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenAcceptOffer.cpp (99%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenBurn.cpp (96%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenCancelOffer.cpp (95%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenCreateOffer.cpp (94%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenMint.cpp (99%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenModify.cpp (93%) rename src/libxrpl/tx/transactors/{NFT => nft}/NFTokenUtils.cpp (99%) rename src/libxrpl/tx/transactors/{ => oracle}/DeleteOracle.cpp (97%) rename src/libxrpl/tx/transactors/{ => oracle}/SetOracle.cpp (99%) rename src/libxrpl/tx/transactors/{ => payment}/DepositPreauth.cpp (99%) rename src/libxrpl/tx/transactors/{ => payment}/Payment.cpp (99%) rename src/libxrpl/tx/transactors/{ => payment_channel}/PayChan.cpp (99%) rename src/libxrpl/tx/transactors/{PermissionedDomain => permissioned_domain}/PermissionedDomainDelete.cpp (95%) rename src/libxrpl/tx/transactors/{PermissionedDomain => permissioned_domain}/PermissionedDomainSet.cpp (98%) rename src/libxrpl/tx/transactors/{ => system}/Batch.cpp (99%) rename src/libxrpl/tx/transactors/{ => system}/Change.cpp (99%) rename src/libxrpl/tx/transactors/{ => system}/CreateTicket.cpp (98%) rename src/libxrpl/tx/transactors/{ => system}/LedgerStateFix.cpp (93%) rename src/libxrpl/tx/transactors/{ => token}/Clawback.cpp (99%) rename src/libxrpl/tx/transactors/{MPT => token}/MPTokenAuthorize.cpp (98%) rename src/libxrpl/tx/transactors/{MPT => token}/MPTokenIssuanceCreate.cpp (98%) rename src/libxrpl/tx/transactors/{MPT => token}/MPTokenIssuanceDestroy.cpp (95%) rename src/libxrpl/tx/transactors/{MPT => token}/MPTokenIssuanceSet.cpp (98%) rename src/libxrpl/tx/transactors/{ => token}/SetTrust.cpp (99%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultClawback.cpp (99%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultCreate.cpp (97%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultDelete.cpp (99%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultDeposit.cpp (98%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultSet.cpp (99%) rename src/libxrpl/tx/transactors/{Vault => vault}/VaultWithdraw.cpp (99%) diff --git a/include/xrpl/protocol/detail/transactions.macro b/include/xrpl/protocol/detail/transactions.macro index b696a1d1c2..08832acde7 100644 --- a/include/xrpl/protocol/detail/transactions.macro +++ b/include/xrpl/protocol/detail/transactions.macro @@ -22,7 +22,7 @@ /** This transaction type executes a payment. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttPAYMENT, 0, Payment, Delegation::delegable, @@ -42,7 +42,7 @@ TRANSACTION(ttPAYMENT, 0, Payment, /** This transaction type creates an escrow object. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttESCROW_CREATE, 1, EscrowCreate, Delegation::delegable, @@ -73,7 +73,7 @@ TRANSACTION(ttESCROW_FINISH, 2, EscrowFinish, /** This transaction type adjusts various account settings. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttACCOUNT_SET, 3, AccountSet, Delegation::notDelegable, @@ -94,7 +94,7 @@ TRANSACTION(ttACCOUNT_SET, 3, AccountSet, /** This transaction type cancels an existing escrow. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttESCROW_CANCEL, 4, EscrowCancel, Delegation::delegable, @@ -107,7 +107,7 @@ TRANSACTION(ttESCROW_CANCEL, 4, EscrowCancel, /** This transaction type sets or clears an account's "regular key". */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey, Delegation::notDelegable, @@ -121,7 +121,7 @@ TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey, /** This transaction type creates an offer to trade one asset for another. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttOFFER_CREATE, 7, OfferCreate, Delegation::delegable, @@ -137,7 +137,7 @@ TRANSACTION(ttOFFER_CREATE, 7, OfferCreate, /** This transaction type cancels existing offers to trade one asset for another. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttOFFER_CANCEL, 8, OfferCancel, Delegation::delegable, @@ -151,7 +151,7 @@ TRANSACTION(ttOFFER_CANCEL, 8, OfferCancel, /** This transaction type creates a new set of tickets. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttTICKET_CREATE, 10, TicketCreate, Delegation::delegable, @@ -167,7 +167,7 @@ TRANSACTION(ttTICKET_CREATE, 10, TicketCreate, // The SignerEntries are optional because a SignerList is deleted by // setting the SignerQuorum to zero and omitting SignerEntries. #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttSIGNER_LIST_SET, 12, SignerListSet, Delegation::notDelegable, @@ -180,7 +180,7 @@ TRANSACTION(ttSIGNER_LIST_SET, 12, SignerListSet, /** This transaction type creates a new unidirectional XRP payment channel. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttPAYCHAN_CREATE, 13, PaymentChannelCreate, Delegation::delegable, @@ -222,7 +222,7 @@ TRANSACTION(ttPAYCHAN_CLAIM, 15, PaymentChannelClaim, /** This transaction type creates a new check. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttCHECK_CREATE, 16, CheckCreate, Delegation::delegable, @@ -238,7 +238,7 @@ TRANSACTION(ttCHECK_CREATE, 16, CheckCreate, /** This transaction type cashes an existing check. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttCHECK_CASH, 17, CheckCash, Delegation::delegable, @@ -252,7 +252,7 @@ TRANSACTION(ttCHECK_CASH, 17, CheckCash, /** This transaction type cancels an existing check. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttCHECK_CANCEL, 18, CheckCancel, Delegation::delegable, @@ -264,7 +264,7 @@ TRANSACTION(ttCHECK_CANCEL, 18, CheckCancel, /** This transaction type grants or revokes authorization to transfer funds. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttDEPOSIT_PREAUTH, 19, DepositPreauth, Delegation::delegable, @@ -279,7 +279,7 @@ TRANSACTION(ttDEPOSIT_PREAUTH, 19, DepositPreauth, /** This transaction type modifies a trustline between two accounts. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttTRUST_SET, 20, TrustSet, Delegation::delegable, @@ -293,7 +293,7 @@ TRANSACTION(ttTRUST_SET, 20, TrustSet, /** This transaction type deletes an existing account. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete, Delegation::notDelegable, @@ -309,7 +309,7 @@ TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete, /** This transaction mints a new NFT. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint, Delegation::delegable, @@ -327,7 +327,7 @@ TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint, /** This transaction burns (i.e. destroys) an existing NFT. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn, Delegation::delegable, @@ -340,7 +340,7 @@ TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn, /** This transaction creates a new offer to buy or sell an NFT. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_CREATE_OFFER, 27, NFTokenCreateOffer, Delegation::delegable, @@ -356,7 +356,7 @@ TRANSACTION(ttNFTOKEN_CREATE_OFFER, 27, NFTokenCreateOffer, /** This transaction cancels an existing offer to buy or sell an existing NFT. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_CANCEL_OFFER, 28, NFTokenCancelOffer, Delegation::delegable, @@ -368,7 +368,7 @@ TRANSACTION(ttNFTOKEN_CANCEL_OFFER, 28, NFTokenCancelOffer, /** This transaction accepts an existing offer to buy or sell an existing NFT. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_ACCEPT_OFFER, 29, NFTokenAcceptOffer, Delegation::delegable, @@ -382,7 +382,7 @@ TRANSACTION(ttNFTOKEN_ACCEPT_OFFER, 29, NFTokenAcceptOffer, /** This transaction claws back issued tokens. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttCLAWBACK, 30, Clawback, Delegation::delegable, @@ -395,7 +395,7 @@ TRANSACTION(ttCLAWBACK, 30, Clawback, /** This transaction claws back tokens from an AMM pool. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback, Delegation::delegable, @@ -410,7 +410,7 @@ TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback, /** This transaction type creates an AMM instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_CREATE, 35, AMMCreate, Delegation::delegable, @@ -424,7 +424,7 @@ TRANSACTION(ttAMM_CREATE, 35, AMMCreate, /** This transaction type deposits into an AMM instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit, Delegation::delegable, @@ -442,7 +442,7 @@ TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit, /** This transaction type withdraws from an AMM instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw, Delegation::delegable, @@ -459,7 +459,7 @@ TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw, /** This transaction type votes for the trading fee */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_VOTE, 38, AMMVote, Delegation::delegable, @@ -473,7 +473,7 @@ TRANSACTION(ttAMM_VOTE, 38, AMMVote, /** This transaction type bids for the auction slot */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_BID, 39, AMMBid, Delegation::delegable, @@ -489,7 +489,7 @@ TRANSACTION(ttAMM_BID, 39, AMMBid, /** This transaction type deletes AMM in the empty state */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMM_DELETE, 40, AMMDelete, Delegation::delegable, @@ -502,7 +502,7 @@ TRANSACTION(ttAMM_DELETE, 40, AMMDelete, /** This transactions creates a crosschain sequence number */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttXCHAIN_CREATE_CLAIM_ID, 41, XChainCreateClaimID, Delegation::delegable, @@ -617,7 +617,7 @@ TRANSACTION(ttXCHAIN_CREATE_BRIDGE, 48, XChainCreateBridge, /** This transaction type creates or updates a DID */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttDID_SET, 49, DIDSet, Delegation::delegable, @@ -638,7 +638,7 @@ TRANSACTION(ttDID_DELETE, 50, DIDDelete, /** This transaction type creates an Oracle instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttORACLE_SET, 51, OracleSet, Delegation::delegable, @@ -655,7 +655,7 @@ TRANSACTION(ttORACLE_SET, 51, OracleSet, /** This transaction type deletes an Oracle instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttORACLE_DELETE, 52, OracleDelete, Delegation::delegable, @@ -667,7 +667,7 @@ TRANSACTION(ttORACLE_DELETE, 52, OracleDelete, /** This transaction type fixes a problem in the ledger state */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix, Delegation::delegable, @@ -680,7 +680,7 @@ TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix, /** This transaction type creates a MPTokensIssuance instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate, Delegation::delegable, @@ -697,7 +697,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate, /** This transaction type destroys a MPTokensIssuance instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy, Delegation::delegable, @@ -709,7 +709,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy, /** This transaction type sets flags on a MPTokensIssuance or MPToken instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet, Delegation::delegable, @@ -726,7 +726,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet, /** This transaction type authorizes a MPToken instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize, Delegation::delegable, @@ -739,7 +739,7 @@ TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize, /** This transaction type create an Credential instance */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttCREDENTIAL_CREATE, 58, CredentialCreate, Delegation::delegable, @@ -775,7 +775,7 @@ TRANSACTION(ttCREDENTIAL_DELETE, 60, CredentialDelete, /** This transaction type modify a NFToken */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttNFTOKEN_MODIFY, 61, NFTokenModify, Delegation::delegable, @@ -789,7 +789,7 @@ TRANSACTION(ttNFTOKEN_MODIFY, 61, NFTokenModify, /** This transaction type creates or modifies a Permissioned Domain */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttPERMISSIONED_DOMAIN_SET, 62, PermissionedDomainSet, Delegation::delegable, @@ -802,7 +802,7 @@ TRANSACTION(ttPERMISSIONED_DOMAIN_SET, 62, PermissionedDomainSet, /** This transaction type deletes a Permissioned Domain */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttPERMISSIONED_DOMAIN_DELETE, 63, PermissionedDomainDelete, Delegation::delegable, @@ -814,7 +814,7 @@ TRANSACTION(ttPERMISSIONED_DOMAIN_DELETE, 63, PermissionedDomainDelete, /** This transaction type delegates authorized account specified permissions */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttDELEGATE_SET, 64, DelegateSet, Delegation::notDelegable, @@ -827,7 +827,7 @@ TRANSACTION(ttDELEGATE_SET, 64, DelegateSet, /** This transaction creates a single asset vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_CREATE, 65, VaultCreate, Delegation::delegable, @@ -845,7 +845,7 @@ TRANSACTION(ttVAULT_CREATE, 65, VaultCreate, /** This transaction updates a single asset vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_SET, 66, VaultSet, Delegation::delegable, @@ -860,7 +860,7 @@ TRANSACTION(ttVAULT_SET, 66, VaultSet, /** This transaction deletes a single asset vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_DELETE, 67, VaultDelete, Delegation::delegable, @@ -872,7 +872,7 @@ TRANSACTION(ttVAULT_DELETE, 67, VaultDelete, /** This transaction trades assets for shares with a vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit, Delegation::delegable, @@ -885,7 +885,7 @@ TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit, /** This transaction trades shares for assets with a vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw, Delegation::delegable, @@ -900,7 +900,7 @@ TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw, /** This transaction claws back tokens from a vault. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback, Delegation::delegable, @@ -914,7 +914,7 @@ TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback, /** This transaction type batches together transactions. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttBATCH, 71, Batch, Delegation::notDelegable, @@ -929,7 +929,7 @@ TRANSACTION(ttBATCH, 71, Batch, /** This transaction creates and updates a Loan Broker */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet, Delegation::delegable, @@ -946,7 +946,7 @@ TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet, /** This transaction deletes a Loan Broker */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete, Delegation::delegable, @@ -957,7 +957,7 @@ TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete, /** This transaction deposits First Loss Capital into a Loan Broker */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_BROKER_COVER_DEPOSIT, 76, LoanBrokerCoverDeposit, Delegation::delegable, @@ -969,7 +969,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_DEPOSIT, 76, LoanBrokerCoverDeposit, /** This transaction withdraws First Loss Capital from a Loan Broker */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw, Delegation::delegable, @@ -984,7 +984,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw, /** This transaction claws back First Loss Capital from a Loan Broker to the issuer of the capital */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_BROKER_COVER_CLAWBACK, 78, LoanBrokerCoverClawback, Delegation::delegable, @@ -996,7 +996,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_CLAWBACK, 78, LoanBrokerCoverClawback, /** This transaction creates a Loan */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_SET, 80, LoanSet, Delegation::delegable, @@ -1023,7 +1023,7 @@ TRANSACTION(ttLOAN_SET, 80, LoanSet, /** This transaction deletes an existing Loan */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_DELETE, 81, LoanDelete, Delegation::delegable, @@ -1034,7 +1034,7 @@ TRANSACTION(ttLOAN_DELETE, 81, LoanDelete, /** This transaction is used to change the delinquency status of an existing Loan */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_MANAGE, 82, LoanManage, Delegation::delegable, @@ -1048,7 +1048,7 @@ TRANSACTION(ttLOAN_MANAGE, 82, LoanManage, /** The Borrower uses this transaction to make a Payment on the Loan. */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttLOAN_PAY, 84, LoanPay, Delegation::delegable, @@ -1063,7 +1063,7 @@ TRANSACTION(ttLOAN_PAY, 84, LoanPay, For details, see: https://xrpl.org/amendments.html */ #if TRANSACTION_INCLUDE -# include +# include #endif TRANSACTION(ttAMENDMENT, 100, EnableAmendment, Delegation::notDelegable, diff --git a/include/xrpl/tx/paths/detail/StrandFlow.h b/include/xrpl/tx/paths/detail/StrandFlow.h index 929aca0663..67e333f2e6 100644 --- a/include/xrpl/tx/paths/detail/StrandFlow.h +++ b/include/xrpl/tx/paths/detail/StrandFlow.h @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include diff --git a/include/xrpl/tx/transactors/DeleteAccount.h b/include/xrpl/tx/transactors/account/DeleteAccount.h similarity index 100% rename from include/xrpl/tx/transactors/DeleteAccount.h rename to include/xrpl/tx/transactors/account/DeleteAccount.h diff --git a/include/xrpl/tx/transactors/SetAccount.h b/include/xrpl/tx/transactors/account/SetAccount.h similarity index 100% rename from include/xrpl/tx/transactors/SetAccount.h rename to include/xrpl/tx/transactors/account/SetAccount.h diff --git a/include/xrpl/tx/transactors/SetRegularKey.h b/include/xrpl/tx/transactors/account/SetRegularKey.h similarity index 100% rename from include/xrpl/tx/transactors/SetRegularKey.h rename to include/xrpl/tx/transactors/account/SetRegularKey.h diff --git a/include/xrpl/tx/transactors/SetSignerList.h b/include/xrpl/tx/transactors/account/SetSignerList.h similarity index 100% rename from include/xrpl/tx/transactors/SetSignerList.h rename to include/xrpl/tx/transactors/account/SetSignerList.h diff --git a/include/xrpl/tx/transactors/XChainBridge.h b/include/xrpl/tx/transactors/bridge/XChainBridge.h similarity index 100% rename from include/xrpl/tx/transactors/XChainBridge.h rename to include/xrpl/tx/transactors/bridge/XChainBridge.h diff --git a/include/xrpl/tx/transactors/Check/CancelCheck.h b/include/xrpl/tx/transactors/check/CancelCheck.h similarity index 100% rename from include/xrpl/tx/transactors/Check/CancelCheck.h rename to include/xrpl/tx/transactors/check/CancelCheck.h diff --git a/include/xrpl/tx/transactors/Check/CashCheck.h b/include/xrpl/tx/transactors/check/CashCheck.h similarity index 100% rename from include/xrpl/tx/transactors/Check/CashCheck.h rename to include/xrpl/tx/transactors/check/CashCheck.h diff --git a/include/xrpl/tx/transactors/Check/CreateCheck.h b/include/xrpl/tx/transactors/check/CreateCheck.h similarity index 100% rename from include/xrpl/tx/transactors/Check/CreateCheck.h rename to include/xrpl/tx/transactors/check/CreateCheck.h diff --git a/include/xrpl/tx/transactors/Credentials.h b/include/xrpl/tx/transactors/credentials/Credentials.h similarity index 100% rename from include/xrpl/tx/transactors/Credentials.h rename to include/xrpl/tx/transactors/credentials/Credentials.h diff --git a/include/xrpl/tx/transactors/Delegate/DelegateSet.h b/include/xrpl/tx/transactors/delegate/DelegateSet.h similarity index 100% rename from include/xrpl/tx/transactors/Delegate/DelegateSet.h rename to include/xrpl/tx/transactors/delegate/DelegateSet.h diff --git a/include/xrpl/tx/transactors/Delegate/DelegateUtils.h b/include/xrpl/tx/transactors/delegate/DelegateUtils.h similarity index 100% rename from include/xrpl/tx/transactors/Delegate/DelegateUtils.h rename to include/xrpl/tx/transactors/delegate/DelegateUtils.h diff --git a/include/xrpl/tx/transactors/AMM/AMMBid.h b/include/xrpl/tx/transactors/dex/AMMBid.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMBid.h rename to include/xrpl/tx/transactors/dex/AMMBid.h diff --git a/include/xrpl/tx/transactors/AMM/AMMClawback.h b/include/xrpl/tx/transactors/dex/AMMClawback.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMClawback.h rename to include/xrpl/tx/transactors/dex/AMMClawback.h diff --git a/include/xrpl/tx/transactors/AMM/AMMContext.h b/include/xrpl/tx/transactors/dex/AMMContext.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMContext.h rename to include/xrpl/tx/transactors/dex/AMMContext.h diff --git a/include/xrpl/tx/transactors/AMM/AMMCreate.h b/include/xrpl/tx/transactors/dex/AMMCreate.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMCreate.h rename to include/xrpl/tx/transactors/dex/AMMCreate.h diff --git a/include/xrpl/tx/transactors/AMM/AMMDelete.h b/include/xrpl/tx/transactors/dex/AMMDelete.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMDelete.h rename to include/xrpl/tx/transactors/dex/AMMDelete.h diff --git a/include/xrpl/tx/transactors/AMM/AMMDeposit.h b/include/xrpl/tx/transactors/dex/AMMDeposit.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMDeposit.h rename to include/xrpl/tx/transactors/dex/AMMDeposit.h diff --git a/include/xrpl/tx/transactors/AMM/AMMHelpers.h b/include/xrpl/tx/transactors/dex/AMMHelpers.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMHelpers.h rename to include/xrpl/tx/transactors/dex/AMMHelpers.h diff --git a/include/xrpl/tx/transactors/AMM/AMMUtils.h b/include/xrpl/tx/transactors/dex/AMMUtils.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMUtils.h rename to include/xrpl/tx/transactors/dex/AMMUtils.h diff --git a/include/xrpl/tx/transactors/AMM/AMMVote.h b/include/xrpl/tx/transactors/dex/AMMVote.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMVote.h rename to include/xrpl/tx/transactors/dex/AMMVote.h diff --git a/include/xrpl/tx/transactors/AMM/AMMWithdraw.h b/include/xrpl/tx/transactors/dex/AMMWithdraw.h similarity index 100% rename from include/xrpl/tx/transactors/AMM/AMMWithdraw.h rename to include/xrpl/tx/transactors/dex/AMMWithdraw.h diff --git a/include/xrpl/tx/transactors/Offer/CancelOffer.h b/include/xrpl/tx/transactors/dex/CancelOffer.h similarity index 100% rename from include/xrpl/tx/transactors/Offer/CancelOffer.h rename to include/xrpl/tx/transactors/dex/CancelOffer.h diff --git a/include/xrpl/tx/transactors/Offer/CreateOffer.h b/include/xrpl/tx/transactors/dex/CreateOffer.h similarity index 100% rename from include/xrpl/tx/transactors/Offer/CreateOffer.h rename to include/xrpl/tx/transactors/dex/CreateOffer.h diff --git a/include/xrpl/tx/transactors/PermissionedDEXHelpers.h b/include/xrpl/tx/transactors/dex/PermissionedDEXHelpers.h similarity index 100% rename from include/xrpl/tx/transactors/PermissionedDEXHelpers.h rename to include/xrpl/tx/transactors/dex/PermissionedDEXHelpers.h diff --git a/include/xrpl/tx/transactors/DID.h b/include/xrpl/tx/transactors/did/DID.h similarity index 100% rename from include/xrpl/tx/transactors/DID.h rename to include/xrpl/tx/transactors/did/DID.h diff --git a/include/xrpl/tx/transactors/Escrow.h b/include/xrpl/tx/transactors/escrow/Escrow.h similarity index 100% rename from include/xrpl/tx/transactors/Escrow.h rename to include/xrpl/tx/transactors/escrow/Escrow.h diff --git a/include/xrpl/tx/transactors/Lending/LendingHelpers.h b/include/xrpl/tx/transactors/lending/LendingHelpers.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LendingHelpers.h rename to include/xrpl/tx/transactors/lending/LendingHelpers.h diff --git a/include/xrpl/tx/transactors/Lending/LoanBrokerCoverClawback.h b/include/xrpl/tx/transactors/lending/LoanBrokerCoverClawback.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanBrokerCoverClawback.h rename to include/xrpl/tx/transactors/lending/LoanBrokerCoverClawback.h diff --git a/include/xrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.h b/include/xrpl/tx/transactors/lending/LoanBrokerCoverDeposit.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.h rename to include/xrpl/tx/transactors/lending/LoanBrokerCoverDeposit.h diff --git a/include/xrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.h b/include/xrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.h rename to include/xrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.h diff --git a/include/xrpl/tx/transactors/Lending/LoanBrokerDelete.h b/include/xrpl/tx/transactors/lending/LoanBrokerDelete.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanBrokerDelete.h rename to include/xrpl/tx/transactors/lending/LoanBrokerDelete.h diff --git a/include/xrpl/tx/transactors/Lending/LoanBrokerSet.h b/include/xrpl/tx/transactors/lending/LoanBrokerSet.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanBrokerSet.h rename to include/xrpl/tx/transactors/lending/LoanBrokerSet.h diff --git a/include/xrpl/tx/transactors/Lending/LoanDelete.h b/include/xrpl/tx/transactors/lending/LoanDelete.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanDelete.h rename to include/xrpl/tx/transactors/lending/LoanDelete.h diff --git a/include/xrpl/tx/transactors/Lending/LoanManage.h b/include/xrpl/tx/transactors/lending/LoanManage.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanManage.h rename to include/xrpl/tx/transactors/lending/LoanManage.h diff --git a/include/xrpl/tx/transactors/Lending/LoanPay.h b/include/xrpl/tx/transactors/lending/LoanPay.h similarity index 100% rename from include/xrpl/tx/transactors/Lending/LoanPay.h rename to include/xrpl/tx/transactors/lending/LoanPay.h diff --git a/include/xrpl/tx/transactors/Lending/LoanSet.h b/include/xrpl/tx/transactors/lending/LoanSet.h similarity index 96% rename from include/xrpl/tx/transactors/Lending/LoanSet.h rename to include/xrpl/tx/transactors/lending/LoanSet.h index e9916b9d6b..86101d0735 100644 --- a/include/xrpl/tx/transactors/Lending/LoanSet.h +++ b/include/xrpl/tx/transactors/lending/LoanSet.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include namespace xrpl { diff --git a/include/xrpl/tx/transactors/NFT/NFTokenAcceptOffer.h b/include/xrpl/tx/transactors/nft/NFTokenAcceptOffer.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenAcceptOffer.h rename to include/xrpl/tx/transactors/nft/NFTokenAcceptOffer.h diff --git a/include/xrpl/tx/transactors/NFT/NFTokenBurn.h b/include/xrpl/tx/transactors/nft/NFTokenBurn.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenBurn.h rename to include/xrpl/tx/transactors/nft/NFTokenBurn.h diff --git a/include/xrpl/tx/transactors/NFT/NFTokenCancelOffer.h b/include/xrpl/tx/transactors/nft/NFTokenCancelOffer.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenCancelOffer.h rename to include/xrpl/tx/transactors/nft/NFTokenCancelOffer.h diff --git a/include/xrpl/tx/transactors/NFT/NFTokenCreateOffer.h b/include/xrpl/tx/transactors/nft/NFTokenCreateOffer.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenCreateOffer.h rename to include/xrpl/tx/transactors/nft/NFTokenCreateOffer.h diff --git a/include/xrpl/tx/transactors/NFT/NFTokenMint.h b/include/xrpl/tx/transactors/nft/NFTokenMint.h similarity index 94% rename from include/xrpl/tx/transactors/NFT/NFTokenMint.h rename to include/xrpl/tx/transactors/nft/NFTokenMint.h index c3a7db4581..d4eeba2bf0 100644 --- a/include/xrpl/tx/transactors/NFT/NFTokenMint.h +++ b/include/xrpl/tx/transactors/nft/NFTokenMint.h @@ -2,7 +2,7 @@ #include #include -#include +#include namespace xrpl { diff --git a/include/xrpl/tx/transactors/NFT/NFTokenModify.h b/include/xrpl/tx/transactors/nft/NFTokenModify.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenModify.h rename to include/xrpl/tx/transactors/nft/NFTokenModify.h diff --git a/include/xrpl/tx/transactors/NFT/NFTokenUtils.h b/include/xrpl/tx/transactors/nft/NFTokenUtils.h similarity index 100% rename from include/xrpl/tx/transactors/NFT/NFTokenUtils.h rename to include/xrpl/tx/transactors/nft/NFTokenUtils.h diff --git a/include/xrpl/tx/transactors/DeleteOracle.h b/include/xrpl/tx/transactors/oracle/DeleteOracle.h similarity index 100% rename from include/xrpl/tx/transactors/DeleteOracle.h rename to include/xrpl/tx/transactors/oracle/DeleteOracle.h diff --git a/include/xrpl/tx/transactors/SetOracle.h b/include/xrpl/tx/transactors/oracle/SetOracle.h similarity index 100% rename from include/xrpl/tx/transactors/SetOracle.h rename to include/xrpl/tx/transactors/oracle/SetOracle.h diff --git a/include/xrpl/tx/transactors/DepositPreauth.h b/include/xrpl/tx/transactors/payment/DepositPreauth.h similarity index 100% rename from include/xrpl/tx/transactors/DepositPreauth.h rename to include/xrpl/tx/transactors/payment/DepositPreauth.h diff --git a/include/xrpl/tx/transactors/Payment.h b/include/xrpl/tx/transactors/payment/Payment.h similarity index 100% rename from include/xrpl/tx/transactors/Payment.h rename to include/xrpl/tx/transactors/payment/Payment.h diff --git a/include/xrpl/tx/transactors/PayChan.h b/include/xrpl/tx/transactors/payment_channel/PayChan.h similarity index 100% rename from include/xrpl/tx/transactors/PayChan.h rename to include/xrpl/tx/transactors/payment_channel/PayChan.h diff --git a/include/xrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.h b/include/xrpl/tx/transactors/permissioned_domain/PermissionedDomainDelete.h similarity index 100% rename from include/xrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.h rename to include/xrpl/tx/transactors/permissioned_domain/PermissionedDomainDelete.h diff --git a/include/xrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.h b/include/xrpl/tx/transactors/permissioned_domain/PermissionedDomainSet.h similarity index 100% rename from include/xrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.h rename to include/xrpl/tx/transactors/permissioned_domain/PermissionedDomainSet.h diff --git a/include/xrpl/tx/transactors/Batch.h b/include/xrpl/tx/transactors/system/Batch.h similarity index 100% rename from include/xrpl/tx/transactors/Batch.h rename to include/xrpl/tx/transactors/system/Batch.h diff --git a/include/xrpl/tx/transactors/Change.h b/include/xrpl/tx/transactors/system/Change.h similarity index 100% rename from include/xrpl/tx/transactors/Change.h rename to include/xrpl/tx/transactors/system/Change.h diff --git a/include/xrpl/tx/transactors/CreateTicket.h b/include/xrpl/tx/transactors/system/CreateTicket.h similarity index 100% rename from include/xrpl/tx/transactors/CreateTicket.h rename to include/xrpl/tx/transactors/system/CreateTicket.h diff --git a/include/xrpl/tx/transactors/LedgerStateFix.h b/include/xrpl/tx/transactors/system/LedgerStateFix.h similarity index 100% rename from include/xrpl/tx/transactors/LedgerStateFix.h rename to include/xrpl/tx/transactors/system/LedgerStateFix.h diff --git a/include/xrpl/tx/transactors/Clawback.h b/include/xrpl/tx/transactors/token/Clawback.h similarity index 100% rename from include/xrpl/tx/transactors/Clawback.h rename to include/xrpl/tx/transactors/token/Clawback.h diff --git a/include/xrpl/tx/transactors/MPT/MPTokenAuthorize.h b/include/xrpl/tx/transactors/token/MPTokenAuthorize.h similarity index 100% rename from include/xrpl/tx/transactors/MPT/MPTokenAuthorize.h rename to include/xrpl/tx/transactors/token/MPTokenAuthorize.h diff --git a/include/xrpl/tx/transactors/MPT/MPTokenIssuanceCreate.h b/include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h similarity index 100% rename from include/xrpl/tx/transactors/MPT/MPTokenIssuanceCreate.h rename to include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h diff --git a/include/xrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.h b/include/xrpl/tx/transactors/token/MPTokenIssuanceDestroy.h similarity index 100% rename from include/xrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.h rename to include/xrpl/tx/transactors/token/MPTokenIssuanceDestroy.h diff --git a/include/xrpl/tx/transactors/MPT/MPTokenIssuanceSet.h b/include/xrpl/tx/transactors/token/MPTokenIssuanceSet.h similarity index 100% rename from include/xrpl/tx/transactors/MPT/MPTokenIssuanceSet.h rename to include/xrpl/tx/transactors/token/MPTokenIssuanceSet.h diff --git a/include/xrpl/tx/transactors/SetTrust.h b/include/xrpl/tx/transactors/token/SetTrust.h similarity index 100% rename from include/xrpl/tx/transactors/SetTrust.h rename to include/xrpl/tx/transactors/token/SetTrust.h diff --git a/include/xrpl/tx/transactors/Vault/VaultClawback.h b/include/xrpl/tx/transactors/vault/VaultClawback.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultClawback.h rename to include/xrpl/tx/transactors/vault/VaultClawback.h diff --git a/include/xrpl/tx/transactors/Vault/VaultCreate.h b/include/xrpl/tx/transactors/vault/VaultCreate.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultCreate.h rename to include/xrpl/tx/transactors/vault/VaultCreate.h diff --git a/include/xrpl/tx/transactors/Vault/VaultDelete.h b/include/xrpl/tx/transactors/vault/VaultDelete.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultDelete.h rename to include/xrpl/tx/transactors/vault/VaultDelete.h diff --git a/include/xrpl/tx/transactors/Vault/VaultDeposit.h b/include/xrpl/tx/transactors/vault/VaultDeposit.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultDeposit.h rename to include/xrpl/tx/transactors/vault/VaultDeposit.h diff --git a/include/xrpl/tx/transactors/Vault/VaultSet.h b/include/xrpl/tx/transactors/vault/VaultSet.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultSet.h rename to include/xrpl/tx/transactors/vault/VaultSet.h diff --git a/include/xrpl/tx/transactors/Vault/VaultWithdraw.h b/include/xrpl/tx/transactors/vault/VaultWithdraw.h similarity index 100% rename from include/xrpl/tx/transactors/Vault/VaultWithdraw.h rename to include/xrpl/tx/transactors/vault/VaultWithdraw.h diff --git a/src/libxrpl/tx/Transactor.cpp b/src/libxrpl/tx/Transactor.cpp index 9da1028b3a..3ddac350e8 100644 --- a/src/libxrpl/tx/Transactor.cpp +++ b/src/libxrpl/tx/Transactor.cpp @@ -14,8 +14,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/invariants/AMMInvariant.cpp b/src/libxrpl/tx/invariants/AMMInvariant.cpp index d98c0a6f50..60d05f298c 100644 --- a/src/libxrpl/tx/invariants/AMMInvariant.cpp +++ b/src/libxrpl/tx/invariants/AMMInvariant.cpp @@ -3,8 +3,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/invariants/NFTInvariant.cpp b/src/libxrpl/tx/invariants/NFTInvariant.cpp index db06896023..67f1e51231 100644 --- a/src/libxrpl/tx/invariants/NFTInvariant.cpp +++ b/src/libxrpl/tx/invariants/NFTInvariant.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/paths/Flow.cpp b/src/libxrpl/tx/paths/Flow.cpp index 2178997049..3e9adca814 100644 --- a/src/libxrpl/tx/paths/Flow.cpp +++ b/src/libxrpl/tx/paths/Flow.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/paths/OfferStream.cpp b/src/libxrpl/tx/paths/OfferStream.cpp index 9d2a94e3a8..596ae36b96 100644 --- a/src/libxrpl/tx/paths/OfferStream.cpp +++ b/src/libxrpl/tx/paths/OfferStream.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/DeleteAccount.cpp b/src/libxrpl/tx/transactors/account/DeleteAccount.cpp similarity index 97% rename from src/libxrpl/tx/transactors/DeleteAccount.cpp rename to src/libxrpl/tx/transactors/account/DeleteAccount.cpp index 79ce03ca9a..a9f7dbe674 100644 --- a/src/libxrpl/tx/transactors/DeleteAccount.cpp +++ b/src/libxrpl/tx/transactors/account/DeleteAccount.cpp @@ -8,13 +8,13 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/SetAccount.cpp b/src/libxrpl/tx/transactors/account/SetAccount.cpp similarity index 99% rename from src/libxrpl/tx/transactors/SetAccount.cpp rename to src/libxrpl/tx/transactors/account/SetAccount.cpp index 64b52d12d5..32eb2afbb8 100644 --- a/src/libxrpl/tx/transactors/SetAccount.cpp +++ b/src/libxrpl/tx/transactors/account/SetAccount.cpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/SetRegularKey.cpp b/src/libxrpl/tx/transactors/account/SetRegularKey.cpp similarity index 96% rename from src/libxrpl/tx/transactors/SetRegularKey.cpp rename to src/libxrpl/tx/transactors/account/SetRegularKey.cpp index e26e6b1bd5..08175b196f 100644 --- a/src/libxrpl/tx/transactors/SetRegularKey.cpp +++ b/src/libxrpl/tx/transactors/account/SetRegularKey.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/SetSignerList.cpp b/src/libxrpl/tx/transactors/account/SetSignerList.cpp similarity index 99% rename from src/libxrpl/tx/transactors/SetSignerList.cpp rename to src/libxrpl/tx/transactors/account/SetSignerList.cpp index 858fb33bff..d5b41c6acf 100644 --- a/src/libxrpl/tx/transactors/SetSignerList.cpp +++ b/src/libxrpl/tx/transactors/account/SetSignerList.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/libxrpl/tx/transactors/XChainBridge.cpp b/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp similarity index 99% rename from src/libxrpl/tx/transactors/XChainBridge.cpp rename to src/libxrpl/tx/transactors/bridge/XChainBridge.cpp index 44a1974f93..9c18630b61 100644 --- a/src/libxrpl/tx/transactors/XChainBridge.cpp +++ b/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/libxrpl/tx/transactors/Check/CancelCheck.cpp b/src/libxrpl/tx/transactors/check/CancelCheck.cpp similarity index 98% rename from src/libxrpl/tx/transactors/Check/CancelCheck.cpp rename to src/libxrpl/tx/transactors/check/CancelCheck.cpp index c9a947ae6a..645327a4c5 100644 --- a/src/libxrpl/tx/transactors/Check/CancelCheck.cpp +++ b/src/libxrpl/tx/transactors/check/CancelCheck.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Check/CashCheck.cpp b/src/libxrpl/tx/transactors/check/CashCheck.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Check/CashCheck.cpp rename to src/libxrpl/tx/transactors/check/CashCheck.cpp index c459ef9b67..1628b284a9 100644 --- a/src/libxrpl/tx/transactors/Check/CashCheck.cpp +++ b/src/libxrpl/tx/transactors/check/CashCheck.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/Check/CreateCheck.cpp b/src/libxrpl/tx/transactors/check/CreateCheck.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Check/CreateCheck.cpp rename to src/libxrpl/tx/transactors/check/CreateCheck.cpp index 7ec4746d20..9e883e7fbb 100644 --- a/src/libxrpl/tx/transactors/Check/CreateCheck.cpp +++ b/src/libxrpl/tx/transactors/check/CreateCheck.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Credentials.cpp b/src/libxrpl/tx/transactors/credentials/Credentials.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Credentials.cpp rename to src/libxrpl/tx/transactors/credentials/Credentials.cpp index ce95d8144c..079b75a9fe 100644 --- a/src/libxrpl/tx/transactors/Credentials.cpp +++ b/src/libxrpl/tx/transactors/credentials/Credentials.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/Delegate/DelegateSet.cpp b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp similarity index 98% rename from src/libxrpl/tx/transactors/Delegate/DelegateSet.cpp rename to src/libxrpl/tx/transactors/delegate/DelegateSet.cpp index 69ec707dd2..afb84c1c1e 100644 --- a/src/libxrpl/tx/transactors/Delegate/DelegateSet.cpp +++ b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Delegate/DelegateUtils.cpp b/src/libxrpl/tx/transactors/delegate/DelegateUtils.cpp similarity index 95% rename from src/libxrpl/tx/transactors/Delegate/DelegateUtils.cpp rename to src/libxrpl/tx/transactors/delegate/DelegateUtils.cpp index eceb73503f..d9d74a1212 100644 --- a/src/libxrpl/tx/transactors/Delegate/DelegateUtils.cpp +++ b/src/libxrpl/tx/transactors/delegate/DelegateUtils.cpp @@ -1,5 +1,5 @@ #include -#include +#include namespace xrpl { NotTEC diff --git a/src/libxrpl/tx/transactors/AMM/AMMBid.cpp b/src/libxrpl/tx/transactors/dex/AMMBid.cpp similarity index 98% rename from src/libxrpl/tx/transactors/AMM/AMMBid.cpp rename to src/libxrpl/tx/transactors/dex/AMMBid.cpp index 8ba7970472..d73e65ec3a 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMBid.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMBid.cpp @@ -4,9 +4,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMClawback.cpp b/src/libxrpl/tx/transactors/dex/AMMClawback.cpp similarity index 98% rename from src/libxrpl/tx/transactors/AMM/AMMClawback.cpp rename to src/libxrpl/tx/transactors/dex/AMMClawback.cpp index c9ea1e44eb..168583ff69 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMClawback.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMClawback.cpp @@ -4,10 +4,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/src/libxrpl/tx/transactors/AMM/AMMCreate.cpp b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp similarity index 98% rename from src/libxrpl/tx/transactors/AMM/AMMCreate.cpp rename to src/libxrpl/tx/transactors/dex/AMMCreate.cpp index 53933df629..1c5b2bae6f 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMCreate.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp @@ -5,9 +5,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMDelete.cpp b/src/libxrpl/tx/transactors/dex/AMMDelete.cpp similarity index 92% rename from src/libxrpl/tx/transactors/AMM/AMMDelete.cpp rename to src/libxrpl/tx/transactors/dex/AMMDelete.cpp index 39b7c9a11b..da0ea4cb80 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMDelete.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMDelete.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMDeposit.cpp b/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp similarity index 99% rename from src/libxrpl/tx/transactors/AMM/AMMDeposit.cpp rename to src/libxrpl/tx/transactors/dex/AMMDeposit.cpp index dad1bc536a..4edd199134 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMDeposit.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp @@ -3,9 +3,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMHelpers.cpp b/src/libxrpl/tx/transactors/dex/AMMHelpers.cpp similarity index 99% rename from src/libxrpl/tx/transactors/AMM/AMMHelpers.cpp rename to src/libxrpl/tx/transactors/dex/AMMHelpers.cpp index 5d5af6da03..c232f82543 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMHelpers.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMHelpers.cpp @@ -1,4 +1,4 @@ -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMUtils.cpp b/src/libxrpl/tx/transactors/dex/AMMUtils.cpp similarity index 99% rename from src/libxrpl/tx/transactors/AMM/AMMUtils.cpp rename to src/libxrpl/tx/transactors/dex/AMMUtils.cpp index 55d71ced4f..ce44c9ffd6 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMUtils.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMUtils.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMVote.cpp b/src/libxrpl/tx/transactors/dex/AMMVote.cpp similarity index 98% rename from src/libxrpl/tx/transactors/AMM/AMMVote.cpp rename to src/libxrpl/tx/transactors/dex/AMMVote.cpp index 549d9705b5..d784b67f88 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMVote.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMVote.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/AMM/AMMWithdraw.cpp b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp similarity index 99% rename from src/libxrpl/tx/transactors/AMM/AMMWithdraw.cpp rename to src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp index f58dbaefc6..cf35de321d 100644 --- a/src/libxrpl/tx/transactors/AMM/AMMWithdraw.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp @@ -2,9 +2,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Offer/CancelOffer.cpp b/src/libxrpl/tx/transactors/dex/CancelOffer.cpp similarity index 96% rename from src/libxrpl/tx/transactors/Offer/CancelOffer.cpp rename to src/libxrpl/tx/transactors/dex/CancelOffer.cpp index 3e5d2441e1..2549fd327e 100644 --- a/src/libxrpl/tx/transactors/Offer/CancelOffer.cpp +++ b/src/libxrpl/tx/transactors/dex/CancelOffer.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Offer/CreateOffer.cpp b/src/libxrpl/tx/transactors/dex/CreateOffer.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Offer/CreateOffer.cpp rename to src/libxrpl/tx/transactors/dex/CreateOffer.cpp index 9516926693..515b72eae9 100644 --- a/src/libxrpl/tx/transactors/Offer/CreateOffer.cpp +++ b/src/libxrpl/tx/transactors/dex/CreateOffer.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { TxConsequences diff --git a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDEXHelpers.cpp b/src/libxrpl/tx/transactors/dex/PermissionedDEXHelpers.cpp similarity index 97% rename from src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDEXHelpers.cpp rename to src/libxrpl/tx/transactors/dex/PermissionedDEXHelpers.cpp index 7a4fa62078..37db2d632f 100644 --- a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDEXHelpers.cpp +++ b/src/libxrpl/tx/transactors/dex/PermissionedDEXHelpers.cpp @@ -1,5 +1,5 @@ #include -#include +#include namespace xrpl { namespace permissioned_dex { diff --git a/src/libxrpl/tx/transactors/DID.cpp b/src/libxrpl/tx/transactors/did/DID.cpp similarity index 99% rename from src/libxrpl/tx/transactors/DID.cpp rename to src/libxrpl/tx/transactors/did/DID.cpp index ade60221df..080a031c79 100644 --- a/src/libxrpl/tx/transactors/DID.cpp +++ b/src/libxrpl/tx/transactors/did/DID.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Escrow.cpp b/src/libxrpl/tx/transactors/escrow/Escrow.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Escrow.cpp rename to src/libxrpl/tx/transactors/escrow/Escrow.cpp index 8ea2de24d9..3d7d408af7 100644 --- a/src/libxrpl/tx/transactors/Escrow.cpp +++ b/src/libxrpl/tx/transactors/escrow/Escrow.cpp @@ -11,8 +11,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LendingHelpers.cpp b/src/libxrpl/tx/transactors/lending/LendingHelpers.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Lending/LendingHelpers.cpp rename to src/libxrpl/tx/transactors/lending/LendingHelpers.cpp index b0626b4650..d7162bbb0e 100644 --- a/src/libxrpl/tx/transactors/Lending/LendingHelpers.cpp +++ b/src/libxrpl/tx/transactors/lending/LendingHelpers.cpp @@ -1,6 +1,6 @@ -#include +#include // DO NOT REMOVE forces header file include to sort first -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverClawback.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp similarity index 98% rename from src/libxrpl/tx/transactors/Lending/LoanBrokerCoverClawback.cpp rename to src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp index 870af54f94..8513ae5999 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverClawback.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp @@ -1,7 +1,7 @@ -#include +#include // #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp similarity index 96% rename from src/libxrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.cpp rename to src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp index d112959fea..83f7d2d1c6 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp @@ -1,7 +1,7 @@ -#include +#include // #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp similarity index 96% rename from src/libxrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.cpp rename to src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp index 43ff3659ef..9140a0dc23 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp @@ -1,9 +1,9 @@ -#include +#include // #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanBrokerDelete.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp similarity index 97% rename from src/libxrpl/tx/transactors/Lending/LoanBrokerDelete.cpp rename to src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp index 989c26d024..85026654da 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanBrokerDelete.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp @@ -1,7 +1,7 @@ -#include +#include // #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanBrokerSet.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp similarity index 98% rename from src/libxrpl/tx/transactors/Lending/LoanBrokerSet.cpp rename to src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp index 1ede32dc23..c825a7fafe 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanBrokerSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp @@ -1,7 +1,7 @@ -#include +#include // #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanDelete.cpp b/src/libxrpl/tx/transactors/lending/LoanDelete.cpp similarity index 97% rename from src/libxrpl/tx/transactors/Lending/LoanDelete.cpp rename to src/libxrpl/tx/transactors/lending/LoanDelete.cpp index fa3ccba7da..e7d219d6c8 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanDelete.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanDelete.cpp @@ -1,7 +1,7 @@ -#include +#include // #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanManage.cpp b/src/libxrpl/tx/transactors/lending/LoanManage.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Lending/LoanManage.cpp rename to src/libxrpl/tx/transactors/lending/LoanManage.cpp index c066c4b3a9..2dacb453b5 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanManage.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanManage.cpp @@ -1,8 +1,8 @@ -#include +#include // #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Lending/LoanPay.cpp b/src/libxrpl/tx/transactors/lending/LoanPay.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Lending/LoanPay.cpp rename to src/libxrpl/tx/transactors/lending/LoanPay.cpp index 6b1f2acf7c..d894c56631 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanPay.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanPay.cpp @@ -1,11 +1,11 @@ -#include +#include // #include #include #include #include -#include -#include +#include +#include #include diff --git a/src/libxrpl/tx/transactors/Lending/LoanSet.cpp b/src/libxrpl/tx/transactors/lending/LoanSet.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Lending/LoanSet.cpp rename to src/libxrpl/tx/transactors/lending/LoanSet.cpp index 5e45bd5a9a..f74522e737 100644 --- a/src/libxrpl/tx/transactors/Lending/LoanSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanSet.cpp @@ -1,8 +1,8 @@ -#include +#include // #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenAcceptOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp similarity index 99% rename from src/libxrpl/tx/transactors/NFT/NFTokenAcceptOffer.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp index 90a28a2e7c..32af49355a 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenAcceptOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenBurn.cpp b/src/libxrpl/tx/transactors/nft/NFTokenBurn.cpp similarity index 96% rename from src/libxrpl/tx/transactors/NFT/NFTokenBurn.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenBurn.cpp index 65ef9e7542..6d9ee56c51 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenBurn.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenBurn.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenCancelOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp similarity index 95% rename from src/libxrpl/tx/transactors/NFT/NFTokenCancelOffer.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp index ce2cdf83c5..df0561e076 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenCancelOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include #include diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenCreateOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenCreateOffer.cpp similarity index 94% rename from src/libxrpl/tx/transactors/NFT/NFTokenCreateOffer.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenCreateOffer.cpp index 6fe911ef5b..ca90bcafab 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenCreateOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenCreateOffer.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenMint.cpp b/src/libxrpl/tx/transactors/nft/NFTokenMint.cpp similarity index 99% rename from src/libxrpl/tx/transactors/NFT/NFTokenMint.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenMint.cpp index a32a659bbd..a643a6042c 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenMint.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenMint.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenModify.cpp b/src/libxrpl/tx/transactors/nft/NFTokenModify.cpp similarity index 93% rename from src/libxrpl/tx/transactors/NFT/NFTokenModify.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenModify.cpp index 316bcb0f27..af852530e4 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenModify.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenModify.cpp @@ -1,7 +1,7 @@ #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/NFT/NFTokenUtils.cpp b/src/libxrpl/tx/transactors/nft/NFTokenUtils.cpp similarity index 99% rename from src/libxrpl/tx/transactors/NFT/NFTokenUtils.cpp rename to src/libxrpl/tx/transactors/nft/NFTokenUtils.cpp index 383929d54e..650fdabf29 100644 --- a/src/libxrpl/tx/transactors/NFT/NFTokenUtils.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenUtils.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/libxrpl/tx/transactors/DeleteOracle.cpp b/src/libxrpl/tx/transactors/oracle/DeleteOracle.cpp similarity index 97% rename from src/libxrpl/tx/transactors/DeleteOracle.cpp rename to src/libxrpl/tx/transactors/oracle/DeleteOracle.cpp index ebaffd334a..5452096b6d 100644 --- a/src/libxrpl/tx/transactors/DeleteOracle.cpp +++ b/src/libxrpl/tx/transactors/oracle/DeleteOracle.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/SetOracle.cpp b/src/libxrpl/tx/transactors/oracle/SetOracle.cpp similarity index 99% rename from src/libxrpl/tx/transactors/SetOracle.cpp rename to src/libxrpl/tx/transactors/oracle/SetOracle.cpp index 140938e2d7..be827c25d5 100644 --- a/src/libxrpl/tx/transactors/SetOracle.cpp +++ b/src/libxrpl/tx/transactors/oracle/SetOracle.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/DepositPreauth.cpp b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp similarity index 99% rename from src/libxrpl/tx/transactors/DepositPreauth.cpp rename to src/libxrpl/tx/transactors/payment/DepositPreauth.cpp index 6857816d1f..cd86a6906c 100644 --- a/src/libxrpl/tx/transactors/DepositPreauth.cpp +++ b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/Payment.cpp b/src/libxrpl/tx/transactors/payment/Payment.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Payment.cpp rename to src/libxrpl/tx/transactors/payment/Payment.cpp index b98bbf11bd..1605c7d886 100644 --- a/src/libxrpl/tx/transactors/Payment.cpp +++ b/src/libxrpl/tx/transactors/payment/Payment.cpp @@ -6,9 +6,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/PayChan.cpp b/src/libxrpl/tx/transactors/payment_channel/PayChan.cpp similarity index 99% rename from src/libxrpl/tx/transactors/PayChan.cpp rename to src/libxrpl/tx/transactors/payment_channel/PayChan.cpp index 265030bebf..f963153e87 100644 --- a/src/libxrpl/tx/transactors/PayChan.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PayChan.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.cpp b/src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainDelete.cpp similarity index 95% rename from src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.cpp rename to src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainDelete.cpp index 861bb934be..2c7e934fc0 100644 --- a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.cpp +++ b/src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainDelete.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.cpp b/src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainSet.cpp similarity index 98% rename from src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.cpp rename to src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainSet.cpp index 15bb79b239..c27c884b10 100644 --- a/src/libxrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.cpp +++ b/src/libxrpl/tx/transactors/permissioned_domain/PermissionedDomainSet.cpp @@ -1,4 +1,4 @@ -#include +#include // #include #include diff --git a/src/libxrpl/tx/transactors/Batch.cpp b/src/libxrpl/tx/transactors/system/Batch.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Batch.cpp rename to src/libxrpl/tx/transactors/system/Batch.cpp index 67bb1f26e4..ed3dabec75 100644 --- a/src/libxrpl/tx/transactors/Batch.cpp +++ b/src/libxrpl/tx/transactors/system/Batch.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Change.cpp b/src/libxrpl/tx/transactors/system/Change.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Change.cpp rename to src/libxrpl/tx/transactors/system/Change.cpp index 9ae6504718..d1e2d148d6 100644 --- a/src/libxrpl/tx/transactors/Change.cpp +++ b/src/libxrpl/tx/transactors/system/Change.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/CreateTicket.cpp b/src/libxrpl/tx/transactors/system/CreateTicket.cpp similarity index 98% rename from src/libxrpl/tx/transactors/CreateTicket.cpp rename to src/libxrpl/tx/transactors/system/CreateTicket.cpp index b1991c6e77..7334d88be4 100644 --- a/src/libxrpl/tx/transactors/CreateTicket.cpp +++ b/src/libxrpl/tx/transactors/system/CreateTicket.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/LedgerStateFix.cpp b/src/libxrpl/tx/transactors/system/LedgerStateFix.cpp similarity index 93% rename from src/libxrpl/tx/transactors/LedgerStateFix.cpp rename to src/libxrpl/tx/transactors/system/LedgerStateFix.cpp index 28028b6f2b..da04d60142 100644 --- a/src/libxrpl/tx/transactors/LedgerStateFix.cpp +++ b/src/libxrpl/tx/transactors/system/LedgerStateFix.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Clawback.cpp b/src/libxrpl/tx/transactors/token/Clawback.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Clawback.cpp rename to src/libxrpl/tx/transactors/token/Clawback.cpp index 789017e3ec..c64459faa9 100644 --- a/src/libxrpl/tx/transactors/Clawback.cpp +++ b/src/libxrpl/tx/transactors/token/Clawback.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/MPT/MPTokenAuthorize.cpp b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp similarity index 98% rename from src/libxrpl/tx/transactors/MPT/MPTokenAuthorize.cpp rename to src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp index 846b25ca38..01513e17e0 100644 --- a/src/libxrpl/tx/transactors/MPT/MPTokenAuthorize.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceCreate.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp similarity index 98% rename from src/libxrpl/tx/transactors/MPT/MPTokenIssuanceCreate.cpp rename to src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp index ae697aa670..cf435a30ca 100644 --- a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceCreate.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp similarity index 95% rename from src/libxrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.cpp rename to src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp index 4b4d7c53f5..1df4da47ab 100644 --- a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceSet.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp similarity index 98% rename from src/libxrpl/tx/transactors/MPT/MPTokenIssuanceSet.cpp rename to src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp index 2ae6bde083..e6b1ffbbc3 100644 --- a/src/libxrpl/tx/transactors/MPT/MPTokenIssuanceSet.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/SetTrust.cpp b/src/libxrpl/tx/transactors/token/SetTrust.cpp similarity index 99% rename from src/libxrpl/tx/transactors/SetTrust.cpp rename to src/libxrpl/tx/transactors/token/SetTrust.cpp index 268d626432..b6ae288a8c 100644 --- a/src/libxrpl/tx/transactors/SetTrust.cpp +++ b/src/libxrpl/tx/transactors/token/SetTrust.cpp @@ -6,8 +6,8 @@ #include #include #include -#include -#include +#include +#include namespace { diff --git a/src/libxrpl/tx/transactors/Vault/VaultClawback.cpp b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Vault/VaultClawback.cpp rename to src/libxrpl/tx/transactors/vault/VaultClawback.cpp index bce53c706d..bfce93b1dd 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultClawback.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include diff --git a/src/libxrpl/tx/transactors/Vault/VaultCreate.cpp b/src/libxrpl/tx/transactors/vault/VaultCreate.cpp similarity index 97% rename from src/libxrpl/tx/transactors/Vault/VaultCreate.cpp rename to src/libxrpl/tx/transactors/vault/VaultCreate.cpp index 230651fd9b..b1f227ddf3 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultCreate.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultCreate.cpp @@ -10,9 +10,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Vault/VaultDelete.cpp b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Vault/VaultDelete.cpp rename to src/libxrpl/tx/transactors/vault/VaultDelete.cpp index 0b3aef19a8..ad39ed9cf2 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultDelete.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Vault/VaultDeposit.cpp b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp similarity index 98% rename from src/libxrpl/tx/transactors/Vault/VaultDeposit.cpp rename to src/libxrpl/tx/transactors/vault/VaultDeposit.cpp index c3a9327f2a..58912f5010 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultDeposit.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp @@ -9,8 +9,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Vault/VaultSet.cpp b/src/libxrpl/tx/transactors/vault/VaultSet.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Vault/VaultSet.cpp rename to src/libxrpl/tx/transactors/vault/VaultSet.cpp index c27c9aae3c..532edcdcef 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultSet.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultSet.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/libxrpl/tx/transactors/Vault/VaultWithdraw.cpp b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp similarity index 99% rename from src/libxrpl/tx/transactors/Vault/VaultWithdraw.cpp rename to src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp index 3e468df2fc..9f808c2dfc 100644 --- a/src/libxrpl/tx/transactors/Vault/VaultWithdraw.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/test/app/AMMCalc_test.cpp b/src/test/app/AMMCalc_test.cpp index e6e68a95ce..690329d2f3 100644 --- a/src/test/app/AMMCalc_test.cpp +++ b/src/test/app/AMMCalc_test.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include diff --git a/src/test/app/AMMClawback_test.cpp b/src/test/app/AMMClawback_test.cpp index 114a96b081..3034c628f4 100644 --- a/src/test/app/AMMClawback_test.cpp +++ b/src/test/app/AMMClawback_test.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/app/AMMExtended_test.cpp b/src/test/app/AMMExtended_test.cpp index 06f82418da..14be260822 100644 --- a/src/test/app/AMMExtended_test.cpp +++ b/src/test/app/AMMExtended_test.cpp @@ -12,8 +12,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/src/test/app/AMM_test.cpp b/src/test/app/AMM_test.cpp index fc801be816..39a3abcd9e 100644 --- a/src/test/app/AMM_test.cpp +++ b/src/test/app/AMM_test.cpp @@ -10,10 +10,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/src/test/app/Batch_test.cpp b/src/test/app/Batch_test.cpp index f429299f01..d8a8cd6c5d 100644 --- a/src/test/app/Batch_test.cpp +++ b/src/test/app/Batch_test.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/app/FixNFTokenPageLinks_test.cpp b/src/test/app/FixNFTokenPageLinks_test.cpp index 67dadac5e1..8022c52a5d 100644 --- a/src/test/app/FixNFTokenPageLinks_test.cpp +++ b/src/test/app/FixNFTokenPageLinks_test.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/test/app/LendingHelpers_test.cpp b/src/test/app/LendingHelpers_test.cpp index aae60a252a..24661c18fb 100644 --- a/src/test/app/LendingHelpers_test.cpp +++ b/src/test/app/LendingHelpers_test.cpp @@ -8,9 +8,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/src/test/app/LoanBroker_test.cpp b/src/test/app/LoanBroker_test.cpp index 31cfb5c231..d7c4344ef5 100644 --- a/src/test/app/LoanBroker_test.cpp +++ b/src/test/app/LoanBroker_test.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/app/Loan_test.cpp b/src/test/app/Loan_test.cpp index 607e84abeb..5477994c53 100644 --- a/src/test/app/Loan_test.cpp +++ b/src/test/app/Loan_test.cpp @@ -6,9 +6,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include diff --git a/src/test/app/NFTokenAuth_test.cpp b/src/test/app/NFTokenAuth_test.cpp index 6fc92bc6cd..b973530f41 100644 --- a/src/test/app/NFTokenAuth_test.cpp +++ b/src/test/app/NFTokenAuth_test.cpp @@ -1,6 +1,6 @@ #include -#include +#include namespace xrpl { diff --git a/src/test/app/NFTokenBurn_test.cpp b/src/test/app/NFTokenBurn_test.cpp index c75e22e954..8cd67bd72b 100644 --- a/src/test/app/NFTokenBurn_test.cpp +++ b/src/test/app/NFTokenBurn_test.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include diff --git a/src/test/app/NFTokenDir_test.cpp b/src/test/app/NFTokenDir_test.cpp index c186a3d9e5..551b987204 100644 --- a/src/test/app/NFTokenDir_test.cpp +++ b/src/test/app/NFTokenDir_test.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include diff --git a/src/test/app/NFToken_test.cpp b/src/test/app/NFToken_test.cpp index 6d30fc6854..7ff2e7d1cb 100644 --- a/src/test/app/NFToken_test.cpp +++ b/src/test/app/NFToken_test.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include diff --git a/src/test/app/PayStrand_test.cpp b/src/test/app/PayStrand_test.cpp index 2cc2a188c3..a45da5f5f6 100644 --- a/src/test/app/PayStrand_test.cpp +++ b/src/test/app/PayStrand_test.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include diff --git a/src/test/app/PermissionedDEX_test.cpp b/src/test/app/PermissionedDEX_test.cpp index 8ecc66911c..3cb732b9d1 100644 --- a/src/test/app/PermissionedDEX_test.cpp +++ b/src/test/app/PermissionedDEX_test.cpp @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/test/app/PermissionedDomains_test.cpp b/src/test/app/PermissionedDomains_test.cpp index 39ce85d23d..d2a14ce82a 100644 --- a/src/test/app/PermissionedDomains_test.cpp +++ b/src/test/app/PermissionedDomains_test.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include diff --git a/src/test/app/TheoreticalQuality_test.cpp b/src/test/app/TheoreticalQuality_test.cpp index 9b6d86dd5f..024ee0742e 100644 --- a/src/test/app/TheoreticalQuality_test.cpp +++ b/src/test/app/TheoreticalQuality_test.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/jtx/impl/AMM.cpp b/src/test/jtx/impl/AMM.cpp index faf47259dc..bb159d6bc1 100644 --- a/src/test/jtx/impl/AMM.cpp +++ b/src/test/jtx/impl/AMM.cpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include namespace xrpl { namespace test { diff --git a/src/test/jtx/impl/ledgerStateFixes.cpp b/src/test/jtx/impl/ledgerStateFixes.cpp index 04860a5e3a..e5a7495a44 100644 --- a/src/test/jtx/impl/ledgerStateFixes.cpp +++ b/src/test/jtx/impl/ledgerStateFixes.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/jtx/impl/token.cpp b/src/test/jtx/impl/token.cpp index 59f8c822fb..9db79361eb 100644 --- a/src/test/jtx/impl/token.cpp +++ b/src/test/jtx/impl/token.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include namespace xrpl { namespace test { diff --git a/src/test/rpc/AccountObjects_test.cpp b/src/test/rpc/AccountObjects_test.cpp index 7c1877136d..090f2a43b9 100644 --- a/src/test/rpc/AccountObjects_test.cpp +++ b/src/test/rpc/AccountObjects_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include diff --git a/src/xrpld/app/ledger/OrderBookDBImpl.cpp b/src/xrpld/app/ledger/OrderBookDBImpl.cpp index a4eb0fb1ca..b82fa3896b 100644 --- a/src/xrpld/app/ledger/OrderBookDBImpl.cpp +++ b/src/xrpld/app/ledger/OrderBookDBImpl.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace xrpl { diff --git a/src/xrpld/app/paths/AMMLiquidity.h b/src/xrpld/app/paths/AMMLiquidity.h index 5c3ff2a8e6..71b8dbb12a 100644 --- a/src/xrpld/app/paths/AMMLiquidity.h +++ b/src/xrpld/app/paths/AMMLiquidity.h @@ -4,9 +4,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace xrpl { diff --git a/src/xrpld/app/paths/detail/BookStep.cpp b/src/xrpld/app/paths/detail/BookStep.cpp index 4124fdfa30..dca38f8df5 100644 --- a/src/xrpld/app/paths/detail/BookStep.cpp +++ b/src/xrpld/app/paths/detail/BookStep.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include diff --git a/src/xrpld/rpc/detail/RPCHelpers.cpp b/src/xrpld/rpc/detail/RPCHelpers.cpp index 14e1108955..385bc7f4af 100644 --- a/src/xrpld/rpc/detail/RPCHelpers.cpp +++ b/src/xrpld/rpc/detail/RPCHelpers.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/xrpld/rpc/handlers/AMMInfo.cpp b/src/xrpld/rpc/handlers/AMMInfo.cpp index 3b843c9410..4e91c9c308 100644 --- a/src/xrpld/rpc/handlers/AMMInfo.cpp +++ b/src/xrpld/rpc/handlers/AMMInfo.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include diff --git a/src/xrpld/rpc/handlers/AccountObjects.cpp b/src/xrpld/rpc/handlers/AccountObjects.cpp index 9dcdf7bdf6..e01822e901 100644 --- a/src/xrpld/rpc/handlers/AccountObjects.cpp +++ b/src/xrpld/rpc/handlers/AccountObjects.cpp @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include From 7b12c00e6bdae511dd965f0f81c83972368d84cc Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Fri, 6 Mar 2026 12:50:00 +0000 Subject: [PATCH 04/82] chore: Add custom cmake definitions for gersemi (#6491) This change adds definitions for our custom functions/macros, so gersemi will nicely format them too. --- .gersemi/definitions.cmake | 98 ++++++++++++++++++++++++++++++++++++++ .gersemirc | 1 + cmake/XrplAddTest.cmake | 7 ++- cmake/XrplCore.cmake | 19 ++++++-- cmake/XrplCov.cmake | 20 ++++---- cmake/XrplDocs.cmake | 6 ++- cmake/add_module.cmake | 14 ++++-- 7 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 .gersemi/definitions.cmake create mode 100644 .gersemirc diff --git a/.gersemi/definitions.cmake b/.gersemi/definitions.cmake new file mode 100644 index 0000000000..13061629a4 --- /dev/null +++ b/.gersemi/definitions.cmake @@ -0,0 +1,98 @@ +# Custom CMake command definitions for gersemi formatting. +# These stubs teach gersemi the signatures of project-specific commands +# so it can format their invocations correctly. + +function(git_branch branch_val) +endfunction() + +function(isolate_headers target A B scope) +endfunction() + +function(create_symbolic_link target link) +endfunction() + +function(xrpl_add_test name) +endfunction() + +macro(exclude_from_default target_) +endmacro() + +macro(exclude_if_included target_) +endmacro() + +function(target_protobuf_sources target prefix) + set(options APPEND_PATH DESCRIPTORS) + set(oneValueArgs + LANGUAGE + OUT_VAR + EXPORT_MACRO + TARGET + PROTOC_OUT_DIR + PLUGIN + PLUGIN_OPTIONS + PROTOC_EXE + ) + set(multiValueArgs + PROTOS + IMPORT_DIRS + GENERATE_EXTENSIONS + PROTOC_OPTIONS + DEPENDENCIES + ) + cmake_parse_arguments( + THIS_FUNCTION_PREFIX + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) +endfunction() + +function(add_module parent name) +endfunction() + +function(target_link_modules parent scope) +endfunction() + +function(setup_target_for_coverage_gcovr) + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME FORMAT) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments( + THIS_FUNCTION_PREFIX + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) +endfunction() + +function(add_code_coverage_to_target name scope) +endfunction() + +function(verbose_find_path variable name) + set(options + NO_CACHE + REQUIRED + OPTIONAL + NO_DEFAULT_PATH + NO_PACKAGE_ROOT_PATH + NO_CMAKE_PATH + NO_CMAKE_ENVIRONMENT_PATH + NO_SYSTEM_ENVIRONMENT_PATH + NO_CMAKE_SYSTEM_PATH + NO_CMAKE_INSTALL_PREFIX + CMAKE_FIND_ROOT_PATH_BOTH + ONLY_CMAKE_FIND_ROOT_PATH + NO_CMAKE_FIND_ROOT_PATH + ) + set(oneValueArgs REGISTRY_VIEW VALIDATOR DOC) + set(multiValueArgs NAMES HINTS PATHS PATH_SUFFIXES) + cmake_parse_arguments( + THIS_FUNCTION_PREFIX + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) +endfunction() diff --git a/.gersemirc b/.gersemirc new file mode 100644 index 0000000000..5abd52ffd5 --- /dev/null +++ b/.gersemirc @@ -0,0 +1 @@ +definitions: [.gersemi] diff --git a/cmake/XrplAddTest.cmake b/cmake/XrplAddTest.cmake index 0f8f9e2c01..2f1209e03c 100644 --- a/cmake/XrplAddTest.cmake +++ b/cmake/XrplAddTest.cmake @@ -11,7 +11,12 @@ function(xrpl_add_test name) ) add_executable(${target} ${ARGN} ${sources}) - isolate_headers(${target} "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/tests/${name}" PRIVATE) + isolate_headers( + ${target} + "${CMAKE_SOURCE_DIR}" + "${CMAKE_SOURCE_DIR}/tests/${name}" + PRIVATE + ) add_test(NAME ${target} COMMAND ${target}) endfunction() diff --git a/cmake/XrplCore.cmake b/cmake/XrplCore.cmake index 1c8f5e33d6..580c4155eb 100644 --- a/cmake/XrplCore.cmake +++ b/cmake/XrplCore.cmake @@ -10,16 +10,25 @@ include(target_protobuf_sources) # so we just build them as a separate library. add_library(xrpl.libpb) set_target_properties(xrpl.libpb PROPERTIES UNITY_BUILD OFF) -target_protobuf_sources(xrpl.libpb xrpl/proto LANGUAGE cpp IMPORT_DIRS include/xrpl/proto - PROTOS include/xrpl/proto/xrpl.proto +target_protobuf_sources( + xrpl.libpb + xrpl/proto + LANGUAGE cpp + IMPORT_DIRS include/xrpl/proto + PROTOS include/xrpl/proto/xrpl.proto ) file(GLOB_RECURSE protos "include/xrpl/proto/org/*.proto") -target_protobuf_sources(xrpl.libpb xrpl/proto LANGUAGE cpp IMPORT_DIRS include/xrpl/proto - PROTOS "${protos}" +target_protobuf_sources( + xrpl.libpb + xrpl/proto + LANGUAGE cpp + IMPORT_DIRS include/xrpl/proto + PROTOS "${protos}" ) target_protobuf_sources( - xrpl.libpb xrpl/proto + xrpl.libpb + xrpl/proto LANGUAGE grpc IMPORT_DIRS include/xrpl/proto PROTOS "${protos}" diff --git a/cmake/XrplCov.cmake b/cmake/XrplCov.cmake index 109f5049fd..d81d7e689f 100644 --- a/cmake/XrplCov.cmake +++ b/cmake/XrplCov.cmake @@ -39,19 +39,15 @@ list( ) setup_target_for_coverage_gcovr( - NAME - coverage - FORMAT - ${coverage_format} + NAME coverage + FORMAT ${coverage_format} EXCLUDE - "src/test" - "src/tests" - "include/xrpl/beast/test" - "include/xrpl/beast/unit_test" - "${CMAKE_BINARY_DIR}/pb-xrpl.libpb" - DEPENDENCIES - xrpld - xrpl.tests + "src/test" + "src/tests" + "include/xrpl/beast/test" + "include/xrpl/beast/unit_test" + "${CMAKE_BINARY_DIR}/pb-xrpl.libpb" + DEPENDENCIES xrpld xrpl.tests ) add_code_coverage_to_target(opts INTERFACE) diff --git a/cmake/XrplDocs.cmake b/cmake/XrplDocs.cmake index aefffba81b..7b3e9b3b30 100644 --- a/cmake/XrplDocs.cmake +++ b/cmake/XrplDocs.cmake @@ -42,7 +42,11 @@ function(verbose_find_path variable name) endif() endfunction() -verbose_find_path(doxygen_plantuml_jar_path plantuml.jar PATH_SUFFIXES share/plantuml) +verbose_find_path( + doxygen_plantuml_jar_path + plantuml.jar + PATH_SUFFIXES share/plantuml +) verbose_find_path(doxygen_dot_path dot) # https://en.cppreference.com/w/Cppreference:Archives diff --git a/cmake/add_module.cmake b/cmake/add_module.cmake index 5b1864a0bb..316d6c627b 100644 --- a/cmake/add_module.cmake +++ b/cmake/add_module.cmake @@ -25,10 +25,16 @@ function(add_module parent name) ${target} PUBLIC "$" ) - isolate_headers(${target} "${CMAKE_CURRENT_SOURCE_DIR}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/include/${parent}/${name}" PUBLIC + isolate_headers( + ${target} + "${CMAKE_CURRENT_SOURCE_DIR}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/include/${parent}/${name}" + PUBLIC ) - isolate_headers(${target} "${CMAKE_CURRENT_SOURCE_DIR}/src" - "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}" PRIVATE + isolate_headers( + ${target} + "${CMAKE_CURRENT_SOURCE_DIR}/src" + "${CMAKE_CURRENT_SOURCE_DIR}/src/lib${parent}/${name}" + PRIVATE ) endfunction() From 9e0d350fca688cfa6adae8ee0b16ec8ed8653f69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:27:03 +0100 Subject: [PATCH 05/82] ci: [DEPENDABOT] bump tj-actions/changed-files from 47.0.4 to 47.0.5 (#6501) --- .github/workflows/on-pr.yml | 2 +- .github/workflows/reusable-clang-tidy.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/on-pr.yml b/.github/workflows/on-pr.yml index be6a92eea2..b0010fe0ba 100644 --- a/.github/workflows/on-pr.yml +++ b/.github/workflows/on-pr.yml @@ -46,7 +46,7 @@ jobs: # that Github considers any skipped jobs to have passed, and in # turn the required checks as well. id: changes - uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v47.0.4 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | # These paths are unique to `on-pr.yml`. diff --git a/.github/workflows/reusable-clang-tidy.yml b/.github/workflows/reusable-clang-tidy.yml index 7050d3509f..5319c1627a 100644 --- a/.github/workflows/reusable-clang-tidy.yml +++ b/.github/workflows/reusable-clang-tidy.yml @@ -31,7 +31,7 @@ jobs: - name: Get changed C++ files id: changed_files - uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v47.0.4 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | **/*.cpp @@ -41,7 +41,7 @@ jobs: - name: Get changed clang-tidy configuration id: changed_clang_tidy - uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v47.0.4 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | .clang-tidy From 6b301efc8c0e66e29b57491b5c26640cd8b3bb54 Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Mon, 9 Mar 2026 15:25:52 +0000 Subject: [PATCH 06/82] chore: Enable clang-tidy `bugprone-unused-local-non-trivial-variable` check (#6458) --- .clang-tidy | 4 ++-- src/test/app/Manifest_test.cpp | 1 - src/test/rpc/LedgerEntry_test.cpp | 12 ++++-------- src/test/rpc/Peers_test.cpp | 4 ++-- src/xrpld/app/consensus/RCLConsensus.cpp | 2 -- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 26c7995631..8eefa5fe37 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -60,6 +60,7 @@ Checks: "-*, bugprone-unhandled-exception-at-new, bugprone-unique-ptr-array-mismatch, bugprone-unsafe-functions, + bugprone-unused-local-non-trivial-variable, bugprone-virtual-near-miss, cppcoreguidelines-no-suspend-with-lock, cppcoreguidelines-virtual-class-destructor, @@ -85,13 +86,12 @@ Checks: "-*, performance-trivially-destructible " # --- -# more checks that have some issues that need to be resolved: +# checks that have some issues that need to be resolved: # # bugprone-crtp-constructor-accessibility, # bugprone-inc-dec-in-conditions, # bugprone-reserved-identifier, # bugprone-move-forwarding-reference, -# bugprone-unused-local-non-trivial-variable, # bugprone-switch-missing-default-case, # bugprone-suspicious-stringview-data-usage, # bugprone-suspicious-missing-comma, diff --git a/src/test/app/Manifest_test.cpp b/src/test/app/Manifest_test.cpp index 294d5210d9..dfa67e350f 100644 --- a/src/test/app/Manifest_test.cpp +++ b/src/test/app/Manifest_test.cpp @@ -248,7 +248,6 @@ public: // save should store all trusted master keys to db std::vector s1; std::vector keys; - std::string cfgManifest; for (auto const& man : inManifests) s1.push_back(toBase58(TokenType::NodePublic, man->masterKey)); unl->load({}, s1, keys); diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index 9d274b3549..ffc4329109 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -2583,13 +2583,10 @@ class LedgerEntry_test : public beast::unit_test::suite env(check::create(env.master, alice, XRP(100))); env.close(); - std::string const ledgerHash{to_string(env.closed()->header().hash)}; - { - // Request a check. - Json::Value const jrr = env.rpc("ledger_entry", to_string(checkId.key))[jss::result]; - BEAST_EXPECT(jrr[jss::node][sfLedgerEntryType.jsonName] == jss::Check); - BEAST_EXPECT(jrr[jss::node][sfSendMax.jsonName] == "100000000"); - } + // Request a check. + Json::Value const jrr = env.rpc("ledger_entry", to_string(checkId.key))[jss::result]; + BEAST_EXPECT(jrr[jss::node][sfLedgerEntryType.jsonName] == jss::Check); + BEAST_EXPECT(jrr[jss::node][sfSendMax.jsonName] == "100000000"); } public: @@ -2753,7 +2750,6 @@ class LedgerEntry_XChain_test : public beast::unit_test::suite, scEnv(xchain_create_claim_id(scBob, jvb, reward, mcBob)); scEnv.close(); - std::string bridge_index; { // request the xchain_claim_id via RPC Json::Value jvParams; diff --git a/src/test/rpc/Peers_test.cpp b/src/test/rpc/Peers_test.cpp index 8e4e560f3e..d72ad6d878 100644 --- a/src/test/rpc/Peers_test.cpp +++ b/src/test/rpc/Peers_test.cpp @@ -53,8 +53,8 @@ class Peers_test : public beast::unit_test::suite continue; if (!BEAST_EXPECT((*it).isMember(jss::tag))) continue; - auto tag = (*it)[jss::tag].asString(); - BEAST_EXPECTS((*it)[jss::tag].asString() == nodes[key], key); + auto const tag = (*it)[jss::tag].asString(); + BEAST_EXPECTS(tag == nodes[key], key); } BEAST_EXPECT(peers.isMember(jss::peers) && peers[jss::peers].isNull()); } diff --git a/src/xrpld/app/consensus/RCLConsensus.cpp b/src/xrpld/app/consensus/RCLConsensus.cpp index 98dccc0089..91f24a650c 100644 --- a/src/xrpld/app/consensus/RCLConsensus.cpp +++ b/src/xrpld/app/consensus/RCLConsensus.cpp @@ -78,8 +78,6 @@ RCLConsensus::Adaptor::Adaptor( if (validatorKeys_.nodeID != beast::zero && validatorKeys_.keys) { - std::stringstream ss; - JLOG(j_.info()) << "Validator identity: " << toBase58(TokenType::NodePublic, validatorKeys_.keys->masterPublicKey); From 1ee0567b140bf77a229c7699aa86d9c419f64d0f Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Mon, 9 Mar 2026 15:48:38 +0000 Subject: [PATCH 07/82] chore: Enable clang-tidy `bugprone-suspicious-missing-comma` check (#6468) --- .clang-tidy | 2 +- src/test/app/Invariants_test.cpp | 13 ++++++----- src/test/app/Manifest_test.cpp | 27 ++++++++-------------- src/test/app/ValidatorKeys_test.cpp | 19 +++++++--------- src/test/rpc/DepositAuthorized_test.cpp | 28 +++++++++-------------- src/test/rpc/ValidatorInfo_test.cpp | 30 ++++++++----------------- 6 files changed, 44 insertions(+), 75 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 8eefa5fe37..42cad608c4 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -49,6 +49,7 @@ Checks: "-*, bugprone-suspicious-include, bugprone-suspicious-memory-comparison, bugprone-suspicious-memset-usage, + bugprone-suspicious-missing-comma, bugprone-suspicious-realloc-usage, bugprone-suspicious-semicolon, bugprone-suspicious-string-compare, @@ -94,7 +95,6 @@ Checks: "-*, # bugprone-move-forwarding-reference, # bugprone-switch-missing-default-case, # bugprone-suspicious-stringview-data-usage, -# bugprone-suspicious-missing-comma, # bugprone-pointer-arithmetic-on-polymorphic-object, # bugprone-optional-value-conversion, # bugprone-too-small-loop-variable, diff --git a/src/test/app/Invariants_test.cpp b/src/test/app/Invariants_test.cpp index a01026c8ef..6a010a7e82 100644 --- a/src/test/app/Invariants_test.cpp +++ b/src/test/app/Invariants_test.cpp @@ -3499,12 +3499,13 @@ class Invariants_test : public beast::unit_test::suite precloseXrp); doInvariantCheck( - {"withdrawal must change vault and destination balance by " - "equal amount", - "withdrawal must decrease vault balance", - "withdrawal must increase destination balance", - "withdrawal and assets outstanding must add up", - "withdrawal and assets available must add up"}, + { + "withdrawal must change vault and destination balance by equal amount", + "withdrawal must decrease vault balance", + "withdrawal must increase destination balance", + "withdrawal and assets outstanding must add up", + "withdrawal and assets available must add up", + }, [&](Account const& A1, Account const& A2, ApplyContext& ac) { auto const keylet = keylet::vault(A1.id(), ac.view().seq()); diff --git a/src/test/app/Manifest_test.cpp b/src/test/app/Manifest_test.cpp index dfa67e350f..d9ecf89b26 100644 --- a/src/test/app/Manifest_test.cpp +++ b/src/test/app/Manifest_test.cpp @@ -423,24 +423,15 @@ public: // Format token string to test trim() std::vector const tokenBlob = { - " " - "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3ND" - "diNT\n", - " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2Iiwib" - "WFuaWZl \n", - "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncx" - "L3ZDeE\n", - "\t " - "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4" - "U0tG\t \t\n", - "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUz" - "ZQU2\n", - "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZ" - "eXd1\n", - "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZW" - "RGdj\n", - "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0i" - "fQ==\n"}; + " eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n", + " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl \n", + "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE\n", + "\t hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t \t\n", + "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n", + "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n", + "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n", + "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n", + }; auto const manifest = "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/" diff --git a/src/test/app/ValidatorKeys_test.cpp b/src/test/app/ValidatorKeys_test.cpp index 32f6305a37..925c02131b 100644 --- a/src/test/app/ValidatorKeys_test.cpp +++ b/src/test/app/ValidatorKeys_test.cpp @@ -22,19 +22,15 @@ class ValidatorKeys_test : public beast::unit_test::suite std::string const tokenSecretStr = "paQmjZ37pKKPMrgadBLsuf9ab7Y7EUNzh27LQrZqoexpAs31nJi"; std::vector const tokenBlob = { - " " - "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n", - " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl " - " \n", - "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE" - "\n", - "\t " - "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t " - "\t\n", + " eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n", + " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl \n", + "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE\n", + "\t hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t \t\n", "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n", "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n", "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n", - "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n"}; + "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n", + }; std::string const tokenManifest = "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/vCxHXXLplc2GnMhAkE1agqXxBwD" @@ -52,7 +48,8 @@ class ValidatorKeys_test : public beast::unit_test::suite "NWF6dTJMVHlqL1pjQkpBbitmNGhtQTQ0U0tYbGtTTUFqak1rSWRyR1Rxa21SNjBzVG\n", "JaTjZOOUYwdk9UV3VYcUZ6eDFoSGIyL0RqWElVZXhDVGlITEcxTG9UdUp1eXdXbk55\n", "RFE9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tleSI6IjkyRDhCNDBGMzYwMTc5MTkwMU\n", - "MzQTUzMzI3NzBDMkUwMTA4MDI0NTZFOEM2QkI0NEQ0N0FFREQ0NzJGMDQ2RkYifQ==\n"}; + "MzQTUzMzI3NzBDMkUwMTA4MDI0NTZFOEM2QkI0NEQ0N0FFREQ0NzJGMDQ2RkYifQ==\n", + }; public: void diff --git a/src/test/rpc/DepositAuthorized_test.cpp b/src/test/rpc/DepositAuthorized_test.cpp index 755609439c..9d6de94ccc 100644 --- a/src/test/rpc/DepositAuthorized_test.cpp +++ b/src/test/rpc/DepositAuthorized_test.cpp @@ -398,24 +398,16 @@ public: { static std::vector const credIds = { - "18004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "28004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "38004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "48004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "58004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "68004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "78004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "88004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4", - "98004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B" - "E4"}; + "18004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "28004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "38004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "48004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "58004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "68004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "78004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "88004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + "98004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288BE4", + }; assert(credIds.size() > maxCredentialsArraySize); testcase("deposit_authorized too long credentials"); diff --git a/src/test/rpc/ValidatorInfo_test.cpp b/src/test/rpc/ValidatorInfo_test.cpp index 41fa95940b..d4769f40fb 100644 --- a/src/test/rpc/ValidatorInfo_test.cpp +++ b/src/test/rpc/ValidatorInfo_test.cpp @@ -46,27 +46,15 @@ public: using namespace jtx; std::vector const tokenBlob = { - " " - "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT" - "\n", - " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFua" - "WZl " - " \n", - "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZD" - "eE" - "\n", - "\t " - "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG" - "\t " - "\t\n", - "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2" - "\n", - "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1" - "\n", - "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj" - "\n", - "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==" - "\n"}; + " eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n", + " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl \n", + "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE\n", + "\t hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t \t\n", + "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n", + "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n", + "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n", + "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n", + }; std::string const master_key = "nHBt9fsb4849WmZiCds4r5TXyBeQjqnH5kzPtqgMAQMgi39YZRPa"; std::string const ephemeral_key = "n9KsDYGKhABVc4wK5u3MnVhgPinyJimyKGpr9VJYuBaY8EnJXR2x"; From e2290b1a0af2d90ca58b67c7d8b38cd8db1c2879 Mon Sep 17 00:00:00 2001 From: Sergey Kuznetsov Date: Mon, 9 Mar 2026 16:33:20 +0000 Subject: [PATCH 08/82] feat: Add mutex wrapper from clio (#6447) This change adds a mutex wrapper copied from clio. The wrapper attaches a mutex to the data it protects, which improves safety and readability. --- include/xrpl/basics/Mutex.hpp | 155 ++++++++++++++++ src/tests/libxrpl/basics/Mutex.cpp | 288 +++++++++++++++++++++++++++++ 2 files changed, 443 insertions(+) create mode 100644 include/xrpl/basics/Mutex.hpp create mode 100644 src/tests/libxrpl/basics/Mutex.cpp diff --git a/include/xrpl/basics/Mutex.hpp b/include/xrpl/basics/Mutex.hpp new file mode 100644 index 0000000000..18c57370b1 --- /dev/null +++ b/include/xrpl/basics/Mutex.hpp @@ -0,0 +1,155 @@ +/* + This file is part of clio: https://github.com/XRPLF/clio + Copyright (c) 2024, the clio developers. + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. +*/ + +#pragma once + +#include +#include + +namespace xrpl { + +template +class Mutex; + +/** + * @brief A lock on a mutex that provides access to the protected data. + * + * @tparam ProtectedDataType data type to hold + * @tparam LockType type of lock + * @tparam MutexType type of mutex + */ +template typename LockType, typename MutexType> +class Lock +{ + LockType lock_; + ProtectedDataType& data_; + +public: + /** @cond */ + ProtectedDataType const& + operator*() const + { + return data_; + } + + ProtectedDataType& + operator*() + { + return data_; + } + + ProtectedDataType const& + get() const + { + return data_; + } + + ProtectedDataType& + get() + { + return data_; + } + + ProtectedDataType const* + operator->() const + { + return &data_; + } + + ProtectedDataType* + operator->() + { + return &data_; + } + + operator LockType&() & + { + return lock_; + } + + operator LockType const&() const& + { + return lock_; + } + /** @endcond */ + +private: + friend class Mutex, MutexType>; + + Lock(MutexType& mutex, ProtectedDataType& data) : lock_(mutex), data_(data) + { + } +}; + +/** + * @brief A container for data that is protected by a mutex. Inspired by Mutex in Rust. + * + * @tparam ProtectedDataType data type to hold + * @tparam MutexType type of mutex + */ +template +class Mutex +{ + mutable MutexType mutex_; + ProtectedDataType data_{}; + +public: + Mutex() = default; + + /** + * @brief Construct a new Mutex object with the given data + * + * @param data The data to protect + */ + explicit Mutex(ProtectedDataType data) : data_(std::move(data)) + { + } + + /** + * @brief Make a new Mutex object with the given data + * + * @tparam Args The types of the arguments to forward to the constructor of the protected data + * @param args The arguments to forward to the constructor of the protected data + * @return The Mutex object that protects the given data + */ + template + static Mutex + make(Args&&... args) + { + return Mutex{ProtectedDataType{std::forward(args)...}}; + } + + /** + * @brief Lock the mutex and get a lock object allowing access to the protected data + * + * @tparam LockType The type of lock to use + * @return A lock on the mutex and a reference to the protected data + */ + template