mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-19 18:45:52 +00:00
Compare commits
2 Commits
pratik/Add
...
a1q123456/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28f3d16ff1 | ||
|
|
5a8b23519c |
26
.github/actions/build-deps/action.yml
vendored
26
.github/actions/build-deps/action.yml
vendored
@@ -10,21 +10,10 @@ inputs:
|
|||||||
build_type:
|
build_type:
|
||||||
description: 'The build type to use ("Debug", "Release").'
|
description: 'The build type to use ("Debug", "Release").'
|
||||||
required: true
|
required: true
|
||||||
build_nproc:
|
|
||||||
description: "The number of processors to use for building."
|
|
||||||
required: true
|
|
||||||
force_build:
|
force_build:
|
||||||
description: 'Force building of all dependencies ("true", "false").'
|
description: 'Force building of all dependencies ("true", "false").'
|
||||||
required: false
|
required: false
|
||||||
default: "false"
|
default: "false"
|
||||||
log_verbosity:
|
|
||||||
description: "The logging verbosity."
|
|
||||||
required: false
|
|
||||||
default: "verbose"
|
|
||||||
sanitizers:
|
|
||||||
description: "The sanitizers to enable ('None', 'Address', 'Thread')."
|
|
||||||
required: false
|
|
||||||
default: "None"
|
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
@@ -33,23 +22,16 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
BUILD_DIR: ${{ inputs.build_dir }}
|
BUILD_DIR: ${{ inputs.build_dir }}
|
||||||
BUILD_NPROC: ${{ inputs.build_nproc }}
|
|
||||||
BUILD_OPTION: ${{ inputs.force_build == 'true' && '*' || 'missing' }}
|
BUILD_OPTION: ${{ inputs.force_build == 'true' && '*' || 'missing' }}
|
||||||
BUILD_TYPE: ${{ inputs.build_type }}
|
BUILD_TYPE: ${{ inputs.build_type }}
|
||||||
LOG_VERBOSITY: ${{ inputs.log_verbosity }}
|
|
||||||
SANITIZERS: ${{ inputs.sanitizers }}
|
|
||||||
run: |
|
run: |
|
||||||
echo 'Installing dependencies.'
|
echo 'Installing dependencies.'
|
||||||
mkdir -p "${BUILD_DIR}"
|
mkdir -p '${{ env.BUILD_DIR }}'
|
||||||
cd "${BUILD_DIR}"
|
cd '${{ env.BUILD_DIR }}'
|
||||||
conan install \
|
conan install \
|
||||||
--profile ci \
|
|
||||||
--output-folder . \
|
--output-folder . \
|
||||||
--build="${BUILD_OPTION}" \
|
--build=${{ env.BUILD_OPTION }} \
|
||||||
--options:host='&:tests=True' \
|
--options:host='&:tests=True' \
|
||||||
--options:host='&:xrpld=True' \
|
--options:host='&:xrpld=True' \
|
||||||
--settings:all build_type="${BUILD_TYPE}" \
|
--settings:all build_type='${{ env.BUILD_TYPE }}' \
|
||||||
--conf:all tools.build:jobs=${BUILD_NPROC} \
|
|
||||||
--conf:all tools.build:verbosity="${LOG_VERBOSITY}" \
|
|
||||||
--conf:all tools.compilation:verbosity="${LOG_VERBOSITY}" \
|
|
||||||
..
|
..
|
||||||
|
|||||||
6
.github/actions/setup-conan/action.yml
vendored
6
.github/actions/setup-conan/action.yml
vendored
@@ -28,7 +28,7 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo 'Installing profile.'
|
echo 'Installing profile.'
|
||||||
conan config install conan/profiles/ -tf $(conan config home)/profiles/
|
conan config install conan/profiles/default -tf $(conan config home)/profiles/
|
||||||
|
|
||||||
echo 'Conan profile:'
|
echo 'Conan profile:'
|
||||||
conan profile show
|
conan profile show
|
||||||
@@ -39,8 +39,8 @@ runs:
|
|||||||
CONAN_REMOTE_NAME: ${{ inputs.conan_remote_name }}
|
CONAN_REMOTE_NAME: ${{ inputs.conan_remote_name }}
|
||||||
CONAN_REMOTE_URL: ${{ inputs.conan_remote_url }}
|
CONAN_REMOTE_URL: ${{ inputs.conan_remote_url }}
|
||||||
run: |
|
run: |
|
||||||
echo "Adding Conan remote '${CONAN_REMOTE_NAME}' at '${CONAN_REMOTE_URL}'."
|
echo "Adding Conan remote '${{ env.CONAN_REMOTE_NAME }}' at '${{ env.CONAN_REMOTE_URL }}'."
|
||||||
conan remote add --index 0 --force "${CONAN_REMOTE_NAME}" "${CONAN_REMOTE_URL}"
|
conan remote add --index 0 --force '${{ env.CONAN_REMOTE_NAME }}' '${{ env.CONAN_REMOTE_URL }}'
|
||||||
|
|
||||||
echo 'Listing Conan remotes.'
|
echo 'Listing Conan remotes.'
|
||||||
conan remote list
|
conan remote list
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Loop: xrpld.app xrpld.rpc
|
|||||||
xrpld.rpc > xrpld.app
|
xrpld.rpc > xrpld.app
|
||||||
|
|
||||||
Loop: xrpld.app xrpld.shamap
|
Loop: xrpld.app xrpld.shamap
|
||||||
xrpld.shamap ~= xrpld.app
|
xrpld.app > xrpld.shamap
|
||||||
|
|
||||||
Loop: xrpld.core xrpld.perflog
|
Loop: xrpld.core xrpld.perflog
|
||||||
xrpld.perflog == xrpld.core
|
xrpld.perflog == xrpld.core
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ libxrpl.ledger > xrpl.ledger
|
|||||||
libxrpl.ledger > xrpl.protocol
|
libxrpl.ledger > xrpl.protocol
|
||||||
libxrpl.net > xrpl.basics
|
libxrpl.net > xrpl.basics
|
||||||
libxrpl.net > xrpl.net
|
libxrpl.net > xrpl.net
|
||||||
libxrpl.nodestore > xrpl.basics
|
|
||||||
libxrpl.nodestore > xrpl.json
|
|
||||||
libxrpl.nodestore > xrpl.nodestore
|
|
||||||
libxrpl.nodestore > xrpl.protocol
|
|
||||||
libxrpl.protocol > xrpl.basics
|
libxrpl.protocol > xrpl.basics
|
||||||
libxrpl.protocol > xrpl.json
|
libxrpl.protocol > xrpl.json
|
||||||
libxrpl.protocol > xrpl.protocol
|
libxrpl.protocol > xrpl.protocol
|
||||||
@@ -22,9 +18,6 @@ libxrpl.server > xrpl.basics
|
|||||||
libxrpl.server > xrpl.json
|
libxrpl.server > xrpl.json
|
||||||
libxrpl.server > xrpl.protocol
|
libxrpl.server > xrpl.protocol
|
||||||
libxrpl.server > xrpl.server
|
libxrpl.server > xrpl.server
|
||||||
libxrpl.shamap > xrpl.basics
|
|
||||||
libxrpl.shamap > xrpl.protocol
|
|
||||||
libxrpl.shamap > xrpl.shamap
|
|
||||||
test.app > test.jtx
|
test.app > test.jtx
|
||||||
test.app > test.rpc
|
test.app > test.rpc
|
||||||
test.app > test.toplevel
|
test.app > test.toplevel
|
||||||
@@ -32,11 +25,11 @@ test.app > test.unit_test
|
|||||||
test.app > xrpl.basics
|
test.app > xrpl.basics
|
||||||
test.app > xrpld.app
|
test.app > xrpld.app
|
||||||
test.app > xrpld.core
|
test.app > xrpld.core
|
||||||
|
test.app > xrpld.nodestore
|
||||||
test.app > xrpld.overlay
|
test.app > xrpld.overlay
|
||||||
test.app > xrpld.rpc
|
test.app > xrpld.rpc
|
||||||
test.app > xrpl.json
|
test.app > xrpl.json
|
||||||
test.app > xrpl.ledger
|
test.app > xrpl.ledger
|
||||||
test.app > xrpl.nodestore
|
|
||||||
test.app > xrpl.protocol
|
test.app > xrpl.protocol
|
||||||
test.app > xrpl.resource
|
test.app > xrpl.resource
|
||||||
test.basics > test.jtx
|
test.basics > test.jtx
|
||||||
@@ -93,7 +86,8 @@ test.nodestore > test.toplevel
|
|||||||
test.nodestore > test.unit_test
|
test.nodestore > test.unit_test
|
||||||
test.nodestore > xrpl.basics
|
test.nodestore > xrpl.basics
|
||||||
test.nodestore > xrpld.core
|
test.nodestore > xrpld.core
|
||||||
test.nodestore > xrpl.nodestore
|
test.nodestore > xrpld.nodestore
|
||||||
|
test.nodestore > xrpld.unity
|
||||||
test.overlay > test.jtx
|
test.overlay > test.jtx
|
||||||
test.overlay > test.toplevel
|
test.overlay > test.toplevel
|
||||||
test.overlay > test.unit_test
|
test.overlay > test.unit_test
|
||||||
@@ -101,8 +95,8 @@ test.overlay > xrpl.basics
|
|||||||
test.overlay > xrpld.app
|
test.overlay > xrpld.app
|
||||||
test.overlay > xrpld.overlay
|
test.overlay > xrpld.overlay
|
||||||
test.overlay > xrpld.peerfinder
|
test.overlay > xrpld.peerfinder
|
||||||
|
test.overlay > xrpld.shamap
|
||||||
test.overlay > xrpl.protocol
|
test.overlay > xrpl.protocol
|
||||||
test.overlay > xrpl.shamap
|
|
||||||
test.peerfinder > test.beast
|
test.peerfinder > test.beast
|
||||||
test.peerfinder > test.unit_test
|
test.peerfinder > test.unit_test
|
||||||
test.peerfinder > xrpl.basics
|
test.peerfinder > xrpl.basics
|
||||||
@@ -137,21 +131,18 @@ test.server > xrpl.json
|
|||||||
test.server > xrpl.server
|
test.server > xrpl.server
|
||||||
test.shamap > test.unit_test
|
test.shamap > test.unit_test
|
||||||
test.shamap > xrpl.basics
|
test.shamap > xrpl.basics
|
||||||
test.shamap > xrpl.nodestore
|
test.shamap > xrpld.nodestore
|
||||||
|
test.shamap > xrpld.shamap
|
||||||
test.shamap > xrpl.protocol
|
test.shamap > xrpl.protocol
|
||||||
test.shamap > xrpl.shamap
|
|
||||||
test.toplevel > test.csf
|
test.toplevel > test.csf
|
||||||
test.toplevel > xrpl.json
|
test.toplevel > xrpl.json
|
||||||
test.unit_test > xrpl.basics
|
test.unit_test > xrpl.basics
|
||||||
tests.libxrpl > xrpl.basics
|
tests.libxrpl > xrpl.basics
|
||||||
tests.libxrpl > xrpl.json
|
|
||||||
tests.libxrpl > xrpl.net
|
tests.libxrpl > xrpl.net
|
||||||
xrpl.json > xrpl.basics
|
xrpl.json > xrpl.basics
|
||||||
xrpl.ledger > xrpl.basics
|
xrpl.ledger > xrpl.basics
|
||||||
xrpl.ledger > xrpl.protocol
|
xrpl.ledger > xrpl.protocol
|
||||||
xrpl.net > xrpl.basics
|
xrpl.net > xrpl.basics
|
||||||
xrpl.nodestore > xrpl.basics
|
|
||||||
xrpl.nodestore > xrpl.protocol
|
|
||||||
xrpl.protocol > xrpl.basics
|
xrpl.protocol > xrpl.basics
|
||||||
xrpl.protocol > xrpl.json
|
xrpl.protocol > xrpl.json
|
||||||
xrpl.resource > xrpl.basics
|
xrpl.resource > xrpl.basics
|
||||||
@@ -160,21 +151,17 @@ xrpl.resource > xrpl.protocol
|
|||||||
xrpl.server > xrpl.basics
|
xrpl.server > xrpl.basics
|
||||||
xrpl.server > xrpl.json
|
xrpl.server > xrpl.json
|
||||||
xrpl.server > xrpl.protocol
|
xrpl.server > xrpl.protocol
|
||||||
xrpl.shamap > xrpl.basics
|
|
||||||
xrpl.shamap > xrpl.nodestore
|
|
||||||
xrpl.shamap > xrpl.protocol
|
|
||||||
xrpld.app > test.unit_test
|
xrpld.app > test.unit_test
|
||||||
xrpld.app > xrpl.basics
|
xrpld.app > xrpl.basics
|
||||||
xrpld.app > xrpld.conditions
|
xrpld.app > xrpld.conditions
|
||||||
xrpld.app > xrpld.consensus
|
xrpld.app > xrpld.consensus
|
||||||
|
xrpld.app > xrpld.nodestore
|
||||||
xrpld.app > xrpld.perflog
|
xrpld.app > xrpld.perflog
|
||||||
xrpld.app > xrpl.json
|
xrpld.app > xrpl.json
|
||||||
xrpld.app > xrpl.ledger
|
xrpld.app > xrpl.ledger
|
||||||
xrpld.app > xrpl.net
|
xrpld.app > xrpl.net
|
||||||
xrpld.app > xrpl.nodestore
|
|
||||||
xrpld.app > xrpl.protocol
|
xrpld.app > xrpl.protocol
|
||||||
xrpld.app > xrpl.resource
|
xrpld.app > xrpl.resource
|
||||||
xrpld.app > xrpl.shamap
|
|
||||||
xrpld.conditions > xrpl.basics
|
xrpld.conditions > xrpl.basics
|
||||||
xrpld.conditions > xrpl.protocol
|
xrpld.conditions > xrpl.protocol
|
||||||
xrpld.consensus > xrpl.basics
|
xrpld.consensus > xrpl.basics
|
||||||
@@ -184,6 +171,11 @@ xrpld.core > xrpl.basics
|
|||||||
xrpld.core > xrpl.json
|
xrpld.core > xrpl.json
|
||||||
xrpld.core > xrpl.net
|
xrpld.core > xrpl.net
|
||||||
xrpld.core > xrpl.protocol
|
xrpld.core > xrpl.protocol
|
||||||
|
xrpld.nodestore > xrpl.basics
|
||||||
|
xrpld.nodestore > xrpld.core
|
||||||
|
xrpld.nodestore > xrpld.unity
|
||||||
|
xrpld.nodestore > xrpl.json
|
||||||
|
xrpld.nodestore > xrpl.protocol
|
||||||
xrpld.overlay > xrpl.basics
|
xrpld.overlay > xrpl.basics
|
||||||
xrpld.overlay > xrpld.core
|
xrpld.overlay > xrpld.core
|
||||||
xrpld.overlay > xrpld.peerfinder
|
xrpld.overlay > xrpld.peerfinder
|
||||||
@@ -199,11 +191,13 @@ xrpld.perflog > xrpl.basics
|
|||||||
xrpld.perflog > xrpl.json
|
xrpld.perflog > xrpl.json
|
||||||
xrpld.rpc > xrpl.basics
|
xrpld.rpc > xrpl.basics
|
||||||
xrpld.rpc > xrpld.core
|
xrpld.rpc > xrpld.core
|
||||||
|
xrpld.rpc > xrpld.nodestore
|
||||||
xrpld.rpc > xrpl.json
|
xrpld.rpc > xrpl.json
|
||||||
xrpld.rpc > xrpl.ledger
|
xrpld.rpc > xrpl.ledger
|
||||||
xrpld.rpc > xrpl.net
|
xrpld.rpc > xrpl.net
|
||||||
xrpld.rpc > xrpl.nodestore
|
|
||||||
xrpld.rpc > xrpl.protocol
|
xrpld.rpc > xrpl.protocol
|
||||||
xrpld.rpc > xrpl.resource
|
xrpld.rpc > xrpl.resource
|
||||||
xrpld.rpc > xrpl.server
|
xrpld.rpc > xrpl.server
|
||||||
xrpld.shamap > xrpl.shamap
|
xrpld.shamap > xrpl.basics
|
||||||
|
xrpld.shamap > xrpld.nodestore
|
||||||
|
xrpld.shamap > xrpl.protocol
|
||||||
|
|||||||
36
.github/scripts/rename/README.md
vendored
36
.github/scripts/rename/README.md
vendored
@@ -1,36 +0,0 @@
|
|||||||
## Renaming ripple(d) to xrpl(d)
|
|
||||||
|
|
||||||
In the initial phases of development of the XRPL, the open source codebase was
|
|
||||||
called "rippled" and it remains with that name even today. Today, over 1000
|
|
||||||
nodes run the application, and code contributions have been submitted by
|
|
||||||
developers located around the world. The XRPL community is larger than ever.
|
|
||||||
In light of the decentralized and diversified nature of XRPL, we will rename any
|
|
||||||
references to `ripple` and `rippled` to `xrpl` and `xrpld`, when appropriate.
|
|
||||||
|
|
||||||
See [here](https://xls.xrpl.org/xls/XLS-0095-rename-rippled-to-xrpld.html) for
|
|
||||||
more information.
|
|
||||||
|
|
||||||
### Scripts
|
|
||||||
|
|
||||||
To facilitate this transition, there will be multiple scripts that developers
|
|
||||||
can run on their own PRs and forks to minimize conflicts. Each script should be
|
|
||||||
run from the repository root.
|
|
||||||
|
|
||||||
1. `.github/scripts/rename/definitions.sh`: This script will rename all
|
|
||||||
definitions, such as include guards, from `RIPPLE_XXX` and `RIPPLED_XXX` to
|
|
||||||
`XRPL_XXX`.
|
|
||||||
2. `.github/scripts/rename/copyright.sh`: This script will remove superflous
|
|
||||||
copyright notices.
|
|
||||||
3. `.github/scripts/rename/cmake.sh`: This script will rename all CMake files
|
|
||||||
from `RippleXXX.cmake` or `RippledXXX.cmake` to `XrplXXX.cmake`, and any
|
|
||||||
references to `ripple` and `rippled` (with or without capital letters) to
|
|
||||||
`xrpl` and `xrpld`, respectively. The name of the binary will remain as-is,
|
|
||||||
and will only be renamed to `xrpld` by a later script.
|
|
||||||
|
|
||||||
You can run all these scripts from the repository root as follows:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
./.github/scripts/rename/definitions.sh .
|
|
||||||
./.github/scripts/rename/copyright.sh .
|
|
||||||
./.github/scripts/rename/cmake.sh .
|
|
||||||
```
|
|
||||||
92
.github/scripts/rename/cmake.sh
vendored
92
.github/scripts/rename/cmake.sh
vendored
@@ -1,92 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit the script as soon as an error occurs.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# On MacOS, ensure that GNU sed and head are installed and available as `gsed`
|
|
||||||
# and `ghead`, respectively.
|
|
||||||
SED_COMMAND=sed
|
|
||||||
HEAD_COMMAND=head
|
|
||||||
if [[ "${OSTYPE}" == 'darwin'* ]]; then
|
|
||||||
if ! command -v gsed &> /dev/null; then
|
|
||||||
echo "Error: gsed is not installed. Please install it using 'brew install gnu-sed'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
SED_COMMAND=gsed
|
|
||||||
if ! command -v ghead &> /dev/null; then
|
|
||||||
echo "Error: ghead is not installed. Please install it using 'brew install coreutils'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
HEAD_COMMAND=ghead
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This script renames CMake files from `RippleXXX.cmake` or `RippledXXX.cmake`
|
|
||||||
# to `XrplXXX.cmake`, and any references to `ripple` and `rippled` (with or
|
|
||||||
# without capital letters) to `xrpl` and `xrpld`, respectively. The name of the
|
|
||||||
# binary will remain as-is, and will only be renamed to `xrpld` in a different
|
|
||||||
# script, but the proto file will be renamed.
|
|
||||||
# Usage: .github/scripts/rename/cmake.sh <repository directory>
|
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
|
||||||
echo "Usage: $0 <repository directory>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DIRECTORY=$1
|
|
||||||
echo "Processing directory: ${DIRECTORY}"
|
|
||||||
if [ ! -d "${DIRECTORY}" ]; then
|
|
||||||
echo "Error: Directory '${DIRECTORY}' does not exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
pushd ${DIRECTORY}
|
|
||||||
|
|
||||||
# Rename the files.
|
|
||||||
find cmake -type f -name 'Rippled*.cmake' -exec bash -c 'mv "${1}" "${1/Rippled/Xrpl}"' - {} \;
|
|
||||||
find cmake -type f -name 'Ripple*.cmake' -exec bash -c 'mv "${1}" "${1/Ripple/Xrpl}"' - {} \;
|
|
||||||
if [ -e cmake/xrpl_add_test.cmake ]; then
|
|
||||||
mv cmake/xrpl_add_test.cmake cmake/XrplAddTest.cmake
|
|
||||||
fi
|
|
||||||
if [ -e include/xrpl/proto/ripple.proto ]; then
|
|
||||||
mv include/xrpl/proto/ripple.proto include/xrpl/proto/xrpl.proto
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rename inside the files.
|
|
||||||
find cmake -type f -name '*.cmake' | while read -r FILE; do
|
|
||||||
echo "Processing file: ${FILE}"
|
|
||||||
${SED_COMMAND} -i 's/Rippled/Xrpld/g' "${FILE}"
|
|
||||||
${SED_COMMAND} -i 's/Ripple/Xrpl/g' "${FILE}"
|
|
||||||
${SED_COMMAND} -i 's/rippled/xrpld/g' "${FILE}"
|
|
||||||
${SED_COMMAND} -i 's/ripple/xrpl/g' "${FILE}"
|
|
||||||
done
|
|
||||||
${SED_COMMAND} -i -E 's/Rippled?/Xrpl/g' CMakeLists.txt
|
|
||||||
${SED_COMMAND} -i 's/ripple/xrpl/g' CMakeLists.txt
|
|
||||||
${SED_COMMAND} -i 's/include(xrpl_add_test)/include(XrplAddTest)/' src/tests/libxrpl/CMakeLists.txt
|
|
||||||
${SED_COMMAND} -i 's/ripple.pb.h/xrpl.pb.h/' include/xrpl/protocol/messages.h
|
|
||||||
${SED_COMMAND} -i 's/ripple.pb.h/xrpl.pb.h/' BUILD.md
|
|
||||||
${SED_COMMAND} -i 's/ripple.pb.h/xrpl.pb.h/' BUILD.md
|
|
||||||
|
|
||||||
# Restore the name of the validator keys repository.
|
|
||||||
${SED_COMMAND} -i 's@xrpl/validator-keys-tool@ripple/validator-keys-tool@' cmake/XrplValidatorKeys.cmake
|
|
||||||
|
|
||||||
# Ensure the name of the binary and config remain 'rippled' for now.
|
|
||||||
${SED_COMMAND} -i -E 's/xrpld(-example)?\.cfg/rippled\1.cfg/g' cmake/XrplInstall.cmake
|
|
||||||
if grep -q '"xrpld"' cmake/XrplCore.cmake; then
|
|
||||||
# The script has been rerun, so just restore the name of the binary.
|
|
||||||
${SED_COMMAND} -i 's/"xrpld"/"rippled"/' cmake/XrplCore.cmake
|
|
||||||
elif ! grep -q '"rippled"' cmake/XrplCore.cmake; then
|
|
||||||
${HEAD_COMMAND} -n -1 cmake/XrplCore.cmake > cmake.tmp
|
|
||||||
echo ' # For the time being, we will keep the name of the binary as it was.' >> cmake.tmp
|
|
||||||
echo ' set_target_properties(xrpld PROPERTIES OUTPUT_NAME "rippled")' >> cmake.tmp
|
|
||||||
tail -1 cmake/XrplCore.cmake >> cmake.tmp
|
|
||||||
mv cmake.tmp cmake/XrplCore.cmake
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore the symlink from 'xrpld' to 'rippled'.
|
|
||||||
${SED_COMMAND} -i -E 's@create_symbolic_link\(xrpld@create_symbolic_link(rippled@' cmake/XrplInstall.cmake
|
|
||||||
|
|
||||||
# Remove the symlink that previously pointed from 'ripple' to 'xrpl' but now is
|
|
||||||
# no longer needed.
|
|
||||||
${SED_COMMAND} -z -i -E 's@install\(CODE.+CMAKE_INSTALL_INCLUDEDIR}/xrpl\)\n"\)\n+@@' cmake/XrplInstall.cmake
|
|
||||||
|
|
||||||
popd
|
|
||||||
echo "Renaming complete."
|
|
||||||
106
.github/scripts/rename/copyright.sh
vendored
106
.github/scripts/rename/copyright.sh
vendored
@@ -1,106 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit the script as soon as an error occurs.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# On MacOS, ensure that GNU sed is installed and available as `gsed`.
|
|
||||||
SED_COMMAND=sed
|
|
||||||
if [[ "${OSTYPE}" == 'darwin'* ]]; then
|
|
||||||
if ! command -v gsed &> /dev/null; then
|
|
||||||
echo "Error: gsed is not installed. Please install it using 'brew install gnu-sed'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
SED_COMMAND=gsed
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This script removes superfluous copyright notices in source and header files
|
|
||||||
# in this project. Specifically, it removes all notices referencing Ripple,
|
|
||||||
# XRPLF, and certain individual contributors upon mutual agreement, so the one
|
|
||||||
# in the LICENSE.md file applies throughout. Copyright notices referencing
|
|
||||||
# external contributions, e.g. from Bitcoin, remain as-is.
|
|
||||||
# Usage: .github/scripts/rename/copyright.sh <repository directory>
|
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
|
||||||
echo "Usage: $0 <repository directory>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DIRECTORY=$1
|
|
||||||
echo "Processing directory: ${DIRECTORY}"
|
|
||||||
if [ ! -d "${DIRECTORY}" ]; then
|
|
||||||
echo "Error: Directory '${DIRECTORY}' does not exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
pushd ${DIRECTORY}
|
|
||||||
|
|
||||||
# Prevent sed and echo from removing newlines and tabs in string literals by
|
|
||||||
# temporarily replacing them with placeholders. This only affects one file.
|
|
||||||
PLACEHOLDER_NEWLINE="__NEWLINE__"
|
|
||||||
PLACEHOLDER_TAB="__TAB__"
|
|
||||||
${SED_COMMAND} -i -E "s@\\\n@${PLACEHOLDER_NEWLINE}@g" src/test/rpc/ValidatorInfo_test.cpp
|
|
||||||
${SED_COMMAND} -i -E "s@\\\t@${PLACEHOLDER_TAB}@g" src/test/rpc/ValidatorInfo_test.cpp
|
|
||||||
|
|
||||||
# Process the include/ and src/ directories.
|
|
||||||
DIRECTORIES=("include" "src")
|
|
||||||
for DIRECTORY in "${DIRECTORIES[@]}"; do
|
|
||||||
echo "Processing directory: ${DIRECTORY}"
|
|
||||||
|
|
||||||
find "${DIRECTORY}" -type f \( -name "*.h" -o -name "*.hpp" -o -name "*.ipp" -o -name "*.cpp" -o -name "*.macro" \) | while read -r FILE; do
|
|
||||||
echo "Processing file: ${FILE}"
|
|
||||||
# Handle the cases where the copyright notice is enclosed in /* ... */
|
|
||||||
# and usually surrounded by //---- and //======.
|
|
||||||
${SED_COMMAND} -z -i -E 's@^//-------+\n+@@' "${FILE}"
|
|
||||||
${SED_COMMAND} -z -i -E 's@^.*Copyright.+(Ripple|Bougalis|Falco|Hinnant|Null|Ritchford|XRPLF).+PERFORMANCE OF THIS SOFTWARE\.\n\*/\n+@@' "${FILE}"
|
|
||||||
${SED_COMMAND} -z -i -E 's@^//=======+\n+@@' "${FILE}"
|
|
||||||
|
|
||||||
# Handle the cases where the copyright notice is commented out with //.
|
|
||||||
${SED_COMMAND} -z -i -E 's@^//\n// Copyright.+Falco \(vinnie dot falco at gmail dot com\)\n//\n+@@' "${FILE}"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
# Restore copyright notices that were removed from specific files, without
|
|
||||||
# restoring the verbiage that is already present in LICENSE.md. Ensure that if
|
|
||||||
# the script is run multiple times, duplicate notices are not added.
|
|
||||||
if ! grep -q 'Raw Material Software' include/xrpl/beast/core/CurrentThreadName.h; then
|
|
||||||
echo -e "// Portions of this file are from JUCE (http://www.juce.com).\n// Copyright (c) 2013 - Raw Material Software Ltd.\n// Please visit http://www.juce.com\n\n$(cat include/xrpl/beast/core/CurrentThreadName.h)" > include/xrpl/beast/core/CurrentThreadName.h
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/test/app/NetworkID_test.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2020 Dev Null Productions\n\n$(cat src/test/app/NetworkID_test.cpp)" > src/test/app/NetworkID_test.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/test/app/tx/apply_test.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2020 Dev Null Productions\n\n$(cat src/test/app/tx/apply_test.cpp)" > src/test/app/tx/apply_test.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/test/app/NetworkOPs_test.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2020 Dev Null Productions\n\n$(cat src/test/app/NetworkOPs_test.cpp)" > src/test/app/NetworkOPs_test.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/test/rpc/ManifestRPC_test.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2020 Dev Null Productions\n\n$(cat src/test/rpc/ManifestRPC_test.cpp)" > src/test/rpc/ManifestRPC_test.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/test/rpc/ValidatorInfo_test.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2020 Dev Null Productions\n\n$(cat src/test/rpc/ValidatorInfo_test.cpp)" > src/test/rpc/ValidatorInfo_test.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/xrpld/rpc/handlers/DoManifest.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2019 Dev Null Productions\n\n$(cat src/xrpld/rpc/handlers/DoManifest.cpp)" > src/xrpld/rpc/handlers/DoManifest.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Dev Null' src/xrpld/rpc/handlers/ValidatorInfo.cpp; then
|
|
||||||
echo -e "// Copyright (c) 2019 Dev Null Productions\n\n$(cat src/xrpld/rpc/handlers/ValidatorInfo.cpp)" > src/xrpld/rpc/handlers/ValidatorInfo.cpp
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Bougalis' include/xrpl/basics/SlabAllocator.h; then
|
|
||||||
echo -e "// Copyright (c) 2022, Nikolaos D. Bougalis <nikb@bougalis.net>\n\n$(cat include/xrpl/basics/SlabAllocator.h)" > include/xrpl/basics/SlabAllocator.h
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Bougalis' include/xrpl/basics/spinlock.h; then
|
|
||||||
echo -e "// Copyright (c) 2022, Nikolaos D. Bougalis <nikb@bougalis.net>\n\n$(cat include/xrpl/basics/spinlock.h)" > include/xrpl/basics/spinlock.h
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Bougalis' include/xrpl/basics/tagged_integer.h; then
|
|
||||||
echo -e "// Copyright (c) 2014, Nikolaos D. Bougalis <nikb@bougalis.net>\n\n$(cat include/xrpl/basics/tagged_integer.h)" > include/xrpl/basics/tagged_integer.h
|
|
||||||
fi
|
|
||||||
if ! grep -q 'Ritchford' include/xrpl/beast/utility/Zero.h; then
|
|
||||||
echo -e "// Copyright (c) 2014, Tom Ritchford <tom@swirly.com>\n\n$(cat include/xrpl/beast/utility/Zero.h)" > include/xrpl/beast/utility/Zero.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore newlines and tabs in string literals in the affected file.
|
|
||||||
${SED_COMMAND} -i -E "s@${PLACEHOLDER_NEWLINE}@\\\n@g" src/test/rpc/ValidatorInfo_test.cpp
|
|
||||||
${SED_COMMAND} -i -E "s@${PLACEHOLDER_TAB}@\\\t@g" src/test/rpc/ValidatorInfo_test.cpp
|
|
||||||
|
|
||||||
popd
|
|
||||||
echo "Removal complete."
|
|
||||||
42
.github/scripts/rename/definitions.sh
vendored
42
.github/scripts/rename/definitions.sh
vendored
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit the script as soon as an error occurs.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# On MacOS, ensure that GNU sed is installed and available as `gsed`.
|
|
||||||
SED_COMMAND=sed
|
|
||||||
if [[ "${OSTYPE}" == 'darwin'* ]]; then
|
|
||||||
if ! command -v gsed &> /dev/null; then
|
|
||||||
echo "Error: gsed is not installed. Please install it using 'brew install gnu-sed'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
SED_COMMAND=gsed
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This script renames definitions, such as include guards, in this project.
|
|
||||||
# Specifically, it renames "RIPPLED_XXX" and "RIPPLE_XXX" to "XRPL_XXX" by
|
|
||||||
# scanning all cmake, header, and source files in the specified directory and
|
|
||||||
# its subdirectories.
|
|
||||||
# Usage: .github/scripts/rename/definitions.sh <repository directory>
|
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
|
||||||
echo "Usage: $0 <repository directory>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DIRECTORY=$1
|
|
||||||
echo "Processing directory: ${DIRECTORY}"
|
|
||||||
if [ ! -d "${DIRECTORY}" ]; then
|
|
||||||
echo "Error: Directory '${DIRECTORY}' does not exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
find "${DIRECTORY}" -type f \( -name "*.h" -o -name "*.hpp" -o -name "*.ipp" -o -name "*.cpp" \) | while read -r FILE; do
|
|
||||||
echo "Processing file: ${FILE}"
|
|
||||||
${SED_COMMAND} -i -E 's@#(define|endif|if|ifdef|ifndef)(.*)(RIPPLED_|RIPPLE_)([A-Z0-9_]+)@#\1\2XRPL_\4@g' "${FILE}"
|
|
||||||
done
|
|
||||||
find "${DIRECTORY}" -type f \( -name "*.cmake" -o -name "*.txt" \) | while read -r FILE; do
|
|
||||||
echo "Processing file: ${FILE}"
|
|
||||||
${SED_COMMAND} -i -E 's@(RIPPLED_|RIPPLE_)([A-Z0-9_]+)@XRPL_\2@g' "${FILE}"
|
|
||||||
done
|
|
||||||
echo "Renaming complete."
|
|
||||||
158
.github/scripts/strategy-matrix/generate.py
vendored
158
.github/scripts/strategy-matrix/generate.py
vendored
@@ -57,32 +57,32 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
if os['distro_name'] == 'debian':
|
if os['distro_name'] == 'debian':
|
||||||
skip = True
|
skip = True
|
||||||
if os['distro_version'] == 'bookworm':
|
if os['distro_version'] == 'bookworm':
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-13' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-13' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
cmake_args = f'-DUNIT_TEST_REFERENCE_FEE=500 {cmake_args}'
|
cmake_args = f'-DUNIT_TEST_REFERENCE_FEE=500 {cmake_args}'
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-15' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-15' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-16' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/arm64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-16' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/arm64':
|
||||||
cmake_args = f'-Dvoidstar=ON {cmake_args}'
|
cmake_args = f'-Dvoidstar=ON {cmake_args}'
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-17' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-17' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
cmake_args = f'-DUNIT_TEST_REFERENCE_FEE=1000 {cmake_args}'
|
cmake_args = f'-DUNIT_TEST_REFERENCE_FEE=1000 {cmake_args}'
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-20' and build_type == 'Debug' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-20' and build_type == 'Debug' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
if skip:
|
if skip:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# RHEL:
|
# RHEL:
|
||||||
# - 9 using GCC 12: Debug and Unity on linux/amd64.
|
# - 9.4 using GCC 12: Debug and Unity on linux/amd64.
|
||||||
# - 10 using Clang: Release and no Unity on linux/amd64.
|
# - 9.6 using Clang: Release and no Unity on linux/amd64.
|
||||||
if os['distro_name'] == 'rhel':
|
if os['distro_name'] == 'rhel':
|
||||||
skip = True
|
skip = True
|
||||||
if os['distro_version'] == '9':
|
if os['distro_version'] == '9.4':
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-12' and build_type == 'Debug' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-12' and build_type == 'Debug' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
elif os['distro_version'] == '10':
|
elif os['distro_version'] == '9.6':
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-any' and build_type == 'Release' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-any' and build_type == 'Release' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
if skip:
|
if skip:
|
||||||
continue
|
continue
|
||||||
@@ -95,14 +95,14 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
if os['distro_name'] == 'ubuntu':
|
if os['distro_name'] == 'ubuntu':
|
||||||
skip = True
|
skip = True
|
||||||
if os['distro_version'] == 'jammy':
|
if os['distro_version'] == 'jammy':
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-12' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/arm64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-12' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/arm64':
|
||||||
skip = False
|
skip = False
|
||||||
elif os['distro_version'] == 'noble':
|
elif os['distro_version'] == 'noble':
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-14' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-14' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-18' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-18' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
skip = False
|
skip = False
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'clang-19' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/arm64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-19' and build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'linux/arm64':
|
||||||
skip = False
|
skip = False
|
||||||
if skip:
|
if skip:
|
||||||
continue
|
continue
|
||||||
@@ -117,9 +117,10 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
if os['distro_name'] == 'windows' and not (build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'windows/amd64'):
|
if os['distro_name'] == 'windows' and not (build_type == 'Release' and '-Dunity=ON' in cmake_args and architecture['platform'] == 'windows/amd64'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
||||||
# Additional CMake arguments.
|
# Additional CMake arguments.
|
||||||
cmake_args = f'{cmake_args} -Dtests=ON -Dwerr=ON -Dxrpld=ON'
|
cmake_args = f'{cmake_args} -Dtests=ON -Dwerr=ON -Dxrpld=ON'
|
||||||
if not f'{os["compiler_name"]}-{os["compiler_version"]}' in ['gcc-12', 'clang-16']:
|
if not f'{os['compiler_name']}-{os['compiler_version']}' in ['gcc-12', 'clang-16']:
|
||||||
cmake_args = f'{cmake_args} -Dwextra=ON'
|
cmake_args = f'{cmake_args} -Dwextra=ON'
|
||||||
if build_type == 'Release':
|
if build_type == 'Release':
|
||||||
cmake_args = f'{cmake_args} -Dassert=ON'
|
cmake_args = f'{cmake_args} -Dassert=ON'
|
||||||
@@ -129,16 +130,16 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
if os['distro_name'] == 'rhel' and architecture['platform'] == 'linux/arm64':
|
if os['distro_name'] == 'rhel' and architecture['platform'] == 'linux/arm64':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# We skip all clang 20+ on arm64 due to Boost build error.
|
# We skip all clang-20 on arm64 due to boost 1.86 build error
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' in ['clang-20', 'clang-21'] and architecture['platform'] == 'linux/arm64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'clang-20' and architecture['platform'] == 'linux/arm64':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cxx_flags = '-g'
|
# Enable code coverage for Debian Bookworm using GCC 15 in Debug and no
|
||||||
# Enable code coverage for Debian Bookworm using GCC 14 in Debug and no
|
|
||||||
# Unity on linux/amd64
|
# Unity on linux/amd64
|
||||||
if f'{os["compiler_name"]}-{os["compiler_version"]}' == 'gcc-14' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-15' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
|
||||||
cmake_args = f'-Dcoverage=ON -Dcoverage_format=xml -DCODE_COVERAGE_VERBOSE=ON -DCMAKE_C_FLAGS=-O0 {cmake_args}'
|
cmake_args = f'-Dcoverage=ON -Dcoverage_format=xml -DCODE_COVERAGE_VERBOSE=ON -DCMAKE_C_FLAGS=-O0 -DCMAKE_CXX_FLAGS=-O0 {cmake_args}'
|
||||||
cxx_flags = f'-O0 {cxx_flags}'
|
cmake_target = 'coverage'
|
||||||
|
build_only = True
|
||||||
|
|
||||||
# Generate a unique name for the configuration, e.g. macos-arm64-debug
|
# Generate a unique name for the configuration, e.g. macos-arm64-debug
|
||||||
# or debian-bookworm-gcc-12-amd64-release-unity.
|
# or debian-bookworm-gcc-12-amd64-release-unity.
|
||||||
@@ -149,7 +150,7 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
config_name += f'-{n}'
|
config_name += f'-{n}'
|
||||||
if (n := os['compiler_version']) != '':
|
if (n := os['compiler_version']) != '':
|
||||||
config_name += f'-{n}'
|
config_name += f'-{n}'
|
||||||
config_name += f'-{architecture["platform"][architecture["platform"].find("/")+1:]}'
|
config_name += f'-{architecture['platform'][architecture['platform'].find('/')+1:]}'
|
||||||
config_name += f'-{build_type.lower()}'
|
config_name += f'-{build_type.lower()}'
|
||||||
if '-Dunity=ON' in cmake_args:
|
if '-Dunity=ON' in cmake_args:
|
||||||
config_name += '-unity'
|
config_name += '-unity'
|
||||||
@@ -157,106 +158,15 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
|||||||
# Add the configuration to the list, with the most unique fields first,
|
# Add the configuration to the list, with the most unique fields first,
|
||||||
# so that they are easier to identify in the GitHub Actions UI, as long
|
# so that they are easier to identify in the GitHub Actions UI, as long
|
||||||
# names get truncated.
|
# names get truncated.
|
||||||
# Add Address and Thread (both coupled with UB) sanitizers when the distro is bookworm.
|
configurations.append({
|
||||||
if os['distro_version'] == 'bookworm' and f'{os["compiler_name"]}-{os["compiler_version"]}' in {'gcc-15', 'clang-20'}:
|
'config_name': config_name,
|
||||||
extra_warning_flags = ''
|
'cmake_args': cmake_args,
|
||||||
linker_relocation_flags = ''
|
'cmake_target': cmake_target,
|
||||||
linker_flags = ''
|
'build_only': build_only,
|
||||||
|
'build_type': build_type,
|
||||||
# Use large code model to avoid relocation errors with large binaries
|
'os': os,
|
||||||
# Only for x86-64 (amd64) - ARM64 doesn't support -mcmodel=large
|
'architecture': architecture,
|
||||||
if architecture['platform'] == 'linux/amd64' and os['compiler_name'] == 'gcc':
|
})
|
||||||
# Add -mcmodel=large and -fPIC to both compiler AND linker flags
|
|
||||||
# This is needed because sanitizers create very large binaries
|
|
||||||
# -fPIC enables position independent code to avoid relocation range issues
|
|
||||||
# large model removes the 2GB limitation that medium model has
|
|
||||||
cxx_flags += ' -mcmodel=large -fPIC -fno-pie'
|
|
||||||
linker_relocation_flags+=' -mcmodel=large -fPIC -fno-pie'
|
|
||||||
|
|
||||||
# Create default sanitizer flags
|
|
||||||
sanitizers_flags = 'undefined,float-divide-by-zero'
|
|
||||||
|
|
||||||
if os['compiler_name'] == 'gcc':
|
|
||||||
sanitizers_flags = f'{sanitizers_flags},signed-integer-overflow'
|
|
||||||
# Suppress false positive warnings in GCC with stringop-overflow
|
|
||||||
extra_warning_flags += ' -Wno-stringop-overflow'
|
|
||||||
# Disable mold, gold and lld linkers.
|
|
||||||
# Use default linker (bfd/ld) which is more lenient with mixed code models
|
|
||||||
cmake_args += ' -Duse_mold=OFF -Duse_gold=OFF -Duse_lld=OFF'
|
|
||||||
# Add linker flags for Sanitizers
|
|
||||||
linker_flags += f' -DCMAKE_EXE_LINKER_FLAGS="{linker_relocation_flags} -fsanitize=address,{sanitizers_flags}"'
|
|
||||||
linker_flags += f' -DCMAKE_SHARED_LINKER_FLAGS="{linker_relocation_flags} -fsanitize=address,{sanitizers_flags}"'
|
|
||||||
elif os['compiler_name'] == 'clang':
|
|
||||||
sanitizers_flags = f'{sanitizers_flags},signed-integer-overflow,unsigned-integer-overflow'
|
|
||||||
linker_flags += f' -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,{sanitizers_flags}"'
|
|
||||||
linker_flags += f' -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=address,{sanitizers_flags}"'
|
|
||||||
|
|
||||||
# Sanitizers recommend minimum of -O1 for reasonable performance
|
|
||||||
if "-O0" in cxx_flags:
|
|
||||||
cxx_flags = cxx_flags.replace("-O0", "-O1")
|
|
||||||
else:
|
|
||||||
cxx_flags += " -O1"
|
|
||||||
|
|
||||||
# First create config for asan
|
|
||||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=address,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags} {extra_warning_flags}" {linker_flags}'
|
|
||||||
|
|
||||||
# Add config with asan
|
|
||||||
configurations.append({
|
|
||||||
'config_name': config_name + "_asan",
|
|
||||||
'cmake_args': cmake_args_flags,
|
|
||||||
'cmake_target': cmake_target,
|
|
||||||
'build_only': build_only,
|
|
||||||
'build_type': build_type,
|
|
||||||
'os': os,
|
|
||||||
'architecture': architecture,
|
|
||||||
'sanitizers': 'Address'
|
|
||||||
})
|
|
||||||
|
|
||||||
linker_flags = ''
|
|
||||||
# Update configs for tsan
|
|
||||||
# gcc doesn't supports atomic_thread_fence with tsan. Suppress warnings.
|
|
||||||
# Also tsan doesn't work well with mcmode=large and bfd linker
|
|
||||||
if os['compiler_name'] == 'gcc':
|
|
||||||
extra_warning_flags += ' -Wno-tsan'
|
|
||||||
cxx_flags = cxx_flags.replace('-mcmodel=large', '-mcmodel=medium')
|
|
||||||
linker_relocation_flags = linker_relocation_flags.replace('-mcmodel=large', '-mcmodel=medium')
|
|
||||||
# Add linker flags for Sanitizers
|
|
||||||
linker_flags += f' -DCMAKE_EXE_LINKER_FLAGS="{linker_relocation_flags} -fsanitize=thread,{sanitizers_flags}"'
|
|
||||||
linker_flags += f' -DCMAKE_SHARED_LINKER_FLAGS="{linker_relocation_flags} -fsanitize=thread,{sanitizers_flags}"'
|
|
||||||
elif os['compiler_name'] == 'clang':
|
|
||||||
cxx_flags += ' -fsanitize-blacklist=$GITHUB_WORKSPACE/external/sanitizer-blacklist.txt'
|
|
||||||
linker_flags += f' -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread,{sanitizers_flags}"'
|
|
||||||
linker_flags += f' -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread,{sanitizers_flags}"'
|
|
||||||
|
|
||||||
# Note: We use $GITHUB_WORKSPACE environment variable which will be expanded by the shell
|
|
||||||
# before CMake processes it. This ensures the compiler receives an absolute path.
|
|
||||||
# CMAKE_SOURCE_DIR won't work here because it's inside CMAKE_CXX_FLAGS string.
|
|
||||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=thread,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags} {extra_warning_flags}" {linker_flags}'
|
|
||||||
|
|
||||||
configurations.append({
|
|
||||||
'config_name': config_name+ "_tsan",
|
|
||||||
'cmake_args': cmake_args_flags,
|
|
||||||
'cmake_target': cmake_target,
|
|
||||||
'build_only': build_only,
|
|
||||||
'build_type': build_type,
|
|
||||||
'os': os,
|
|
||||||
'architecture': architecture,
|
|
||||||
'sanitizers': 'Thread'
|
|
||||||
})
|
|
||||||
else:
|
|
||||||
if cxx_flags:
|
|
||||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS={cxx_flags}'
|
|
||||||
else:
|
|
||||||
cmake_args_flags = f'{cmake_args}'
|
|
||||||
configurations.append({
|
|
||||||
'config_name': config_name,
|
|
||||||
'cmake_args': cmake_args_flags,
|
|
||||||
'cmake_target': cmake_target,
|
|
||||||
'build_only': build_only,
|
|
||||||
'build_type': build_type,
|
|
||||||
'os': os,
|
|
||||||
'architecture': architecture
|
|
||||||
})
|
|
||||||
|
|
||||||
return configurations
|
return configurations
|
||||||
|
|
||||||
|
|||||||
150
.github/scripts/strategy-matrix/linux.json
vendored
150
.github/scripts/strategy-matrix/linux.json
vendored
@@ -14,197 +14,139 @@
|
|||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "12",
|
"compiler_version": "12"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "13",
|
"compiler_version": "13"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "14",
|
"compiler_version": "14"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "15",
|
"compiler_version": "15"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "16",
|
"compiler_version": "16"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "17",
|
"compiler_version": "17"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "18",
|
"compiler_version": "18"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "19",
|
"compiler_version": "19"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "debian",
|
||||||
"distro_version": "bookworm",
|
"distro_version": "bookworm",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "20",
|
"compiler_version": "20"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "rhel",
|
||||||
"distro_version": "trixie",
|
"distro_version": "9.4",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "14",
|
"compiler_version": "12"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "rhel",
|
||||||
"distro_version": "trixie",
|
"distro_version": "9.4",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "15",
|
"compiler_version": "13"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "rhel",
|
||||||
"distro_version": "trixie",
|
"distro_version": "9.4",
|
||||||
|
"compiler_name": "gcc",
|
||||||
|
"compiler_version": "14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"distro_name": "rhel",
|
||||||
|
"distro_version": "9.6",
|
||||||
|
"compiler_name": "gcc",
|
||||||
|
"compiler_version": "13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"distro_name": "rhel",
|
||||||
|
"distro_version": "9.6",
|
||||||
|
"compiler_name": "gcc",
|
||||||
|
"compiler_version": "14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"distro_name": "rhel",
|
||||||
|
"distro_version": "9.4",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "20",
|
"compiler_version": "any"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "debian",
|
"distro_name": "rhel",
|
||||||
"distro_version": "trixie",
|
"distro_version": "9.6",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "21",
|
"compiler_version": "any"
|
||||||
"image_sha": "0525eae"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "8",
|
|
||||||
"compiler_name": "gcc",
|
|
||||||
"compiler_version": "14",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "8",
|
|
||||||
"compiler_name": "clang",
|
|
||||||
"compiler_version": "any",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "9",
|
|
||||||
"compiler_name": "gcc",
|
|
||||||
"compiler_version": "12",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "9",
|
|
||||||
"compiler_name": "gcc",
|
|
||||||
"compiler_version": "13",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "9",
|
|
||||||
"compiler_name": "gcc",
|
|
||||||
"compiler_version": "14",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "9",
|
|
||||||
"compiler_name": "clang",
|
|
||||||
"compiler_version": "any",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "10",
|
|
||||||
"compiler_name": "gcc",
|
|
||||||
"compiler_version": "14",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"distro_name": "rhel",
|
|
||||||
"distro_version": "10",
|
|
||||||
"compiler_name": "clang",
|
|
||||||
"compiler_version": "any",
|
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "jammy",
|
"distro_version": "jammy",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "12",
|
"compiler_version": "12"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "13",
|
"compiler_version": "13"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "gcc",
|
"compiler_name": "gcc",
|
||||||
"compiler_version": "14",
|
"compiler_version": "14"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "16",
|
"compiler_version": "16"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "17",
|
"compiler_version": "17"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "18",
|
"compiler_version": "18"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"distro_name": "ubuntu",
|
"distro_name": "ubuntu",
|
||||||
"distro_version": "noble",
|
"distro_version": "noble",
|
||||||
"compiler_name": "clang",
|
"compiler_name": "clang",
|
||||||
"compiler_version": "19",
|
"compiler_version": "19"
|
||||||
"image_sha": "e1782cd"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build_type": ["Debug", "Release"],
|
"build_type": ["Debug", "Release"],
|
||||||
|
|||||||
3
.github/scripts/strategy-matrix/macos.json
vendored
3
.github/scripts/strategy-matrix/macos.json
vendored
@@ -10,8 +10,7 @@
|
|||||||
"distro_name": "macos",
|
"distro_name": "macos",
|
||||||
"distro_version": "",
|
"distro_version": "",
|
||||||
"compiler_name": "",
|
"compiler_name": "",
|
||||||
"compiler_version": "",
|
"compiler_version": ""
|
||||||
"image_sha": ""
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build_type": ["Debug", "Release"],
|
"build_type": ["Debug", "Release"],
|
||||||
|
|||||||
3
.github/scripts/strategy-matrix/windows.json
vendored
3
.github/scripts/strategy-matrix/windows.json
vendored
@@ -10,8 +10,7 @@
|
|||||||
"distro_name": "windows",
|
"distro_name": "windows",
|
||||||
"distro_version": "",
|
"distro_version": "",
|
||||||
"compiler_name": "",
|
"compiler_name": "",
|
||||||
"compiler_version": "",
|
"compiler_version": ""
|
||||||
"image_sha": ""
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build_type": ["Debug", "Release"],
|
"build_type": ["Debug", "Release"],
|
||||||
|
|||||||
8
.github/workflows/on-pr.yml
vendored
8
.github/workflows/on-pr.yml
vendored
@@ -50,9 +50,7 @@ jobs:
|
|||||||
files: |
|
files: |
|
||||||
# These paths are unique to `on-pr.yml`.
|
# These paths are unique to `on-pr.yml`.
|
||||||
.github/scripts/levelization/**
|
.github/scripts/levelization/**
|
||||||
.github/scripts/rename/**
|
|
||||||
.github/workflows/reusable-check-levelization.yml
|
.github/workflows/reusable-check-levelization.yml
|
||||||
.github/workflows/reusable-check-rename.yml
|
|
||||||
.github/workflows/reusable-notify-clio.yml
|
.github/workflows/reusable-notify-clio.yml
|
||||||
.github/workflows/on-pr.yml
|
.github/workflows/on-pr.yml
|
||||||
|
|
||||||
@@ -100,17 +98,11 @@ jobs:
|
|||||||
if: ${{ needs.should-run.outputs.go == 'true' }}
|
if: ${{ needs.should-run.outputs.go == 'true' }}
|
||||||
uses: ./.github/workflows/reusable-check-levelization.yml
|
uses: ./.github/workflows/reusable-check-levelization.yml
|
||||||
|
|
||||||
check-rename:
|
|
||||||
needs: should-run
|
|
||||||
if: ${{ needs.should-run.outputs.go == 'true' }}
|
|
||||||
uses: ./.github/workflows/reusable-check-rename.yml
|
|
||||||
|
|
||||||
build-test:
|
build-test:
|
||||||
needs: should-run
|
needs: should-run
|
||||||
if: ${{ needs.should-run.outputs.go == 'true' }}
|
if: ${{ needs.should-run.outputs.go == 'true' }}
|
||||||
uses: ./.github/workflows/reusable-build-test.yml
|
uses: ./.github/workflows/reusable-build-test.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: [linux, macos, windows]
|
os: [linux, macos, windows]
|
||||||
with:
|
with:
|
||||||
|
|||||||
14
.github/workflows/on-trigger.yml
vendored
14
.github/workflows/on-trigger.yml
vendored
@@ -9,9 +9,9 @@ name: Trigger
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- "develop"
|
- develop
|
||||||
- "release*"
|
- release
|
||||||
- "master"
|
- master
|
||||||
paths:
|
paths:
|
||||||
# These paths are unique to `on-trigger.yml`.
|
# These paths are unique to `on-trigger.yml`.
|
||||||
- ".github/workflows/reusable-check-missing-commits.yml"
|
- ".github/workflows/reusable-check-missing-commits.yml"
|
||||||
@@ -50,12 +50,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
# When a PR is merged into the develop branch it will be assigned a unique
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
# group identifier, so execution will continue even if another PR is merged
|
|
||||||
# while it is still running. In all other cases the group identifier is shared
|
|
||||||
# per branch, so that any in-progress runs are cancelled when a new commit is
|
|
||||||
# pushed.
|
|
||||||
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' && github.sha || github.ref }}
|
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
@@ -70,7 +65,6 @@ jobs:
|
|||||||
build-test:
|
build-test:
|
||||||
uses: ./.github/workflows/reusable-build-test.yml
|
uses: ./.github/workflows/reusable-build-test.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: ${{ github.event_name == 'merge_group' }}
|
|
||||||
matrix:
|
matrix:
|
||||||
os: [linux, macos, windows]
|
os: [linux, macos, windows]
|
||||||
with:
|
with:
|
||||||
|
|||||||
4
.github/workflows/pre-commit.yml
vendored
4
.github/workflows/pre-commit.yml
vendored
@@ -9,7 +9,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
# Call the workflow in the XRPLF/actions repo that runs the pre-commit hooks.
|
# Call the workflow in the XRPLF/actions repo that runs the pre-commit hooks.
|
||||||
run-hooks:
|
run-hooks:
|
||||||
uses: XRPLF/actions/.github/workflows/pre-commit.yml@34790936fae4c6c751f62ec8c06696f9c1a5753a
|
uses: XRPLF/actions/.github/workflows/pre-commit.yml@af1b0f0d764cda2e5435f5ac97b240d4bd4d95d3
|
||||||
with:
|
with:
|
||||||
runs_on: ubuntu-latest
|
runs_on: ubuntu-latest
|
||||||
container: '{ "image": "ghcr.io/xrplf/ci/tools-rippled-pre-commit:sha-a8c7be1" }'
|
container: '{ "image": "ghcr.io/xrplf/ci/tools-rippled-pre-commit:sha-d1496b8" }'
|
||||||
|
|||||||
20
.github/workflows/publish-docs.yml
vendored
20
.github/workflows/publish-docs.yml
vendored
@@ -23,24 +23,16 @@ defaults:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
BUILD_DIR: .build
|
BUILD_DIR: .build
|
||||||
NPROC_SUBTRACT: 2
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/xrplf/ci/tools-rippled-documentation:sha-a8c7be1
|
container: ghcr.io/xrplf/ci/tools-rippled-documentation:sha-d1496b8
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||||
|
|
||||||
- name: Get number of processors
|
|
||||||
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
|
|
||||||
id: nproc
|
|
||||||
with:
|
|
||||||
subtract: ${{ env.NPROC_SUBTRACT }}
|
|
||||||
|
|
||||||
- name: Check configuration
|
- name: Check configuration
|
||||||
run: |
|
run: |
|
||||||
echo 'Checking path.'
|
echo 'Checking path.'
|
||||||
@@ -54,16 +46,12 @@ jobs:
|
|||||||
|
|
||||||
echo 'Checking Doxygen version.'
|
echo 'Checking Doxygen version.'
|
||||||
doxygen --version
|
doxygen --version
|
||||||
|
|
||||||
- name: Build documentation
|
- name: Build documentation
|
||||||
env:
|
|
||||||
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
run: |
|
run: |
|
||||||
mkdir -p "${BUILD_DIR}"
|
mkdir -p ${{ env.BUILD_DIR }}
|
||||||
cd "${BUILD_DIR}"
|
cd ${{ env.BUILD_DIR }}
|
||||||
cmake -Donly_docs=ON ..
|
cmake -Donly_docs=ON ..
|
||||||
cmake --build . --target docs --parallel ${BUILD_NPROC}
|
cmake --build . --target docs --parallel $(nproc)
|
||||||
|
|
||||||
- name: Publish documentation
|
- name: Publish documentation
|
||||||
if: ${{ github.ref_type == 'branch' && github.ref_name == github.event.repository.default_branch }}
|
if: ${{ github.ref_type == 'branch' && github.ref_name == github.event.repository.default_branch }}
|
||||||
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
|
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
|
||||||
|
|||||||
200
.github/workflows/reusable-build-test-config.yml
vendored
200
.github/workflows/reusable-build-test-config.yml
vendored
@@ -7,23 +7,19 @@ on:
|
|||||||
description: "The directory where to build."
|
description: "The directory where to build."
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
build_only:
|
build_only:
|
||||||
description: 'Whether to only build or to build and test the code ("true", "false").'
|
description: 'Whether to only build or to build and test the code ("true", "false").'
|
||||||
required: true
|
required: true
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
build_type:
|
build_type:
|
||||||
description: 'The build type to use ("Debug", "Release").'
|
description: 'The build type to use ("Debug", "Release").'
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
cmake_args:
|
cmake_args:
|
||||||
description: "Additional arguments to pass to CMake."
|
description: "Additional arguments to pass to CMake."
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: ""
|
default: ""
|
||||||
|
|
||||||
cmake_target:
|
cmake_target:
|
||||||
description: "The CMake target to build."
|
description: "The CMake target to build."
|
||||||
type: string
|
type: string
|
||||||
@@ -33,7 +29,6 @@ on:
|
|||||||
description: Runner to run the job on as a JSON string
|
description: Runner to run the job on as a JSON string
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
image:
|
image:
|
||||||
description: "The image to run in (leave empty to run natively)"
|
description: "The image to run in (leave empty to run natively)"
|
||||||
required: true
|
required: true
|
||||||
@@ -44,184 +39,31 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
nproc_subtract:
|
|
||||||
description: "The number of processors to subtract when calculating parallelism."
|
|
||||||
required: false
|
|
||||||
type: number
|
|
||||||
default: 2
|
|
||||||
|
|
||||||
sanitizers:
|
|
||||||
description: "The sanitizers to enable ('Address+UndefinedBehaviour' or 'Thread+UndefinedBehaviour')."
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: "None"
|
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
CODECOV_TOKEN:
|
CODECOV_TOKEN:
|
||||||
description: "The Codecov token to use for uploading coverage reports."
|
description: "The Codecov token to use for uploading coverage reports."
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-test:
|
build:
|
||||||
name: ${{ inputs.config_name }}
|
uses: ./.github/workflows/reusable-build.yml
|
||||||
runs-on: ${{ fromJSON(inputs.runs_on) }}
|
with:
|
||||||
container: ${{ inputs.image != '' && inputs.image || null }}
|
build_dir: ${{ inputs.build_dir }}
|
||||||
timeout-minutes: 60
|
build_type: ${{ inputs.build_type }}
|
||||||
env:
|
cmake_args: ${{ inputs.cmake_args }}
|
||||||
ENABLED_VOIDSTAR: ${{ contains(inputs.cmake_args, '-Dvoidstar=ON') }}
|
cmake_target: ${{ inputs.cmake_target }}
|
||||||
ENABLED_COVERAGE: ${{ contains(inputs.cmake_args, '-Dcoverage=ON') }}
|
runs_on: ${{ inputs.runs_on }}
|
||||||
ENABLED_SANITIZERS: ${{ contains(inputs.cmake_args, '-fsanitize') }}
|
image: ${{ inputs.image }}
|
||||||
steps:
|
config_name: ${{ inputs.config_name }}
|
||||||
- name: Cleanup workspace (macOS and Windows)
|
secrets:
|
||||||
if: ${{ runner.os == 'macOS' || runner.os == 'Windows' }}
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||||
uses: XRPLF/actions/.github/actions/cleanup-workspace@01b244d2718865d427b499822fbd3f15e7197fcc
|
|
||||||
|
|
||||||
- name: Checkout repository
|
test:
|
||||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
needs: build
|
||||||
|
uses: ./.github/workflows/reusable-test.yml
|
||||||
- name: Prepare runner
|
with:
|
||||||
uses: XRPLF/actions/.github/actions/prepare-runner@99685816bb60a95a66852f212f382580e180df3a
|
run_tests: ${{ !inputs.build_only }}
|
||||||
with:
|
verify_voidstar: ${{ contains(inputs.cmake_args, '-Dvoidstar=ON') }}
|
||||||
disable_ccache: false
|
runs_on: ${{ inputs.runs_on }}
|
||||||
|
image: ${{ inputs.image }}
|
||||||
- name: Print build environment
|
config_name: ${{ inputs.config_name }}
|
||||||
uses: ./.github/actions/print-env
|
|
||||||
|
|
||||||
- name: Get number of processors
|
|
||||||
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
|
|
||||||
id: nproc
|
|
||||||
with:
|
|
||||||
subtract: ${{ inputs.nproc_subtract }}
|
|
||||||
|
|
||||||
- name: Setup Conan
|
|
||||||
uses: ./.github/actions/setup-conan
|
|
||||||
|
|
||||||
- name: Build dependencies
|
|
||||||
uses: ./.github/actions/build-deps
|
|
||||||
with:
|
|
||||||
build_dir: ${{ inputs.build_dir }}
|
|
||||||
build_nproc: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
build_type: ${{ inputs.build_type }}
|
|
||||||
# Set the verbosity to "quiet" for Windows to avoid an excessive
|
|
||||||
# amount of logs. For other OSes, the "verbose" logs are more useful.
|
|
||||||
log_verbosity: ${{ runner.os == 'Windows' && 'quiet' || 'verbose' }}
|
|
||||||
sanitizers: ${{ inputs.sanitizers }}
|
|
||||||
|
|
||||||
- name: Configure CMake
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
env:
|
|
||||||
BUILD_TYPE: ${{ inputs.build_type }}
|
|
||||||
run: |
|
|
||||||
cmake .. \
|
|
||||||
-G '${{ runner.os == 'Windows' && 'Visual Studio 17 2022' || 'Ninja' }}' \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
|
|
||||||
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
|
|
||||||
${{ inputs.cmake_args }}
|
|
||||||
|
|
||||||
- name: Build the binary
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
env:
|
|
||||||
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
BUILD_TYPE: ${{ inputs.build_type }}
|
|
||||||
CMAKE_TARGET: ${{ inputs.cmake_target }}
|
|
||||||
run: |
|
|
||||||
cmake \
|
|
||||||
--build . \
|
|
||||||
--config "${BUILD_TYPE}" \
|
|
||||||
--parallel "${BUILD_NPROC}" \
|
|
||||||
--target "${CMAKE_TARGET}"
|
|
||||||
|
|
||||||
- name: Upload rippled artifact (Linux)
|
|
||||||
if: ${{ runner.os == 'Linux' }}
|
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
||||||
env:
|
|
||||||
BUILD_DIR: ${{ inputs.build_dir }}
|
|
||||||
with:
|
|
||||||
name: rippled-${{ inputs.config_name }}
|
|
||||||
path: ${{ env.BUILD_DIR }}/rippled
|
|
||||||
retention-days: 3
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Check linking (Linux)
|
|
||||||
if: ${{ runner.os == 'Linux' && env.ENABLED_SANITIZERS == 'false' }}
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
run: |
|
|
||||||
ldd ./rippled
|
|
||||||
if [ "$(ldd ./rippled | grep -E '(libstdc\+\+|libgcc)' | wc -l)" -eq 0 ]; then
|
|
||||||
echo 'The binary is statically linked.'
|
|
||||||
else
|
|
||||||
echo 'The binary is dynamically linked.'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Verify presence of instrumentation (Linux)
|
|
||||||
if: ${{ runner.os == 'Linux' && env.ENABLED_VOIDSTAR == 'true' }}
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
run: |
|
|
||||||
./rippled --version | grep libvoidstar
|
|
||||||
|
|
||||||
- name: Run the separate tests
|
|
||||||
if: ${{ !inputs.build_only }}
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
# Windows locks some of the build files while running tests, and parallel jobs can collide
|
|
||||||
env:
|
|
||||||
BUILD_TYPE: ${{ inputs.build_type }}
|
|
||||||
PARALLELISM: ${{ runner.os == 'Windows' && '1' || steps.nproc.outputs.nproc }}
|
|
||||||
run: |
|
|
||||||
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan.supp"
|
|
||||||
export TSAN_OPTIONS="second_deadlock_stack=1 halt_on_error=0 suppressions=$GITHUB_WORKSPACE/external/tsan.supp"
|
|
||||||
export UBSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/ubsan.supp"
|
|
||||||
export LSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/lsan.supp"
|
|
||||||
ctest \
|
|
||||||
--output-on-failure \
|
|
||||||
-C "${BUILD_TYPE}" \
|
|
||||||
-j "${PARALLELISM}"
|
|
||||||
|
|
||||||
- name: Run the embedded tests
|
|
||||||
if: ${{ !inputs.build_only }}
|
|
||||||
working-directory: ${{ runner.os == 'Windows' && format('{0}/{1}', inputs.build_dir, inputs.build_type) || inputs.build_dir }}
|
|
||||||
env:
|
|
||||||
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
run: |
|
|
||||||
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan.supp"
|
|
||||||
export TSAN_OPTIONS="second_deadlock_stack=1 halt_on_error=0 suppressions=$GITHUB_WORKSPACE/external/tsan.supp"
|
|
||||||
export UBSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/ubsan.supp"
|
|
||||||
export LSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/lsan.supp"
|
|
||||||
./rippled --unittest --unittest-jobs "${BUILD_NPROC}"
|
|
||||||
|
|
||||||
- name: Debug failure (Linux)
|
|
||||||
if: ${{ failure() && runner.os == 'Linux' && !inputs.build_only }}
|
|
||||||
run: |
|
|
||||||
echo "IPv4 local port range:"
|
|
||||||
cat /proc/sys/net/ipv4/ip_local_port_range
|
|
||||||
echo "Netstat:"
|
|
||||||
netstat -an
|
|
||||||
|
|
||||||
- name: Prepare coverage report
|
|
||||||
if: ${{ !inputs.build_only && env.ENABLED_COVERAGE == 'true' }}
|
|
||||||
working-directory: ${{ inputs.build_dir }}
|
|
||||||
env:
|
|
||||||
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
BUILD_TYPE: ${{ inputs.build_type }}
|
|
||||||
run: |
|
|
||||||
cmake \
|
|
||||||
--build . \
|
|
||||||
--config "${BUILD_TYPE}" \
|
|
||||||
--parallel "${BUILD_NPROC}" \
|
|
||||||
--target coverage
|
|
||||||
|
|
||||||
- name: Upload coverage report
|
|
||||||
if: ${{ github.repository_owner == 'XRPLF' && !inputs.build_only && env.ENABLED_COVERAGE == 'true' }}
|
|
||||||
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
|
||||||
with:
|
|
||||||
disable_search: true
|
|
||||||
disable_telem: true
|
|
||||||
fail_ci_if_error: true
|
|
||||||
files: ${{ inputs.build_dir }}/coverage.xml
|
|
||||||
plugins: noop
|
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
|
||||||
verbose: true
|
|
||||||
|
|||||||
5
.github/workflows/reusable-build-test.yml
vendored
5
.github/workflows/reusable-build-test.yml
vendored
@@ -42,7 +42,7 @@ jobs:
|
|||||||
- generate-matrix
|
- generate-matrix
|
||||||
uses: ./.github/workflows/reusable-build-test-config.yml
|
uses: ./.github/workflows/reusable-build-test-config.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: ${{ github.event_name == 'merge_group' }}
|
fail-fast: false
|
||||||
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||||||
max-parallel: 10
|
max-parallel: 10
|
||||||
with:
|
with:
|
||||||
@@ -52,8 +52,7 @@ jobs:
|
|||||||
cmake_args: ${{ matrix.cmake_args }}
|
cmake_args: ${{ matrix.cmake_args }}
|
||||||
cmake_target: ${{ matrix.cmake_target }}
|
cmake_target: ${{ matrix.cmake_target }}
|
||||||
runs_on: ${{ toJSON(matrix.architecture.runner) }}
|
runs_on: ${{ toJSON(matrix.architecture.runner) }}
|
||||||
image: ${{ contains(matrix.architecture.platform, 'linux') && format('ghcr.io/xrplf/ci/{0}-{1}:{2}-{3}-sha-{4}', matrix.os.distro_name, matrix.os.distro_version, matrix.os.compiler_name, matrix.os.compiler_version, matrix.os.image_sha) || '' }}
|
image: ${{ contains(matrix.architecture.platform, 'linux') && format('ghcr.io/xrplf/ci/{0}-{1}:{2}-{3}-sha-5dd7158', matrix.os.distro_name, matrix.os.distro_version, matrix.os.compiler_name, matrix.os.compiler_version) || '' }}
|
||||||
config_name: ${{ matrix.config_name }}
|
config_name: ${{ matrix.config_name }}
|
||||||
sanitizers: ${{ matrix.sanitizers }}
|
|
||||||
secrets:
|
secrets:
|
||||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|||||||
121
.github/workflows/reusable-build.yml
vendored
Normal file
121
.github/workflows/reusable-build.yml
vendored
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
name: Build rippled
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
build_dir:
|
||||||
|
description: "The directory where to build."
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
build_type:
|
||||||
|
description: 'The build type to use ("Debug", "Release").'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
cmake_args:
|
||||||
|
description: "Additional arguments to pass to CMake."
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
cmake_target:
|
||||||
|
description: "The CMake target to build."
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
runs_on:
|
||||||
|
description: Runner to run the job on as a JSON string
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: "The image to run in (leave empty to run natively)"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
config_name:
|
||||||
|
description: "The name of the configuration."
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
CODECOV_TOKEN:
|
||||||
|
description: "The Codecov token to use for uploading coverage reports."
|
||||||
|
required: true
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build ${{ inputs.config_name }}
|
||||||
|
runs-on: ${{ fromJSON(inputs.runs_on) }}
|
||||||
|
container: ${{ inputs.image != '' && inputs.image || null }}
|
||||||
|
steps:
|
||||||
|
- name: Cleanup workspace
|
||||||
|
if: ${{ runner.os == 'macOS' }}
|
||||||
|
uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||||
|
|
||||||
|
- name: Prepare runner
|
||||||
|
uses: XRPLF/actions/.github/actions/prepare-runner@638e0dc11ea230f91bd26622fb542116bb5254d5
|
||||||
|
with:
|
||||||
|
disable_ccache: false
|
||||||
|
|
||||||
|
- name: Print build environment
|
||||||
|
uses: ./.github/actions/print-env
|
||||||
|
|
||||||
|
- name: Setup Conan
|
||||||
|
uses: ./.github/actions/setup-conan
|
||||||
|
|
||||||
|
- name: Build dependencies
|
||||||
|
uses: ./.github/actions/build-deps
|
||||||
|
with:
|
||||||
|
build_dir: ${{ inputs.build_dir }}
|
||||||
|
build_type: ${{ inputs.build_type }}
|
||||||
|
|
||||||
|
- name: Configure CMake
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ inputs.build_dir }}
|
||||||
|
env:
|
||||||
|
BUILD_TYPE: ${{ inputs.build_type }}
|
||||||
|
CMAKE_ARGS: ${{ inputs.cmake_args }}
|
||||||
|
run: |
|
||||||
|
cmake \
|
||||||
|
-G '${{ runner.os == 'Windows' && 'Visual Studio 17 2022' || 'Ninja' }}' \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
|
||||||
|
${{ env.CMAKE_ARGS }} \
|
||||||
|
..
|
||||||
|
|
||||||
|
- name: Build the binary
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ inputs.build_dir }}
|
||||||
|
env:
|
||||||
|
BUILD_TYPE: ${{ inputs.build_type }}
|
||||||
|
CMAKE_TARGET: ${{ inputs.cmake_target }}
|
||||||
|
run: |
|
||||||
|
cmake \
|
||||||
|
--build . \
|
||||||
|
--config ${{ env.BUILD_TYPE }} \
|
||||||
|
--parallel $(nproc) \
|
||||||
|
--target ${{ env.CMAKE_TARGET }}
|
||||||
|
|
||||||
|
- name: Upload rippled artifact
|
||||||
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
with:
|
||||||
|
name: rippled-${{ inputs.config_name }}
|
||||||
|
path: ${{ inputs.build_dir }}/${{ runner.os == 'Windows' && inputs.build_type || '' }}/rippled${{ runner.os == 'Windows' && '.exe' || '' }}
|
||||||
|
retention-days: 3
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
- name: Upload coverage report
|
||||||
|
if: ${{ inputs.cmake_target == 'coverage' }}
|
||||||
|
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
||||||
|
with:
|
||||||
|
disable_search: true
|
||||||
|
disable_telem: true
|
||||||
|
fail_ci_if_error: true
|
||||||
|
files: ${{ inputs.build_dir }}/coverage.xml
|
||||||
|
plugins: noop
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
verbose: true
|
||||||
46
.github/workflows/reusable-check-rename.yml
vendored
46
.github/workflows/reusable-check-rename.yml
vendored
@@ -1,46 +0,0 @@
|
|||||||
# This workflow checks if the codebase is properly renamed, see more info in
|
|
||||||
# .github/scripts/rename/README.md.
|
|
||||||
name: Check rename
|
|
||||||
|
|
||||||
# This workflow can only be triggered by other workflows.
|
|
||||||
on: workflow_call
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-rename
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
rename:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
|
||||||
- name: Check definitions
|
|
||||||
run: .github/scripts/rename/definitions.sh .
|
|
||||||
- name: Check copyright notices
|
|
||||||
run: .github/scripts/rename/copyright.sh .
|
|
||||||
- name: Check CMake configs
|
|
||||||
run: .github/scripts/rename/cmake.sh .
|
|
||||||
- name: Check for differences
|
|
||||||
env:
|
|
||||||
MESSAGE: |
|
|
||||||
|
|
||||||
One or more files contain changes that do not adhere to new naming
|
|
||||||
conventions.
|
|
||||||
|
|
||||||
Run the scripts in '.github/scripts/rename/' in your repo, commit
|
|
||||||
and push the changes. See .github/scripts/rename/README.md for
|
|
||||||
more info.
|
|
||||||
run: |
|
|
||||||
DIFF=$(git status --porcelain)
|
|
||||||
if [ -n "${DIFF}" ]; then
|
|
||||||
# Print the differences to give the contributor a hint about what to
|
|
||||||
# expect when running the renaming scripts on their own machine.
|
|
||||||
git diff
|
|
||||||
echo "${MESSAGE}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
10
.github/workflows/reusable-notify-clio.yml
vendored
10
.github/workflows/reusable-notify-clio.yml
vendored
@@ -51,7 +51,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo 'Generating user and channel.'
|
echo 'Generating user and channel.'
|
||||||
echo "user=clio" >> "${GITHUB_OUTPUT}"
|
echo "user=clio" >> "${GITHUB_OUTPUT}"
|
||||||
echo "channel=pr_${PR_NUMBER}" >> "${GITHUB_OUTPUT}"
|
echo "channel=pr_${{ env.PR_NUMBER }}" >> "${GITHUB_OUTPUT}"
|
||||||
echo 'Extracting version.'
|
echo 'Extracting version.'
|
||||||
echo "version=$(cat src/libxrpl/protocol/BuildInfo.cpp | grep "versionString =" | awk -F '"' '{print $2}')" >> "${GITHUB_OUTPUT}"
|
echo "version=$(cat src/libxrpl/protocol/BuildInfo.cpp | grep "versionString =" | awk -F '"' '{print $2}')" >> "${GITHUB_OUTPUT}"
|
||||||
- name: Calculate conan reference
|
- name: Calculate conan reference
|
||||||
@@ -64,15 +64,13 @@ jobs:
|
|||||||
conan_remote_name: ${{ inputs.conan_remote_name }}
|
conan_remote_name: ${{ inputs.conan_remote_name }}
|
||||||
conan_remote_url: ${{ inputs.conan_remote_url }}
|
conan_remote_url: ${{ inputs.conan_remote_url }}
|
||||||
- name: Log into Conan remote
|
- name: Log into Conan remote
|
||||||
env:
|
run: conan remote login ${{ inputs.conan_remote_name }} "${{ secrets.conan_remote_username }}" --password "${{ secrets.conan_remote_password }}"
|
||||||
CONAN_REMOTE_NAME: ${{ inputs.conan_remote_name }}
|
|
||||||
run: conan remote login "${CONAN_REMOTE_NAME}" "${{ secrets.conan_remote_username }}" --password "${{ secrets.conan_remote_password }}"
|
|
||||||
- name: Upload package
|
- name: Upload package
|
||||||
env:
|
env:
|
||||||
CONAN_REMOTE_NAME: ${{ inputs.conan_remote_name }}
|
CONAN_REMOTE_NAME: ${{ inputs.conan_remote_name }}
|
||||||
run: |
|
run: |
|
||||||
conan export --user=${{ steps.generate.outputs.user }} --channel=${{ steps.generate.outputs.channel }} .
|
conan export --user=${{ steps.generate.outputs.user }} --channel=${{ steps.generate.outputs.channel }} .
|
||||||
conan upload --confirm --check --remote="${CONAN_REMOTE_NAME}" xrpl/${{ steps.conan_ref.outputs.conan_ref }}
|
conan upload --confirm --check --remote=${{ env.CONAN_REMOTE_NAME }} xrpl/${{ steps.conan_ref.outputs.conan_ref }}
|
||||||
outputs:
|
outputs:
|
||||||
conan_ref: ${{ steps.conan_ref.outputs.conan_ref }}
|
conan_ref: ${{ steps.conan_ref.outputs.conan_ref }}
|
||||||
|
|
||||||
@@ -88,4 +86,4 @@ jobs:
|
|||||||
gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" \
|
gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" \
|
||||||
/repos/xrplf/clio/dispatches -f "event_type=check_libxrpl" \
|
/repos/xrplf/clio/dispatches -f "event_type=check_libxrpl" \
|
||||||
-F "client_payload[conan_ref]=${{ needs.upload.outputs.conan_ref }}" \
|
-F "client_payload[conan_ref]=${{ needs.upload.outputs.conan_ref }}" \
|
||||||
-F "client_payload[pr_url]=${PR_URL}"
|
-F "client_payload[pr_url]=${{ env.PR_URL }}"
|
||||||
|
|||||||
@@ -18,10 +18,6 @@ on:
|
|||||||
description: "The generated strategy matrix."
|
description: "The generated strategy matrix."
|
||||||
value: ${{ jobs.generate-matrix.outputs.matrix }}
|
value: ${{ jobs.generate-matrix.outputs.matrix }}
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate-matrix:
|
generate-matrix:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -42,4 +38,4 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GENERATE_CONFIG: ${{ inputs.os != '' && format('--config={0}.json', inputs.os) || '' }}
|
GENERATE_CONFIG: ${{ inputs.os != '' && format('--config={0}.json', inputs.os) || '' }}
|
||||||
GENERATE_OPTION: ${{ inputs.strategy_matrix == 'all' && '--all' || '' }}
|
GENERATE_OPTION: ${{ inputs.strategy_matrix == 'all' && '--all' || '' }}
|
||||||
run: ./generate.py ${GENERATE_OPTION} ${GENERATE_CONFIG} >> "${GITHUB_OUTPUT}"
|
run: ./generate.py ${{ env.GENERATE_OPTION }} ${{ env.GENERATE_CONFIG }} >> "${GITHUB_OUTPUT}"
|
||||||
|
|||||||
69
.github/workflows/reusable-test.yml
vendored
Normal file
69
.github/workflows/reusable-test.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
name: Test rippled
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
verify_voidstar:
|
||||||
|
description: "Whether to verify the presence of voidstar instrumentation."
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
run_tests:
|
||||||
|
description: "Whether to run unit tests"
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
runs_on:
|
||||||
|
description: Runner to run the job on as a JSON string
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: "The image to run in (leave empty to run natively)"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
config_name:
|
||||||
|
description: "The name of the configuration."
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: Test ${{ inputs.config_name }}
|
||||||
|
runs-on: ${{ fromJSON(inputs.runs_on) }}
|
||||||
|
container: ${{ inputs.image != '' && inputs.image || null }}
|
||||||
|
steps:
|
||||||
|
- name: Download rippled artifact
|
||||||
|
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||||
|
with:
|
||||||
|
name: rippled-${{ inputs.config_name }}
|
||||||
|
|
||||||
|
- name: Make binary executable (Linux and macOS)
|
||||||
|
shell: bash
|
||||||
|
if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }}
|
||||||
|
run: |
|
||||||
|
chmod +x ./rippled
|
||||||
|
|
||||||
|
- name: Check linking (Linux)
|
||||||
|
if: ${{ runner.os == 'Linux' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
ldd ./rippled
|
||||||
|
if [ "$(ldd ./rippled | grep -E '(libstdc\+\+|libgcc)' | wc -l)" -eq 0 ]; then
|
||||||
|
echo 'The binary is statically linked.'
|
||||||
|
else
|
||||||
|
echo 'The binary is dynamically linked.'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Verifying presence of instrumentation
|
||||||
|
if: ${{ inputs.verify_voidstar }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
./rippled --version | grep libvoidstar
|
||||||
|
|
||||||
|
- name: Test the binary
|
||||||
|
if: ${{ inputs.run_tests }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
./rippled --unittest --unittest-jobs $(nproc)
|
||||||
|
ctest -j $(nproc) --output-on-failure
|
||||||
43
.github/workflows/upload-conan-deps.yml
vendored
43
.github/workflows/upload-conan-deps.yml
vendored
@@ -34,24 +34,17 @@ on:
|
|||||||
env:
|
env:
|
||||||
CONAN_REMOTE_NAME: xrplf
|
CONAN_REMOTE_NAME: xrplf
|
||||||
CONAN_REMOTE_URL: https://conan.ripplex.io
|
CONAN_REMOTE_URL: https://conan.ripplex.io
|
||||||
NPROC_SUBTRACT: 2
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Generate the strategy matrix to be used by the following job.
|
|
||||||
generate-matrix:
|
generate-matrix:
|
||||||
uses: ./.github/workflows/reusable-strategy-matrix.yml
|
uses: ./.github/workflows/reusable-strategy-matrix.yml
|
||||||
with:
|
with:
|
||||||
strategy_matrix: ${{ github.event_name == 'pull_request' && 'minimal' || 'all' }}
|
strategy_matrix: ${{ github.event_name == 'pull_request' && 'minimal' || 'all' }}
|
||||||
|
|
||||||
# Build and upload the dependencies for each configuration.
|
|
||||||
run-upload-conan-deps:
|
run-upload-conan-deps:
|
||||||
needs:
|
needs:
|
||||||
- generate-matrix
|
- generate-matrix
|
||||||
@@ -60,29 +53,19 @@ jobs:
|
|||||||
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||||||
max-parallel: 10
|
max-parallel: 10
|
||||||
runs-on: ${{ matrix.architecture.runner }}
|
runs-on: ${{ matrix.architecture.runner }}
|
||||||
container: ${{ contains(matrix.architecture.platform, 'linux') && format('ghcr.io/xrplf/ci/{0}-{1}:{2}-{3}-sha-{4}', matrix.os.distro_name, matrix.os.distro_version, matrix.os.compiler_name, matrix.os.compiler_version, matrix.os.image_sha) || null }}
|
container: ${{ contains(matrix.architecture.platform, 'linux') && format('ghcr.io/xrplf/ci/{0}-{1}:{2}-{3}-sha-5dd7158', matrix.os.distro_name, matrix.os.distro_version, matrix.os.compiler_name, matrix.os.compiler_version) || null }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Cleanup workspace (macOS and Windows)
|
- name: Cleanup workspace
|
||||||
if: ${{ runner.os == 'macOS' || runner.os == 'Windows' }}
|
if: ${{ runner.os == 'macOS' }}
|
||||||
uses: XRPLF/actions/.github/actions/cleanup-workspace@01b244d2718865d427b499822fbd3f15e7197fcc
|
uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
|
||||||
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
|
||||||
|
|
||||||
|
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||||
- name: Prepare runner
|
- name: Prepare runner
|
||||||
uses: XRPLF/actions/.github/actions/prepare-runner@99685816bb60a95a66852f212f382580e180df3a
|
uses: XRPLF/actions/.github/actions/prepare-runner@638e0dc11ea230f91bd26622fb542116bb5254d5
|
||||||
with:
|
with:
|
||||||
disable_ccache: false
|
disable_ccache: false
|
||||||
|
|
||||||
- name: Print build environment
|
|
||||||
uses: ./.github/actions/print-env
|
|
||||||
|
|
||||||
- name: Get number of processors
|
|
||||||
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
|
|
||||||
id: nproc
|
|
||||||
with:
|
|
||||||
subtract: ${{ env.NPROC_SUBTRACT }}
|
|
||||||
|
|
||||||
- name: Setup Conan
|
- name: Setup Conan
|
||||||
uses: ./.github/actions/setup-conan
|
uses: ./.github/actions/setup-conan
|
||||||
with:
|
with:
|
||||||
@@ -93,19 +76,15 @@ jobs:
|
|||||||
uses: ./.github/actions/build-deps
|
uses: ./.github/actions/build-deps
|
||||||
with:
|
with:
|
||||||
build_dir: .build
|
build_dir: .build
|
||||||
build_nproc: ${{ steps.nproc.outputs.nproc }}
|
|
||||||
build_type: ${{ matrix.build_type }}
|
build_type: ${{ matrix.build_type }}
|
||||||
force_build: ${{ github.event_name == 'schedule' || github.event.inputs.force_source_build == 'true' }}
|
force_build: ${{ github.event_name == 'schedule' || github.event.inputs.force_source_build == 'true' }}
|
||||||
# Set the verbosity to "quiet" for Windows to avoid an excessive
|
|
||||||
# amount of logs. For other OSes, the "verbose" logs are more useful.
|
|
||||||
log_verbosity: ${{ runner.os == 'Windows' && 'quiet' || 'verbose' }}
|
|
||||||
|
|
||||||
- name: Log into Conan remote
|
- name: Log into Conan remote
|
||||||
if: ${{ github.repository_owner == 'XRPLF' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
|
if: ${{ github.repository_owner == 'XRPLF' && github.event_name != 'pull_request' }}
|
||||||
run: conan remote login "${CONAN_REMOTE_NAME}" "${{ secrets.CONAN_REMOTE_USERNAME }}" --password "${{ secrets.CONAN_REMOTE_PASSWORD }}"
|
run: conan remote login ${{ env.CONAN_REMOTE_NAME }} "${{ secrets.CONAN_REMOTE_USERNAME }}" --password "${{ secrets.CONAN_REMOTE_PASSWORD }}"
|
||||||
|
|
||||||
- name: Upload Conan packages
|
- name: Upload Conan packages
|
||||||
if: ${{ github.repository_owner == 'XRPLF' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
|
if: ${{ github.repository_owner == 'XRPLF' && github.event_name != 'pull_request' && github.event_name != 'schedule' }}
|
||||||
env:
|
env:
|
||||||
FORCE_OPTION: ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
|
FORCE_OPTION: ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
|
||||||
run: conan upload "*" --remote="${CONAN_REMOTE_NAME}" --confirm ${FORCE_OPTION}
|
run: conan upload "*" --remote='${{ env.CONAN_REMOTE_NAME }}' --confirm ${{ env.FORCE_OPTION }}
|
||||||
|
|||||||
@@ -34,5 +34,6 @@ repos:
|
|||||||
exclude: |
|
exclude: |
|
||||||
(?x)^(
|
(?x)^(
|
||||||
external/.*|
|
external/.*|
|
||||||
.github/scripts/levelization/results/.*\.txt
|
.github/scripts/levelization/results/.*\.txt|
|
||||||
|
conan\.lock
|
||||||
)$
|
)$
|
||||||
|
|||||||
53
BUILD.md
53
BUILD.md
@@ -39,12 +39,17 @@ found here](./docs/build/environment.md).
|
|||||||
|
|
||||||
- [Python 3.11](https://www.python.org/downloads/), or higher
|
- [Python 3.11](https://www.python.org/downloads/), or higher
|
||||||
- [Conan 2.17](https://conan.io/downloads.html)[^1], or higher
|
- [Conan 2.17](https://conan.io/downloads.html)[^1], or higher
|
||||||
- [CMake 3.22](https://cmake.org/download/), or higher
|
- [CMake 3.22](https://cmake.org/download/)[^2], or higher
|
||||||
|
|
||||||
[^1]:
|
[^1]:
|
||||||
It is possible to build with Conan 1.60+, but the instructions are
|
It is possible to build with Conan 1.60+, but the instructions are
|
||||||
significantly different, which is why we are not recommending it.
|
significantly different, which is why we are not recommending it.
|
||||||
|
|
||||||
|
[^2]:
|
||||||
|
CMake 4 is not yet supported by all dependencies required by this project.
|
||||||
|
If you are affected by this issue, follow [conan workaround for cmake
|
||||||
|
4](#workaround-for-cmake-4)
|
||||||
|
|
||||||
`rippled` is written in the C++20 dialect and includes the `<concepts>` header.
|
`rippled` is written in the C++20 dialect and includes the `<concepts>` header.
|
||||||
The [minimum compiler versions][2] required are:
|
The [minimum compiler versions][2] required are:
|
||||||
|
|
||||||
@@ -277,6 +282,21 @@ sed -i.bak -e 's|^arch=.*$|arch=x86_64|' $(conan config home)/profiles/default
|
|||||||
sed -i.bak -e 's|^compiler\.runtime=.*$|compiler.runtime=static|' $(conan config home)/profiles/default
|
sed -i.bak -e 's|^compiler\.runtime=.*$|compiler.runtime=static|' $(conan config home)/profiles/default
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Workaround for CMake 4
|
||||||
|
|
||||||
|
If your system CMake is version 4 rather than 3, you may have to configure Conan
|
||||||
|
profile to use CMake version 3 for dependencies, by adding the following two
|
||||||
|
lines to your profile:
|
||||||
|
|
||||||
|
```text
|
||||||
|
[tool_requires]
|
||||||
|
!cmake/*: cmake/[>=3 <4]
|
||||||
|
```
|
||||||
|
|
||||||
|
This will force Conan to download and use a locally cached CMake 3 version, and
|
||||||
|
is needed because some of the dependencies used by this project do not support
|
||||||
|
CMake 4.
|
||||||
|
|
||||||
#### Clang workaround for grpc
|
#### Clang workaround for grpc
|
||||||
|
|
||||||
If your compiler is clang, version 19 or later, or apple-clang, version 17 or
|
If your compiler is clang, version 19 or later, or apple-clang, version 17 or
|
||||||
@@ -360,16 +380,6 @@ tools.build:cxxflags=['-DBOOST_ASIO_DISABLE_CONCEPTS']
|
|||||||
conan install .. --output-folder . --build missing --settings build_type=Debug
|
conan install .. --output-folder . --build missing --settings build_type=Debug
|
||||||
```
|
```
|
||||||
|
|
||||||
If you would like to activate `asan+ubsan`(`Address`) or `tsan+ubsan`(`Thread`) for the build,
|
|
||||||
declare an env. variable as follows and simply use the `sanitizers`
|
|
||||||
profile in the `conan install` command.
|
|
||||||
|
|
||||||
```
|
|
||||||
SANITIZERS=Address conan install .. --output-folder . --profile sanitizers --build missing --settings build_type=Debug
|
|
||||||
```
|
|
||||||
|
|
||||||
Available options for SANITIZERS: `Address` and `Thread`
|
|
||||||
|
|
||||||
To build Debug, in the next step, be sure to set `-DCMAKE_BUILD_TYPE=Debug`
|
To build Debug, in the next step, be sure to set `-DCMAKE_BUILD_TYPE=Debug`
|
||||||
|
|
||||||
For a single-configuration generator, e.g. `Unix Makefiles` or `Ninja`,
|
For a single-configuration generator, e.g. `Unix Makefiles` or `Ninja`,
|
||||||
@@ -505,18 +515,18 @@ A coverage report is created when the following steps are completed, in order:
|
|||||||
|
|
||||||
1. `rippled` binary built with instrumentation data, enabled by the `coverage`
|
1. `rippled` binary built with instrumentation data, enabled by the `coverage`
|
||||||
option mentioned above
|
option mentioned above
|
||||||
2. completed one or more run of the unit tests, which populates coverage capture data
|
2. completed run of unit tests, which populates coverage capture data
|
||||||
3. completed run of the `gcovr` tool (which internally invokes either `gcov` or `llvm-cov`)
|
3. completed run of the `gcovr` tool (which internally invokes either `gcov` or `llvm-cov`)
|
||||||
to assemble both instrumentation data and the coverage capture data into a coverage report
|
to assemble both instrumentation data and the coverage capture data into a coverage report
|
||||||
|
|
||||||
The last step of the above is automated into a single target `coverage`. The instrumented
|
The above steps are automated into a single target `coverage`. The instrumented
|
||||||
`rippled` binary can also be used for regular development or testing work, at
|
`rippled` binary can also be used for regular development or testing work, at
|
||||||
the cost of extra disk space utilization and a small performance hit
|
the cost of extra disk space utilization and a small performance hit
|
||||||
(to store coverage capture data). Since `rippled` binary is simply a dependency of the
|
(to store coverage capture). In case of a spurious failure of unit tests, it is
|
||||||
coverage report target, it is possible to re-run the `coverage` target without
|
possible to re-run the `coverage` target without rebuilding the `rippled` binary
|
||||||
rebuilding the `rippled` binary. Note, running of the unit tests before the `coverage`
|
(since it is simply a dependency of the coverage report target). It is also possible
|
||||||
target is left to the developer. Each such run will append to the coverage data
|
to select only specific tests for the purpose of the coverage report, by setting
|
||||||
collected in the build directory.
|
the `coverage_test` variable in `cmake`
|
||||||
|
|
||||||
The default coverage report format is `html-details`, but the user
|
The default coverage report format is `html-details`, but the user
|
||||||
can override it to any of the formats listed in `Builds/CMake/CodeCoverage.cmake`
|
can override it to any of the formats listed in `Builds/CMake/CodeCoverage.cmake`
|
||||||
@@ -525,6 +535,11 @@ to generate more than one format at a time by setting the `coverage_extra_args`
|
|||||||
variable in `cmake`. The specific command line used to run the `gcovr` tool will be
|
variable in `cmake`. The specific command line used to run the `gcovr` tool will be
|
||||||
displayed if the `CODE_COVERAGE_VERBOSE` variable is set.
|
displayed if the `CODE_COVERAGE_VERBOSE` variable is set.
|
||||||
|
|
||||||
|
By default, the code coverage tool runs parallel unit tests with `--unittest-jobs`
|
||||||
|
set to the number of available CPU cores. This may cause spurious test
|
||||||
|
errors on Apple. Developers can override the number of unit test jobs with
|
||||||
|
the `coverage_test_parallelism` variable in `cmake`.
|
||||||
|
|
||||||
Example use with some cmake variables set:
|
Example use with some cmake variables set:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -595,7 +610,7 @@ you might have generated CMake files for a different `build_type` than the
|
|||||||
`CMAKE_BUILD_TYPE` you passed to Conan.
|
`CMAKE_BUILD_TYPE` you passed to Conan.
|
||||||
|
|
||||||
```
|
```
|
||||||
/rippled/.build/pb-xrpl.libpb/xrpl/proto/xrpl.pb.h:10:10: fatal error: 'google/protobuf/port_def.inc' file not found
|
/rippled/.build/pb-xrpl.libpb/xrpl/proto/ripple.pb.h:10:10: fatal error: 'google/protobuf/port_def.inc' file not found
|
||||||
10 | #include <google/protobuf/port_def.inc>
|
10 | #include <google/protobuf/port_def.inc>
|
||||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
1 error generated.
|
1 error generated.
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ if(Git_FOUND)
|
|||||||
endif() #git
|
endif() #git
|
||||||
|
|
||||||
if(thread_safety_analysis)
|
if(thread_safety_analysis)
|
||||||
add_compile_options(-Wthread-safety -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DXRPL_ENABLE_THREAD_SAFETY_ANNOTATIONS)
|
add_compile_options(-Wthread-safety -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DRIPPLE_ENABLE_THREAD_SAFETY_ANNOTATIONS)
|
||||||
add_compile_options("-stdlib=libc++")
|
add_compile_options("-stdlib=libc++")
|
||||||
add_link_options("-stdlib=libc++")
|
add_link_options("-stdlib=libc++")
|
||||||
endif()
|
endif()
|
||||||
@@ -62,9 +62,9 @@ if (target)
|
|||||||
message (FATAL_ERROR "The target option has been removed - use native cmake options to control build")
|
message (FATAL_ERROR "The target option has been removed - use native cmake options to control build")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(XrplSanity)
|
include(RippledSanity)
|
||||||
include(XrplVersion)
|
include(RippledVersion)
|
||||||
include(XrplSettings)
|
include(RippledSettings)
|
||||||
# this check has to remain in the top-level cmake
|
# this check has to remain in the top-level cmake
|
||||||
# because of the early return statement
|
# because of the early return statement
|
||||||
if (packages_only)
|
if (packages_only)
|
||||||
@@ -73,11 +73,11 @@ if (packages_only)
|
|||||||
endif()
|
endif()
|
||||||
return ()
|
return ()
|
||||||
endif ()
|
endif ()
|
||||||
include(XrplCompiler)
|
include(RippledCompiler)
|
||||||
include(XrplInterface)
|
include(RippledInterface)
|
||||||
|
|
||||||
option(only_docs "Include only the docs target?" FALSE)
|
option(only_docs "Include only the docs target?" FALSE)
|
||||||
include(XrplDocs)
|
include(RippledDocs)
|
||||||
if(only_docs)
|
if(only_docs)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
@@ -112,16 +112,16 @@ option(rocksdb "Enable RocksDB" ON)
|
|||||||
if(rocksdb)
|
if(rocksdb)
|
||||||
find_package(RocksDB REQUIRED)
|
find_package(RocksDB REQUIRED)
|
||||||
set_target_properties(RocksDB::rocksdb PROPERTIES
|
set_target_properties(RocksDB::rocksdb PROPERTIES
|
||||||
INTERFACE_COMPILE_DEFINITIONS XRPL_ROCKSDB_AVAILABLE=1
|
INTERFACE_COMPILE_DEFINITIONS RIPPLE_ROCKSDB_AVAILABLE=1
|
||||||
)
|
)
|
||||||
target_link_libraries(xrpl_libs INTERFACE RocksDB::rocksdb)
|
target_link_libraries(ripple_libs INTERFACE RocksDB::rocksdb)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(nudb REQUIRED)
|
find_package(nudb REQUIRED)
|
||||||
find_package(date REQUIRED)
|
find_package(date REQUIRED)
|
||||||
find_package(xxHash REQUIRED)
|
find_package(xxHash REQUIRED)
|
||||||
|
|
||||||
target_link_libraries(xrpl_libs INTERFACE
|
target_link_libraries(ripple_libs INTERFACE
|
||||||
ed25519::ed25519
|
ed25519::ed25519
|
||||||
lz4::lz4
|
lz4::lz4
|
||||||
OpenSSL::Crypto
|
OpenSSL::Crypto
|
||||||
@@ -139,16 +139,16 @@ elseif(TARGET NuDB::nudb)
|
|||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "unknown nudb target")
|
message(FATAL_ERROR "unknown nudb target")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(xrpl_libs INTERFACE ${nudb})
|
target_link_libraries(ripple_libs INTERFACE ${nudb})
|
||||||
|
|
||||||
if(coverage)
|
if(coverage)
|
||||||
include(XrplCov)
|
include(RippledCov)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PROJECT_EXPORT_SET XrplExports)
|
set(PROJECT_EXPORT_SET RippleExports)
|
||||||
include(XrplCore)
|
include(RippledCore)
|
||||||
include(XrplInstall)
|
include(RippledInstall)
|
||||||
include(XrplValidatorKeys)
|
include(RippledValidatorKeys)
|
||||||
|
|
||||||
if(tests)
|
if(tests)
|
||||||
include(CTest)
|
include(CTest)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
ISC License
|
ISC License
|
||||||
|
|
||||||
Copyright (c) 2011, Arthur Britto, David Schwartz, Jed McCaleb, Vinnie Falco, Bob Way, Eric Lombrozo, Nikolaos D. Bougalis, Howard Hinnant.
|
Copyright (c) 2011, Arthur Britto, David Schwartz, Jed McCaleb, Vinnie Falco, Bob Way, Eric Lombrozo, Nikolaos D. Bougalis, Howard Hinnant.
|
||||||
Copyright (c) 2012-2025, the XRP Ledger developers.
|
Copyright (c) 2012-2020, the XRP Ledger developers.
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute this software for any
|
Permission to use, copy, modify, and distribute this software for any
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
|
|||||||
@@ -975,47 +975,6 @@
|
|||||||
# number of ledger records online. Must be greater
|
# number of ledger records online. Must be greater
|
||||||
# than or equal to ledger_history.
|
# than or equal to ledger_history.
|
||||||
#
|
#
|
||||||
# Optional keys for NuDB only:
|
|
||||||
#
|
|
||||||
# nudb_block_size EXPERIMENTAL: Block size in bytes for NuDB storage.
|
|
||||||
# Must be a power of 2 between 4096 and 32768. Default is 4096.
|
|
||||||
#
|
|
||||||
# This parameter controls the fundamental storage unit
|
|
||||||
# size for NuDB's internal data structures. The choice
|
|
||||||
# of block size can significantly impact performance
|
|
||||||
# depending on your storage hardware and filesystem:
|
|
||||||
#
|
|
||||||
# - 4096 bytes: Optimal for most standard SSDs and
|
|
||||||
# traditional filesystems (ext4, NTFS, HFS+).
|
|
||||||
# Provides good balance of performance and storage
|
|
||||||
# efficiency. Recommended for most deployments.
|
|
||||||
# Minimizes memory footprint and provides consistent
|
|
||||||
# low-latency access patterns across diverse hardware.
|
|
||||||
#
|
|
||||||
# - 8192-16384 bytes: May improve performance on
|
|
||||||
# high-end NVMe SSDs and copy-on-write filesystems
|
|
||||||
# like ZFS or Btrfs that benefit from larger block
|
|
||||||
# alignment. Can reduce metadata overhead for large
|
|
||||||
# databases. Offers better sequential throughput and
|
|
||||||
# reduced I/O operations at the cost of higher memory
|
|
||||||
# usage per operation.
|
|
||||||
#
|
|
||||||
# - 32768 bytes (32K): Maximum supported block size
|
|
||||||
# for high-performance scenarios with very fast
|
|
||||||
# storage. May increase memory usage and reduce
|
|
||||||
# efficiency for smaller databases. Best suited for
|
|
||||||
# enterprise environments with abundant RAM.
|
|
||||||
#
|
|
||||||
# Performance testing is recommended before deploying
|
|
||||||
# any non-default block size in production environments.
|
|
||||||
#
|
|
||||||
# Note: This setting cannot be changed after database
|
|
||||||
# creation without rebuilding the entire database.
|
|
||||||
# Choose carefully based on your hardware and expected
|
|
||||||
# database size.
|
|
||||||
#
|
|
||||||
# Example: nudb_block_size=4096
|
|
||||||
#
|
|
||||||
# These keys modify the behavior of online_delete, and thus are only
|
# These keys modify the behavior of online_delete, and thus are only
|
||||||
# relevant if online_delete is defined and non-zero:
|
# relevant if online_delete is defined and non-zero:
|
||||||
#
|
#
|
||||||
@@ -1512,7 +1471,6 @@ secure_gateway = 127.0.0.1
|
|||||||
[node_db]
|
[node_db]
|
||||||
type=NuDB
|
type=NuDB
|
||||||
path=/var/lib/rippled/db/nudb
|
path=/var/lib/rippled/db/nudb
|
||||||
nudb_block_size=4096
|
|
||||||
online_delete=512
|
online_delete=512
|
||||||
advisory_delete=0
|
advisory_delete=0
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,21 @@
|
|||||||
|
macro(group_sources_in source_dir curdir)
|
||||||
|
file(GLOB children RELATIVE ${source_dir}/${curdir}
|
||||||
|
${source_dir}/${curdir}/*)
|
||||||
|
foreach (child ${children})
|
||||||
|
if (IS_DIRECTORY ${source_dir}/${curdir}/${child})
|
||||||
|
group_sources_in(${source_dir} ${curdir}/${child})
|
||||||
|
else()
|
||||||
|
string(REPLACE "/" "\\" groupname ${curdir})
|
||||||
|
source_group(${groupname} FILES
|
||||||
|
${source_dir}/${curdir}/${child})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(group_sources curdir)
|
||||||
|
group_sources_in(${PROJECT_SOURCE_DIR} ${curdir})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
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_ALL ON)
|
||||||
set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)
|
set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)
|
||||||
|
|||||||
@@ -109,9 +109,6 @@
|
|||||||
# - add a new function add_code_coverage_to_target
|
# - add a new function add_code_coverage_to_target
|
||||||
# - remove some unused code
|
# - remove some unused code
|
||||||
#
|
#
|
||||||
# 2025-11-11, Bronek Kozicki
|
|
||||||
# - make EXECUTABLE and EXECUTABLE_ARGS optional
|
|
||||||
#
|
|
||||||
# USAGE:
|
# USAGE:
|
||||||
#
|
#
|
||||||
# 1. Copy this file into your cmake modules path.
|
# 1. Copy this file into your cmake modules path.
|
||||||
@@ -320,10 +317,6 @@ function(setup_target_for_coverage_gcovr)
|
|||||||
set(Coverage_FORMAT xml)
|
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)
|
if("--output" IN_LIST GCOVR_ADDITIONAL_ARGS)
|
||||||
message(FATAL_ERROR "Unsupported --output option detected in GCOVR_ADDITIONAL_ARGS! Aborting...")
|
message(FATAL_ERROR "Unsupported --output option detected in GCOVR_ADDITIONAL_ARGS! Aborting...")
|
||||||
else()
|
else()
|
||||||
@@ -405,18 +398,17 @@ function(setup_target_for_coverage_gcovr)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Set up commands which will be run to generate coverage data
|
# 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
|
# Run tests
|
||||||
# before running the coverage target NAME
|
set(GCOVR_EXEC_TESTS_CMD
|
||||||
if(DEFINED Coverage_EXECUTABLE)
|
${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}
|
||||||
set(GCOVR_EXEC_TESTS_CMD
|
)
|
||||||
${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Create folder
|
# Create folder
|
||||||
if(DEFINED GCOVR_CREATE_FOLDER)
|
if(DEFINED GCOVR_CREATE_FOLDER)
|
||||||
set(GCOVR_FOLDER_CMD
|
set(GCOVR_FOLDER_CMD
|
||||||
${CMAKE_COMMAND} -E make_directory ${GCOVR_CREATE_FOLDER})
|
${CMAKE_COMMAND} -E make_directory ${GCOVR_CREATE_FOLDER})
|
||||||
|
else()
|
||||||
|
set(GCOVR_FOLDER_CMD echo) # dummy
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Running gcovr
|
# Running gcovr
|
||||||
@@ -433,13 +425,11 @@ function(setup_target_for_coverage_gcovr)
|
|||||||
if(CODE_COVERAGE_VERBOSE)
|
if(CODE_COVERAGE_VERBOSE)
|
||||||
message(STATUS "Executed command report")
|
message(STATUS "Executed command report")
|
||||||
|
|
||||||
if(NOT "${GCOVR_EXEC_TESTS_CMD}" STREQUAL "")
|
message(STATUS "Command to run tests: ")
|
||||||
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}")
|
||||||
message(STATUS "${GCOVR_EXEC_TESTS_CMD_SPACED}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT "${GCOVR_FOLDER_CMD}" STREQUAL "")
|
if(NOT GCOVR_FOLDER_CMD STREQUAL "echo")
|
||||||
message(STATUS "Command to create a folder: ")
|
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}")
|
message(STATUS "${GCOVR_FOLDER_CMD_SPACED}")
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ if (static OR MSVC)
|
|||||||
else ()
|
else ()
|
||||||
set (Boost_USE_STATIC_RUNTIME OFF)
|
set (Boost_USE_STATIC_RUNTIME OFF)
|
||||||
endif ()
|
endif ()
|
||||||
find_dependency (Boost
|
find_dependency (Boost 1.70
|
||||||
COMPONENTS
|
COMPONENTS
|
||||||
chrono
|
chrono
|
||||||
container
|
container
|
||||||
@@ -45,10 +45,12 @@ if (static OR APPLE OR MSVC)
|
|||||||
set (OPENSSL_USE_STATIC_LIBS ON)
|
set (OPENSSL_USE_STATIC_LIBS ON)
|
||||||
endif ()
|
endif ()
|
||||||
set (OPENSSL_MSVC_STATIC_RT ON)
|
set (OPENSSL_MSVC_STATIC_RT ON)
|
||||||
find_dependency (OpenSSL REQUIRED)
|
find_dependency (OpenSSL 1.1.1 REQUIRED)
|
||||||
find_dependency (ZLIB)
|
find_dependency (ZLIB)
|
||||||
find_dependency (date)
|
find_dependency (date)
|
||||||
if (TARGET ZLIB::ZLIB)
|
if (TARGET ZLIB::ZLIB)
|
||||||
set_target_properties(OpenSSL::Crypto PROPERTIES
|
set_target_properties(OpenSSL::Crypto PROPERTIES
|
||||||
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
include ("${CMAKE_CURRENT_LIST_DIR}/RippleTargets.cmake")
|
||||||
@@ -7,25 +7,22 @@
|
|||||||
toolchain file, especially the ABI-impacting ones
|
toolchain file, especially the ABI-impacting ones
|
||||||
#]=========================================================]
|
#]=========================================================]
|
||||||
add_library (common INTERFACE)
|
add_library (common INTERFACE)
|
||||||
add_library (Xrpl::common ALIAS common)
|
add_library (Ripple::common ALIAS common)
|
||||||
# add a single global dependency on this interface lib
|
# add a single global dependency on this interface lib
|
||||||
link_libraries (Xrpl::common)
|
link_libraries (Ripple::common)
|
||||||
set_target_properties (common
|
set_target_properties (common
|
||||||
PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
target_compile_definitions (common
|
target_compile_definitions (common
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<$<CONFIG:Debug>:DEBUG _DEBUG>
|
$<$<CONFIG:Debug>:DEBUG _DEBUG>
|
||||||
#[===[
|
$<$<AND:$<BOOL:${profile}>,$<NOT:$<BOOL:${assert}>>>:NDEBUG>)
|
||||||
NOTE: CMAKE release builds already have NDEBUG defined, so no need to add it
|
# ^^^^ NOTE: CMAKE release builds already have NDEBUG
|
||||||
explicitly except for the special case of (profile ON) and (assert OFF).
|
# defined, so no need to add it explicitly except for
|
||||||
Presumably this is because we don't want profile builds asserting unless
|
# this special case of (profile ON) and (assert OFF)
|
||||||
asserts were specifically requested.
|
# -- presumably this is because we don't want profile
|
||||||
]===]
|
# builds asserting unless asserts were specifically
|
||||||
$<$<AND:$<BOOL:${profile}>,$<NOT:$<BOOL:${assert}>>>:NDEBUG>
|
# requested
|
||||||
# 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
|
# remove existing exception flag since we set it to -EHa
|
||||||
@@ -13,7 +13,7 @@ set_target_properties(xrpl.libpb PROPERTIES UNITY_BUILD OFF)
|
|||||||
target_protobuf_sources(xrpl.libpb xrpl/proto
|
target_protobuf_sources(xrpl.libpb xrpl/proto
|
||||||
LANGUAGE cpp
|
LANGUAGE cpp
|
||||||
IMPORT_DIRS include/xrpl/proto
|
IMPORT_DIRS include/xrpl/proto
|
||||||
PROTOS include/xrpl/proto/xrpl.proto
|
PROTOS include/xrpl/proto/ripple.proto
|
||||||
)
|
)
|
||||||
|
|
||||||
file(GLOB_RECURSE protos "include/xrpl/proto/org/*.proto")
|
file(GLOB_RECURSE protos "include/xrpl/proto/org/*.proto")
|
||||||
@@ -53,15 +53,14 @@ add_library(xrpl.imports.main INTERFACE)
|
|||||||
|
|
||||||
target_link_libraries(xrpl.imports.main
|
target_link_libraries(xrpl.imports.main
|
||||||
INTERFACE
|
INTERFACE
|
||||||
|
LibArchive::LibArchive
|
||||||
|
OpenSSL::Crypto
|
||||||
|
Ripple::boost
|
||||||
|
Ripple::opts
|
||||||
|
Ripple::syslibs
|
||||||
absl::random_random
|
absl::random_random
|
||||||
date::date
|
date::date
|
||||||
ed25519::ed25519
|
ed25519::ed25519
|
||||||
LibArchive::LibArchive
|
|
||||||
OpenSSL::Crypto
|
|
||||||
Xrpl::boost
|
|
||||||
Xrpl::libs
|
|
||||||
Xrpl::opts
|
|
||||||
Xrpl::syslibs
|
|
||||||
secp256k1::secp256k1
|
secp256k1::secp256k1
|
||||||
xrpl.libpb
|
xrpl.libpb
|
||||||
xxHash::xxhash
|
xxHash::xxhash
|
||||||
@@ -73,7 +72,10 @@ include(target_link_modules)
|
|||||||
|
|
||||||
# Level 01
|
# Level 01
|
||||||
add_module(xrpl beast)
|
add_module(xrpl beast)
|
||||||
target_link_libraries(xrpl.libxrpl.beast PUBLIC xrpl.imports.main)
|
target_link_libraries(xrpl.libxrpl.beast PUBLIC
|
||||||
|
xrpl.imports.main
|
||||||
|
xrpl.libpb
|
||||||
|
)
|
||||||
|
|
||||||
# Level 02
|
# Level 02
|
||||||
add_module(xrpl basics)
|
add_module(xrpl basics)
|
||||||
@@ -109,21 +111,6 @@ target_link_libraries(xrpl.libxrpl.net PUBLIC
|
|||||||
add_module(xrpl server)
|
add_module(xrpl server)
|
||||||
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)
|
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)
|
||||||
|
|
||||||
add_module(xrpl nodestore)
|
|
||||||
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
|
|
||||||
)
|
|
||||||
|
|
||||||
add_module(xrpl ledger)
|
add_module(xrpl ledger)
|
||||||
target_link_libraries(xrpl.libxrpl.ledger PUBLIC
|
target_link_libraries(xrpl.libxrpl.ledger PUBLIC
|
||||||
xrpl.libxrpl.basics
|
xrpl.libxrpl.basics
|
||||||
@@ -149,8 +136,6 @@ target_link_modules(xrpl PUBLIC
|
|||||||
protocol
|
protocol
|
||||||
resource
|
resource
|
||||||
server
|
server
|
||||||
nodestore
|
|
||||||
shamap
|
|
||||||
net
|
net
|
||||||
ledger
|
ledger
|
||||||
)
|
)
|
||||||
@@ -165,14 +150,14 @@ target_link_modules(xrpl PUBLIC
|
|||||||
# $<INSTALL_INTERFACE:include>)
|
# $<INSTALL_INTERFACE:include>)
|
||||||
|
|
||||||
if(xrpld)
|
if(xrpld)
|
||||||
add_executable(xrpld)
|
add_executable(rippled)
|
||||||
if(tests)
|
if(tests)
|
||||||
target_compile_definitions(xrpld PUBLIC ENABLE_TESTS)
|
target_compile_definitions(rippled PUBLIC ENABLE_TESTS)
|
||||||
target_compile_definitions(xrpld PRIVATE
|
target_compile_definitions(rippled PRIVATE
|
||||||
UNIT_TEST_REFERENCE_FEE=${UNIT_TEST_REFERENCE_FEE}
|
UNIT_TEST_REFERENCE_FEE=${UNIT_TEST_REFERENCE_FEE}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(xrpld
|
target_include_directories(rippled
|
||||||
PRIVATE
|
PRIVATE
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
|
||||||
)
|
)
|
||||||
@@ -180,36 +165,36 @@ if(xrpld)
|
|||||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS
|
file(GLOB_RECURSE sources CONFIGURE_DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/src/xrpld/*.cpp"
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/xrpld/*.cpp"
|
||||||
)
|
)
|
||||||
target_sources(xrpld PRIVATE ${sources})
|
target_sources(rippled PRIVATE ${sources})
|
||||||
|
|
||||||
if(tests)
|
if(tests)
|
||||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS
|
file(GLOB_RECURSE sources CONFIGURE_DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/src/test/*.cpp"
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/test/*.cpp"
|
||||||
)
|
)
|
||||||
target_sources(xrpld PRIVATE ${sources})
|
target_sources(rippled PRIVATE ${sources})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(xrpld
|
target_link_libraries(rippled
|
||||||
Xrpl::boost
|
Ripple::boost
|
||||||
Xrpl::opts
|
Ripple::opts
|
||||||
Xrpl::libs
|
Ripple::libs
|
||||||
xrpl.libxrpl
|
xrpl.libxrpl
|
||||||
)
|
)
|
||||||
exclude_if_included(xrpld)
|
exclude_if_included(rippled)
|
||||||
# define a macro for tests that might need to
|
# define a macro for tests that might need to
|
||||||
# be exluded or run differently in CI environment
|
# be exluded or run differently in CI environment
|
||||||
if(is_ci)
|
if(is_ci)
|
||||||
target_compile_definitions(xrpld PRIVATE XRPL_RUNNING_IN_CI)
|
target_compile_definitions(rippled PRIVATE RIPPLED_RUNNING_IN_CI)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if(voidstar)
|
if(voidstar)
|
||||||
target_compile_options(xrpld
|
target_compile_options(rippled
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-fsanitize-coverage=trace-pc-guard
|
-fsanitize-coverage=trace-pc-guard
|
||||||
)
|
)
|
||||||
# xrpld requires access to antithesis-sdk-cpp implementation file
|
# rippled requires access to antithesis-sdk-cpp implementation file
|
||||||
# antithesis_instrumentation.h, which is not exported as INTERFACE
|
# antithesis_instrumentation.h, which is not exported as INTERFACE
|
||||||
target_include_directories(xrpld
|
target_include_directories(rippled
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/external/antithesis-sdk
|
${CMAKE_SOURCE_DIR}/external/antithesis-sdk
|
||||||
)
|
)
|
||||||
@@ -223,6 +208,4 @@ if(xrpld)
|
|||||||
src/test/ledger/Invariants_test.cpp
|
src/test/ledger/Invariants_test.cpp
|
||||||
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
|
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
|
||||||
endif()
|
endif()
|
||||||
# For the time being, we will keep the name of the binary as it was.
|
|
||||||
set_target_properties(xrpld PROPERTIES OUTPUT_NAME "rippled")
|
|
||||||
endif()
|
endif()
|
||||||
@@ -11,9 +11,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(ProcessorCount)
|
|
||||||
ProcessorCount(PROCESSOR_COUNT)
|
|
||||||
|
|
||||||
include(CodeCoverage)
|
include(CodeCoverage)
|
||||||
|
|
||||||
# The instructions for these commands come from the `CodeCoverage` module,
|
# The instructions for these commands come from the `CodeCoverage` module,
|
||||||
@@ -29,13 +26,15 @@ list(APPEND GCOVR_ADDITIONAL_ARGS
|
|||||||
--exclude-throw-branches
|
--exclude-throw-branches
|
||||||
--exclude-noncode-lines
|
--exclude-noncode-lines
|
||||||
--exclude-unreachable-branches -s
|
--exclude-unreachable-branches -s
|
||||||
-j ${PROCESSOR_COUNT})
|
-j ${coverage_test_parallelism})
|
||||||
|
|
||||||
setup_target_for_coverage_gcovr(
|
setup_target_for_coverage_gcovr(
|
||||||
NAME coverage
|
NAME coverage
|
||||||
FORMAT ${coverage_format}
|
FORMAT ${coverage_format}
|
||||||
|
EXECUTABLE rippled
|
||||||
|
EXECUTABLE_ARGS --unittest$<$<BOOL:${coverage_test}>:=${coverage_test}> --unittest-jobs ${coverage_test_parallelism} --quiet --unittest-log
|
||||||
EXCLUDE "src/test" "src/tests" "include/xrpl/beast/test" "include/xrpl/beast/unit_test" "${CMAKE_BINARY_DIR}/pb-xrpl.libpb"
|
EXCLUDE "src/test" "src/tests" "include/xrpl/beast/test" "include/xrpl/beast/unit_test" "${CMAKE_BINARY_DIR}/pb-xrpl.libpb"
|
||||||
DEPENDENCIES xrpld xrpl.tests
|
DEPENDENCIES rippled
|
||||||
)
|
)
|
||||||
|
|
||||||
add_code_coverage_to_target(opts INTERFACE)
|
add_code_coverage_to_target(opts INTERFACE)
|
||||||
@@ -8,25 +8,22 @@ install (
|
|||||||
TARGETS
|
TARGETS
|
||||||
common
|
common
|
||||||
opts
|
opts
|
||||||
xrpl_boost
|
ripple_syslibs
|
||||||
xrpl_libs
|
ripple_boost
|
||||||
xrpl_syslibs
|
|
||||||
xrpl.imports.main
|
xrpl.imports.main
|
||||||
xrpl.libpb
|
xrpl.libpb
|
||||||
xrpl.libxrpl
|
|
||||||
xrpl.libxrpl.basics
|
xrpl.libxrpl.basics
|
||||||
xrpl.libxrpl.beast
|
xrpl.libxrpl.beast
|
||||||
xrpl.libxrpl.crypto
|
xrpl.libxrpl.crypto
|
||||||
xrpl.libxrpl.json
|
xrpl.libxrpl.json
|
||||||
xrpl.libxrpl.ledger
|
|
||||||
xrpl.libxrpl.net
|
|
||||||
xrpl.libxrpl.nodestore
|
|
||||||
xrpl.libxrpl.protocol
|
xrpl.libxrpl.protocol
|
||||||
xrpl.libxrpl.resource
|
xrpl.libxrpl.resource
|
||||||
|
xrpl.libxrpl.ledger
|
||||||
xrpl.libxrpl.server
|
xrpl.libxrpl.server
|
||||||
xrpl.libxrpl.shamap
|
xrpl.libxrpl.net
|
||||||
|
xrpl.libxrpl
|
||||||
antithesis-sdk-cpp
|
antithesis-sdk-cpp
|
||||||
EXPORT XrplExports
|
EXPORT RippleExports
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION lib
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
@@ -37,19 +34,26 @@ install(
|
|||||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
install (EXPORT XrplExports
|
install(CODE "
|
||||||
FILE XrplTargets.cmake
|
set(CMAKE_MODULE_PATH \"${CMAKE_MODULE_PATH}\")
|
||||||
NAMESPACE Xrpl::
|
include(create_symbolic_link)
|
||||||
DESTINATION lib/cmake/xrpl)
|
create_symbolic_link(xrpl \
|
||||||
|
\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/ripple)
|
||||||
|
")
|
||||||
|
|
||||||
|
install (EXPORT RippleExports
|
||||||
|
FILE RippleTargets.cmake
|
||||||
|
NAMESPACE Ripple::
|
||||||
|
DESTINATION lib/cmake/ripple)
|
||||||
include (CMakePackageConfigHelpers)
|
include (CMakePackageConfigHelpers)
|
||||||
write_basic_package_version_file (
|
write_basic_package_version_file (
|
||||||
XrplConfigVersion.cmake
|
RippleConfigVersion.cmake
|
||||||
VERSION ${xrpld_version}
|
VERSION ${rippled_version}
|
||||||
COMPATIBILITY SameMajorVersion)
|
COMPATIBILITY SameMajorVersion)
|
||||||
|
|
||||||
if (is_root_project AND TARGET xrpld)
|
if (is_root_project AND TARGET rippled)
|
||||||
install (TARGETS xrpld RUNTIME DESTINATION bin)
|
install (TARGETS rippled RUNTIME DESTINATION bin)
|
||||||
set_target_properties(xrpld PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON)
|
set_target_properties(rippled PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON)
|
||||||
# sample configs should not overwrite existing files
|
# sample configs should not overwrite existing files
|
||||||
# install if-not-exists workaround as suggested by
|
# install if-not-exists workaround as suggested by
|
||||||
# https://cmake.org/Bug/view.php?id=12646
|
# https://cmake.org/Bug/view.php?id=12646
|
||||||
@@ -68,12 +72,12 @@ if (is_root_project AND TARGET xrpld)
|
|||||||
set(CMAKE_MODULE_PATH \"${CMAKE_MODULE_PATH}\")
|
set(CMAKE_MODULE_PATH \"${CMAKE_MODULE_PATH}\")
|
||||||
include(create_symbolic_link)
|
include(create_symbolic_link)
|
||||||
create_symbolic_link(rippled${suffix} \
|
create_symbolic_link(rippled${suffix} \
|
||||||
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/xrpld${suffix})
|
\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/xrpld${suffix})
|
||||||
")
|
")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
install (
|
install (
|
||||||
FILES
|
FILES
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/XrplConfig.cmake
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/RippleConfig.cmake
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/XrplConfigVersion.cmake
|
${CMAKE_CURRENT_BINARY_DIR}/RippleConfigVersion.cmake
|
||||||
DESTINATION lib/cmake/xrpl)
|
DESTINATION lib/cmake/ripple)
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
#[===================================================================[
|
#[===================================================================[
|
||||||
xrpld compile options/settings via an interface library
|
rippled compile options/settings via an interface library
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
add_library (opts INTERFACE)
|
add_library (opts INTERFACE)
|
||||||
add_library (Xrpl::opts ALIAS opts)
|
add_library (Ripple::opts ALIAS opts)
|
||||||
target_compile_definitions (opts
|
target_compile_definitions (opts
|
||||||
INTERFACE
|
INTERFACE
|
||||||
BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS
|
BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS
|
||||||
@@ -21,7 +21,7 @@ target_compile_definitions (opts
|
|||||||
>
|
>
|
||||||
$<$<BOOL:${beast_no_unit_test_inline}>:BEAST_NO_UNIT_TEST_INLINE=1>
|
$<$<BOOL:${beast_no_unit_test_inline}>:BEAST_NO_UNIT_TEST_INLINE=1>
|
||||||
$<$<BOOL:${beast_disable_autolink}>:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1>
|
$<$<BOOL:${beast_disable_autolink}>:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1>
|
||||||
$<$<BOOL:${single_io_service_thread}>:XRPL_SINGLE_IO_SERVICE_THREAD=1>
|
$<$<BOOL:${single_io_service_thread}>:RIPPLE_SINGLE_IO_SERVICE_THREAD=1>
|
||||||
$<$<BOOL:${voidstar}>:ENABLE_VOIDSTAR>)
|
$<$<BOOL:${voidstar}>:ENABLE_VOIDSTAR>)
|
||||||
target_compile_options (opts
|
target_compile_options (opts
|
||||||
INTERFACE
|
INTERFACE
|
||||||
@@ -59,12 +59,12 @@ if (san)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
#[===================================================================[
|
#[===================================================================[
|
||||||
xrpld transitive library deps via an interface library
|
rippled transitive library deps via an interface library
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
add_library (xrpl_syslibs INTERFACE)
|
add_library (ripple_syslibs INTERFACE)
|
||||||
add_library (Xrpl::syslibs ALIAS xrpl_syslibs)
|
add_library (Ripple::syslibs ALIAS ripple_syslibs)
|
||||||
target_link_libraries (xrpl_syslibs
|
target_link_libraries (ripple_syslibs
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<$<BOOL:${MSVC}>:
|
$<$<BOOL:${MSVC}>:
|
||||||
legacy_stdio_definitions.lib
|
legacy_stdio_definitions.lib
|
||||||
@@ -89,9 +89,9 @@ target_link_libraries (xrpl_syslibs
|
|||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
find_package (Threads)
|
find_package (Threads)
|
||||||
target_link_libraries (xrpl_syslibs INTERFACE Threads::Threads)
|
target_link_libraries (ripple_syslibs INTERFACE Threads::Threads)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_library (xrpl_libs INTERFACE)
|
add_library (ripple_libs INTERFACE)
|
||||||
add_library (Xrpl::libs ALIAS xrpl_libs)
|
add_library (Ripple::libs ALIAS ripple_libs)
|
||||||
target_link_libraries (xrpl_libs INTERFACE Xrpl::syslibs)
|
target_link_libraries (ripple_libs INTERFACE Ripple::syslibs)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#[===================================================================[
|
#[===================================================================[
|
||||||
sanity checks
|
convenience variables and sanity checks
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
@@ -16,19 +16,39 @@ if (NOT is_multiconfig)
|
|||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
get_directory_property(has_parent PARENT_DIRECTORY)
|
||||||
|
if (has_parent)
|
||||||
|
set (is_root_project OFF)
|
||||||
|
else ()
|
||||||
|
set (is_root_project ON)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang") # both Clang and AppleClang
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang") # both Clang and AppleClang
|
||||||
set (is_clang TRUE)
|
set (is_clang TRUE)
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
|
||||||
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
|
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
|
||||||
message (FATAL_ERROR "This project requires clang 16 or later")
|
message (FATAL_ERROR "This project requires clang 8 or later")
|
||||||
endif ()
|
endif ()
|
||||||
|
# TODO min AppleClang version check ?
|
||||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
set (is_gcc TRUE)
|
set (is_gcc TRUE)
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0)
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
|
||||||
message (FATAL_ERROR "This project requires GCC 12 or later")
|
message (FATAL_ERROR "This project requires GCC 8 or later")
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
set (is_linux TRUE)
|
||||||
|
else ()
|
||||||
|
set (is_linux FALSE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if ("$ENV{CI}" STREQUAL "true" OR "$ENV{CONTINUOUS_INTEGRATION}" STREQUAL "true")
|
||||||
|
set (is_ci TRUE)
|
||||||
|
else ()
|
||||||
|
set (is_ci FALSE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# check for in-source build and fail
|
# check for in-source build and fail
|
||||||
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||||
message (FATAL_ERROR "Builds (in-source) are not allowed in "
|
message (FATAL_ERROR "Builds (in-source) are not allowed in "
|
||||||
@@ -41,8 +61,8 @@ if (MSVC AND CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
message (FATAL_ERROR "Xrpld requires a 64 bit target architecture.\n"
|
message (FATAL_ERROR "Rippled requires a 64 bit target architecture.\n"
|
||||||
"The most likely cause of this warning is trying to build xrpld with a 32-bit OS.")
|
"The most likely cause of this warning is trying to build rippled with a 32-bit OS.")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (APPLE AND NOT HOMEBREW)
|
if (APPLE AND NOT HOMEBREW)
|
||||||
@@ -1,25 +1,10 @@
|
|||||||
#[===================================================================[
|
#[===================================================================[
|
||||||
declare options and variables
|
declare user options/settings
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
include(ProcessorCount)
|
||||||
set (is_linux TRUE)
|
|
||||||
else()
|
|
||||||
set(is_linux FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if("$ENV{CI}" STREQUAL "true" OR "$ENV{CONTINUOUS_INTEGRATION}" STREQUAL "true")
|
ProcessorCount(PROCESSOR_COUNT)
|
||||||
set(is_ci TRUE)
|
|
||||||
else()
|
|
||||||
set(is_ci FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_directory_property(has_parent PARENT_DIRECTORY)
|
|
||||||
if(has_parent)
|
|
||||||
set(is_root_project OFF)
|
|
||||||
else()
|
|
||||||
set(is_root_project ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(assert "Enables asserts, even in release builds" OFF)
|
option(assert "Enables asserts, even in release builds" OFF)
|
||||||
|
|
||||||
@@ -40,30 +25,31 @@ if(unity)
|
|||||||
endif()
|
endif()
|
||||||
set(CMAKE_UNITY_BUILD ON CACHE BOOL "Do a unity build")
|
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)
|
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(coverage "Generates coverage info." OFF)
|
||||||
option(profile "Add profiling flags" OFF)
|
option(profile "Add profiling flags" OFF)
|
||||||
|
set(coverage_test_parallelism "${PROCESSOR_COUNT}" CACHE STRING
|
||||||
|
"Unit tests parallelism for the purpose of coverage report.")
|
||||||
set(coverage_format "html-details" CACHE STRING
|
set(coverage_format "html-details" CACHE STRING
|
||||||
"Output format of the coverage report.")
|
"Output format of the coverage report.")
|
||||||
set(coverage_extra_args "" CACHE STRING
|
set(coverage_extra_args "" CACHE STRING
|
||||||
"Additional arguments to pass to gcovr.")
|
"Additional arguments to pass to gcovr.")
|
||||||
|
set(coverage_test "" CACHE STRING
|
||||||
|
"On gcc & clang, the specific unit test(s) to run for coverage. Default is all tests.")
|
||||||
|
if(coverage_test AND NOT coverage)
|
||||||
|
set(coverage ON CACHE BOOL "gcc/clang only" FORCE)
|
||||||
|
endif()
|
||||||
option(wextra "compile with extra gcc/clang warnings enabled" ON)
|
option(wextra "compile with extra gcc/clang warnings enabled" ON)
|
||||||
else()
|
else()
|
||||||
set(profile OFF CACHE BOOL "gcc/clang only" FORCE)
|
set(profile OFF CACHE BOOL "gcc/clang only" FORCE)
|
||||||
set(coverage 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)
|
set(wextra OFF CACHE BOOL "gcc/clang only" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(is_linux)
|
if(is_linux)
|
||||||
option(BUILD_SHARED_LIBS "build shared xrpl libraries" OFF)
|
option(BUILD_SHARED_LIBS "build shared ripple libraries" OFF)
|
||||||
option(static "link protobuf, openssl, libc++, and boost statically" ON)
|
option(static "link protobuf, openssl, libc++, and boost statically" ON)
|
||||||
option(perf "Enables flags that assist with perf recording" OFF)
|
option(perf "Enables flags that assist with perf recording" OFF)
|
||||||
option(use_gold "enables detection of gold (binutils) linker" ON)
|
option(use_gold "enables detection of gold (binutils) linker" ON)
|
||||||
@@ -72,19 +58,17 @@ else()
|
|||||||
# we are not ready to allow shared-libs on windows because it would require
|
# 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
|
# export declarations. On macos it's more feasible, but static openssl
|
||||||
# produces odd linker errors, thus we disable shared lib builds for now.
|
# 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 ripple libraries - OFF for win/macos" FORCE)
|
||||||
set(static ON CACHE BOOL "static link, linux only. ON 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(perf OFF CACHE BOOL "perf flags, linux only" FORCE)
|
||||||
set(use_gold OFF CACHE BOOL "gold linker, 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)
|
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)
|
option(use_lld "enables detection of lld linker" ON)
|
||||||
else()
|
else()
|
||||||
set(use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE)
|
set(use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(jemalloc "Enables jemalloc for heap profiling" OFF)
|
option(jemalloc "Enables jemalloc for heap profiling" OFF)
|
||||||
option(werr "treat warnings as errors" OFF)
|
option(werr "treat warnings as errors" OFF)
|
||||||
option(local_protobuf
|
option(local_protobuf
|
||||||
@@ -118,6 +102,16 @@ if(san)
|
|||||||
message(FATAL_ERROR "${san} sanitizer does not seem to be supported by your compiler")
|
message(FATAL_ERROR "${san} sanitizer does not seem to be supported by your compiler")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
set(container_label "" CACHE STRING "tag to use for package building containers")
|
||||||
|
option(packages_only
|
||||||
|
"ONLY generate package building targets. This is special use-case and almost \
|
||||||
|
certainly not what you want. Use with caution as you won't be able to build \
|
||||||
|
any compiled targets locally." OFF)
|
||||||
|
option(have_package_container
|
||||||
|
"Sometimes you already have the tagged container you want to use for package \
|
||||||
|
building and you don't want docker to rebuild it. This flag will detach the \
|
||||||
|
dependency of the package build from the container build. It's an advanced \
|
||||||
|
use case and most likely you should not be touching this flag." OFF)
|
||||||
|
|
||||||
# the remaining options are obscure and rarely used
|
# the remaining options are obscure and rarely used
|
||||||
option(beast_no_unit_test_inline
|
option(beast_no_unit_test_inline
|
||||||
@@ -131,13 +125,15 @@ option(boost_show_deprecated
|
|||||||
"Allow boost to fail on deprecated usage. Only useful if you're trying\
|
"Allow boost to fail on deprecated usage. Only useful if you're trying\
|
||||||
to find deprecated calls."
|
to find deprecated calls."
|
||||||
OFF)
|
OFF)
|
||||||
|
option(beast_hashers
|
||||||
|
"Use local implementations for sha/ripemd hashes (experimental, not recommended)"
|
||||||
|
OFF)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
option(beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF)
|
option(beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF)
|
||||||
else()
|
else()
|
||||||
set(beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE)
|
set(beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(coverage)
|
if(coverage)
|
||||||
message(STATUS "coverage build requested - forcing Debug build")
|
message(STATUS "coverage build requested - forcing Debug build")
|
||||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE)
|
set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE)
|
||||||
22
cmake/RippledValidatorKeys.cmake
Normal file
22
cmake/RippledValidatorKeys.cmake
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
option (validator_keys "Enables building of validator-keys-tool as a separate target (imported via FetchContent)" OFF)
|
||||||
|
|
||||||
|
if (validator_keys)
|
||||||
|
git_branch (current_branch)
|
||||||
|
# default to tracking VK master branch unless we are on release
|
||||||
|
if (NOT (current_branch STREQUAL "release"))
|
||||||
|
set (current_branch "master")
|
||||||
|
endif ()
|
||||||
|
message (STATUS "tracking ValidatorKeys branch: ${current_branch}")
|
||||||
|
|
||||||
|
FetchContent_Declare (
|
||||||
|
validator_keys_src
|
||||||
|
GIT_REPOSITORY https://github.com/ripple/validator-keys-tool.git
|
||||||
|
GIT_TAG "${current_branch}"
|
||||||
|
)
|
||||||
|
FetchContent_GetProperties (validator_keys_src)
|
||||||
|
if (NOT validator_keys_src_POPULATED)
|
||||||
|
message (STATUS "Pausing to download ValidatorKeys...")
|
||||||
|
FetchContent_Populate (validator_keys_src)
|
||||||
|
endif ()
|
||||||
|
add_subdirectory (${validator_keys_src_SOURCE_DIR} ${CMAKE_BINARY_DIR}/validator-keys)
|
||||||
|
endif ()
|
||||||
@@ -5,11 +5,11 @@
|
|||||||
file(STRINGS src/libxrpl/protocol/BuildInfo.cpp BUILD_INFO)
|
file(STRINGS src/libxrpl/protocol/BuildInfo.cpp BUILD_INFO)
|
||||||
foreach(line_ ${BUILD_INFO})
|
foreach(line_ ${BUILD_INFO})
|
||||||
if(line_ MATCHES "versionString[ ]*=[ ]*\"(.+)\"")
|
if(line_ MATCHES "versionString[ ]*=[ ]*\"(.+)\"")
|
||||||
set(xrpld_version ${CMAKE_MATCH_1})
|
set(rippled_version ${CMAKE_MATCH_1})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
if(xrpld_version)
|
if(rippled_version)
|
||||||
message(STATUS "xrpld version: ${xrpld_version}")
|
message(STATUS "rippled version: ${rippled_version}")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "unable to determine xrpld version")
|
message(FATAL_ERROR "unable to determine rippled version")
|
||||||
endif()
|
endif()
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
option (validator_keys "Enables building of validator-keys tool as a separate target (imported via FetchContent)" OFF)
|
|
||||||
|
|
||||||
if (validator_keys)
|
|
||||||
git_branch (current_branch)
|
|
||||||
# default to tracking VK master branch unless we are on release
|
|
||||||
if (NOT (current_branch STREQUAL "release"))
|
|
||||||
set (current_branch "master")
|
|
||||||
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}"
|
|
||||||
)
|
|
||||||
FetchContent_MakeAvailable(validator_keys)
|
|
||||||
set_target_properties(validator-keys PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
|
|
||||||
install(TARGETS validator-keys RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
@@ -12,10 +12,10 @@ find_package(Boost 1.82 REQUIRED
|
|||||||
thread
|
thread
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(xrpl_boost INTERFACE)
|
add_library(ripple_boost INTERFACE)
|
||||||
add_library(Xrpl::boost ALIAS xrpl_boost)
|
add_library(Ripple::boost ALIAS ripple_boost)
|
||||||
|
|
||||||
target_link_libraries(xrpl_boost
|
target_link_libraries(ripple_boost
|
||||||
INTERFACE
|
INTERFACE
|
||||||
Boost::headers
|
Boost::headers
|
||||||
Boost::chrono
|
Boost::chrono
|
||||||
@@ -30,7 +30,7 @@ target_link_libraries(xrpl_boost
|
|||||||
Boost::system
|
Boost::system
|
||||||
Boost::thread)
|
Boost::thread)
|
||||||
if(Boost_COMPILER)
|
if(Boost_COMPILER)
|
||||||
target_link_libraries(xrpl_boost INTERFACE Boost::disable_autolinking)
|
target_link_libraries(ripple_boost INTERFACE Boost::disable_autolinking)
|
||||||
endif()
|
endif()
|
||||||
if(san AND is_clang)
|
if(san AND is_clang)
|
||||||
# TODO: gcc does not support -fsanitize-blacklist...can we do something else
|
# TODO: gcc does not support -fsanitize-blacklist...can we do something else
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ function(xrpl_add_test name)
|
|||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${name}/*.cpp"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${name}/*.cpp"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp"
|
||||||
)
|
)
|
||||||
add_executable(${target} ${ARGN} ${sources})
|
add_executable(${target} EXCLUDE_FROM_ALL ${ARGN} ${sources})
|
||||||
|
|
||||||
isolate_headers(
|
isolate_headers(
|
||||||
${target}
|
${target}
|
||||||
@@ -22,4 +22,20 @@ function(xrpl_add_test name)
|
|||||||
UNITY_BUILD_BATCH_SIZE 0) # Adjust as needed
|
UNITY_BUILD_BATCH_SIZE 0) # Adjust as needed
|
||||||
|
|
||||||
add_test(NAME ${target} COMMAND ${target})
|
add_test(NAME ${target} COMMAND ${target})
|
||||||
|
set_tests_properties(
|
||||||
|
${target} PROPERTIES
|
||||||
|
FIXTURES_REQUIRED ${target}_fixture
|
||||||
|
)
|
||||||
|
|
||||||
|
add_test(
|
||||||
|
NAME ${target}.build
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND}
|
||||||
|
--build ${CMAKE_BINARY_DIR}
|
||||||
|
--config $<CONFIG>
|
||||||
|
--target ${target}
|
||||||
|
)
|
||||||
|
set_tests_properties(${target}.build PROPERTIES
|
||||||
|
FIXTURES_SETUP ${target}_fixture
|
||||||
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
16
conan.lock
16
conan.lock
@@ -6,18 +6,18 @@
|
|||||||
"sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63%1756234266.869",
|
"sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63%1756234266.869",
|
||||||
"soci/4.0.3#a9f8d773cd33e356b5879a4b0564f287%1756234262.318",
|
"soci/4.0.3#a9f8d773cd33e356b5879a4b0564f287%1756234262.318",
|
||||||
"snappy/1.1.10#968fef506ff261592ec30c574d4a7809%1756234314.246",
|
"snappy/1.1.10#968fef506ff261592ec30c574d4a7809%1756234314.246",
|
||||||
"rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1762797952.535",
|
"rocksdb/10.0.1#85537f46e538974d67da0c3977de48ac%1756234304.347",
|
||||||
"re2/20230301#dfd6e2bf050eb90ddd8729cfb4c844a4%1756234257.976",
|
"re2/20230301#dfd6e2bf050eb90ddd8729cfb4c844a4%1756234257.976",
|
||||||
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
|
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
|
||||||
"openssl/3.5.4#a1d5835cc6ed5c5b8f3cd5b9b5d24205%1760106486.594",
|
"openssl/1.1.1w#a8f0792d7c5121b954578a7149d23e03%1756223730.729",
|
||||||
"nudb/2.0.9#fb8dfd1a5557f5e0528114c2da17721e%1763150366.909",
|
"nudb/2.0.9#c62cfd501e57055a7e0d8ee3d5e5427d%1756234237.107",
|
||||||
"lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999",
|
"lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999",
|
||||||
"libiconv/1.17#1e65319e945f2d31941a9d28cc13c058%1756223727.64",
|
"libiconv/1.17#1e65319e945f2d31941a9d28cc13c058%1756223727.64",
|
||||||
"libbacktrace/cci.20210118#a7691bfccd8caaf66309df196790a5a1%1756230911.03",
|
"libbacktrace/cci.20210118#a7691bfccd8caaf66309df196790a5a1%1756230911.03",
|
||||||
"libarchive/3.8.1#5cf685686322e906cb42706ab7e099a8%1756234256.696",
|
"libarchive/3.8.1#5cf685686322e906cb42706ab7e099a8%1756234256.696",
|
||||||
"jemalloc/5.3.0#e951da9cf599e956cebc117880d2d9f8%1729241615.244",
|
"jemalloc/5.3.0#e951da9cf599e956cebc117880d2d9f8%1729241615.244",
|
||||||
"grpc/1.50.1#02291451d1e17200293a409410d1c4e1%1756234248.958",
|
"grpc/1.50.1#02291451d1e17200293a409410d1c4e1%1756234248.958",
|
||||||
"doctest/2.4.12#eb9fb352fb2fdfc8abb17ec270945165%1762797941.757",
|
"doctest/2.4.11#a4211dfc329a16ba9f280f9574025659%1756234220.819",
|
||||||
"date/3.0.4#f74bbba5a08fa388256688743136cb6f%1756234217.493",
|
"date/3.0.4#f74bbba5a08fa388256688743136cb6f%1756234217.493",
|
||||||
"c-ares/1.34.5#b78b91e7cfb1f11ce777a285bbf169c6%1756234217.915",
|
"c-ares/1.34.5#b78b91e7cfb1f11ce777a285bbf169c6%1756234217.915",
|
||||||
"bzip2/1.0.8#00b4a4658791c1f06914e087f0e792f5%1756234261.716",
|
"bzip2/1.0.8#00b4a4658791c1f06914e087f0e792f5%1756234261.716",
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
|
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
|
||||||
"nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904%1756234232.901",
|
"nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904%1756234232.901",
|
||||||
"msys2/cci.latest#5b73b10144f73cc5bfe0572ed9be39e1%1751977009.857",
|
"msys2/cci.latest#5b73b10144f73cc5bfe0572ed9be39e1%1751977009.857",
|
||||||
"m4/1.4.19#f119296e5c4772b3bb7ab060ae8f417b%1760707875.678",
|
"m4/1.4.19#b38ced39a01e31fef5435bc634461fd2%1700758725.451",
|
||||||
"cmake/3.31.8#dde3bde00bb843687e55aea5afa0e220%1756234232.89",
|
"cmake/3.31.8#dde3bde00bb843687e55aea5afa0e220%1756234232.89",
|
||||||
"b2/5.3.3#107c15377719889654eb9a162a673975%1756234226.28",
|
"b2/5.3.3#107c15377719889654eb9a162a673975%1756234226.28",
|
||||||
"automake/1.16.5#b91b7c384c3deaa9d535be02da14d04f%1755524470.56",
|
"automake/1.16.5#b91b7c384c3deaa9d535be02da14d04f%1755524470.56",
|
||||||
@@ -48,12 +48,6 @@
|
|||||||
"boost/1.83.0": [
|
"boost/1.83.0": [
|
||||||
"boost/1.88.0"
|
"boost/1.88.0"
|
||||||
],
|
],
|
||||||
"sqlite3/[>=3.44 <4]": [
|
|
||||||
"sqlite3/3.49.1"
|
|
||||||
],
|
|
||||||
"lz4/[>=1.9.4 <2]": [
|
|
||||||
"lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504"
|
|
||||||
],
|
|
||||||
"sqlite3/3.44.2": [
|
"sqlite3/3.44.2": [
|
||||||
"sqlite3/3.49.1"
|
"sqlite3/3.49.1"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# Global configuration for Conan. This is used to set the number of parallel
|
# Global configuration for Conan. This is used to set the number of parallel
|
||||||
# downloads and uploads.
|
# downloads, uploads, and build jobs. The verbosity is set to verbose to
|
||||||
|
# provide more information during the build process.
|
||||||
core:non_interactive=True
|
core:non_interactive=True
|
||||||
core.download:parallel={{ os.cpu_count() }}
|
core.download:parallel={{ os.cpu_count() }}
|
||||||
core.upload:parallel={{ os.cpu_count() }}
|
core.upload:parallel={{ os.cpu_count() }}
|
||||||
|
tools.build:jobs={{ (os.cpu_count() * 4/5) | int }}
|
||||||
|
tools.build:verbosity=verbose
|
||||||
|
tools.compilation:verbosity=verbose
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
include(./sanitizers)
|
|
||||||
@@ -21,11 +21,14 @@ compiler.libcxx={{detect_api.detect_libcxx(compiler, version, compiler_exe)}}
|
|||||||
|
|
||||||
[conf]
|
[conf]
|
||||||
{% if compiler == "clang" and compiler_version >= 19 %}
|
{% if compiler == "clang" and compiler_version >= 19 %}
|
||||||
grpc/1.50.1:tools.build:cxxflags+=['-Wno-missing-template-arg-list-after-template-kw']
|
tools.build:cxxflags=['-Wno-missing-template-arg-list-after-template-kw']
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if compiler == "apple-clang" and compiler_version >= 17 %}
|
{% if compiler == "apple-clang" and compiler_version >= 17 %}
|
||||||
grpc/1.50.1:tools.build:cxxflags+=['-Wno-missing-template-arg-list-after-template-kw']
|
tools.build:cxxflags=['-Wno-missing-template-arg-list-after-template-kw']
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if compiler == "gcc" and compiler_version < 13 %}
|
{% if compiler == "gcc" and compiler_version < 13 %}
|
||||||
tools.build:cxxflags+=['-Wno-restrict']
|
tools.build:cxxflags=['-Wno-restrict']
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[tool_requires]
|
||||||
|
!cmake/*: cmake/[>=3 <4]
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
include(./default)
|
|
||||||
{% set compiler, version, compiler_exe = detect_api.detect_default_compiler() %}
|
|
||||||
|
|
||||||
{% set default_sanitizer_flags = "undefined,float-divide-by-zero,signed-integer-overflow" %}
|
|
||||||
{% set sanitizers = os.getenv("SANITIZERS") %}
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
{% if sanitizers == "Address" or sanitizers == "Thread" %}
|
|
||||||
user.package:sanitizers={{ sanitizers }}
|
|
||||||
tools.info.package_ids:confs+=["user.package:sanitizers"]
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[conf]
|
|
||||||
|
|
||||||
{% if compiler == "gcc" %}
|
|
||||||
|
|
||||||
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~" -mcmodel=large -fPIC" %}
|
|
||||||
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~" -mcmodel=medium -fPIC" %}
|
|
||||||
|
|
||||||
{% if sanitizers == "Address" %}
|
|
||||||
tools.build:cxxflags+=['{{asan_sanitizer_flags}} -fno-omit-frame-pointer -O1 -Wno-stringop-overflow']
|
|
||||||
tools.build:sharedlinkflags+=['{{asan_sanitizer_flags}}']
|
|
||||||
tools.build:exelinkflags+=['{{asan_sanitizer_flags}}']
|
|
||||||
tools.cmake.cmaketoolchain:extra_variables={"use_mold": "OFF", "use_gold": "OFF", "use_lld": "OFF"}
|
|
||||||
|
|
||||||
{% elif sanitizers == "Thread" %}
|
|
||||||
tools.build:cxxflags+=['{{tsan_sanitizer_flags}} -fno-omit-frame-pointer -O1 -Wno-stringop-overflow -Wno-tsan']
|
|
||||||
tools.build:sharedlinkflags+=['{{tsan_sanitizer_flags}}']
|
|
||||||
tools.build:exelinkflags+=['{{tsan_sanitizer_flags}}']
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% elif compiler == "apple-clang" or compiler == "clang" %}
|
|
||||||
|
|
||||||
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~",unsigned-integer-overflow -fPIC" %}
|
|
||||||
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~",unsigned-integer-overflow -fPIC" %}
|
|
||||||
{% if sanitizers == "Address" %}
|
|
||||||
tools.build:cxxflags+=['{{asan_sanitizer_flags}} -fno-omit-frame-pointer -O1']
|
|
||||||
tools.build:sharedlinkflags+=['{{asan_sanitizer_flags}}']
|
|
||||||
tools.build:exelinkflags+=['{{asan_sanitizer_flags}}']
|
|
||||||
|
|
||||||
{% elif sanitizers == "Thread" %}
|
|
||||||
tools.build:cxxflags+=['{{tsan_sanitizer_flags}} -fno-omit-frame-pointer -O1']
|
|
||||||
tools.build:sharedlinkflags+=['{{tsan_sanitizer_flags}}']
|
|
||||||
tools.build:exelinkflags+=['{{tsan_sanitizer_flags}}']
|
|
||||||
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
@@ -27,13 +27,13 @@ class Xrpl(ConanFile):
|
|||||||
'grpc/1.50.1',
|
'grpc/1.50.1',
|
||||||
'libarchive/3.8.1',
|
'libarchive/3.8.1',
|
||||||
'nudb/2.0.9',
|
'nudb/2.0.9',
|
||||||
'openssl/3.5.4',
|
'openssl/1.1.1w',
|
||||||
'soci/4.0.3',
|
'soci/4.0.3',
|
||||||
'zlib/1.3.1',
|
'zlib/1.3.1',
|
||||||
]
|
]
|
||||||
|
|
||||||
test_requires = [
|
test_requires = [
|
||||||
'doctest/2.4.12',
|
'doctest/2.4.11',
|
||||||
]
|
]
|
||||||
|
|
||||||
tool_requires = [
|
tool_requires = [
|
||||||
@@ -114,7 +114,7 @@ class Xrpl(ConanFile):
|
|||||||
if self.options.jemalloc:
|
if self.options.jemalloc:
|
||||||
self.requires('jemalloc/5.3.0')
|
self.requires('jemalloc/5.3.0')
|
||||||
if self.options.rocksdb:
|
if self.options.rocksdb:
|
||||||
self.requires('rocksdb/10.5.1')
|
self.requires('rocksdb/10.0.1')
|
||||||
self.requires('xxhash/0.8.3', **transitive_headers_opt)
|
self.requires('xxhash/0.8.3', **transitive_headers_opt)
|
||||||
|
|
||||||
exports_sources = (
|
exports_sources = (
|
||||||
|
|||||||
16
external/asan.supp
vendored
16
external/asan.supp
vendored
@@ -1,16 +0,0 @@
|
|||||||
# Suppress voilations in Boost libraries
|
|
||||||
interceptor_via_lib:^libboost_.*
|
|
||||||
# Suprpress voilations in external code
|
|
||||||
interceptor_name:^external/.*
|
|
||||||
|
|
||||||
# Boost
|
|
||||||
interceptor_name:.*/boost/asio/.*
|
|
||||||
|
|
||||||
# Leaks in Doctests
|
|
||||||
interceptor_name:.*/src/libxrpl/net/HTTPClient.cpp
|
|
||||||
interceptor_name:.*/src/libxrpl/net/RegisterSSLCerts.cpp
|
|
||||||
interceptor_name:.*/src/tests/libxrpl/net/HTTPClient.cpp
|
|
||||||
interceptor_name:.*/xrpl/net/AutoSocket.h
|
|
||||||
interceptor_name:.*/xrpl/net/HTTPClient.h
|
|
||||||
interceptor_name:.*/xrpl/net/HTTPClientSSLContext.h
|
|
||||||
interceptor_name:.*/xrpl/net/RegisterSSLCerts.h
|
|
||||||
12
external/lsan.supp
vendored
12
external/lsan.supp
vendored
@@ -1,12 +0,0 @@
|
|||||||
leak:.*/src/libxrpl/net/HTTPClient.cpp
|
|
||||||
leak:.*/src/libxrpl/net/RegisterSSLCerts.cpp
|
|
||||||
leak:.*/src/tests/libxrpl/net/HTTPClient.cpp
|
|
||||||
leak:.*/xrpl/net/AutoSocket.h
|
|
||||||
leak:.*/xrpl/net/HTTPClient.h
|
|
||||||
leak:.*/xrpl/net/HTTPClientSSLContext.h
|
|
||||||
leak:.*/xrpl/net/RegisterSSLCerts.h
|
|
||||||
leak:ripple::HTTPClient
|
|
||||||
leak:ripple::HTTPClientImp
|
|
||||||
|
|
||||||
leak:.*boost::asio::.*
|
|
||||||
leak:.*/boost/asio/.*
|
|
||||||
26
external/sanitizer-blacklist.txt
vendored
26
external/sanitizer-blacklist.txt
vendored
@@ -1,26 +0,0 @@
|
|||||||
[thread]
|
|
||||||
signal:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
signal:libxrpl/beast/utility/beast_PropertyStream.cpp
|
|
||||||
signal:test/beast/beast_PropertyStream_test.cpp
|
|
||||||
signal:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
signal:xrpld/core/detail/Workers.cpp
|
|
||||||
signal:xrpld/core/JobQueue.cpp
|
|
||||||
race:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
race:libxrpl/beast/utility/beast_PropertyStream.cpp
|
|
||||||
race:test/beast/beast_PropertyStream_test.cpp
|
|
||||||
race:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
race:xrpld/core/detail/Workers.cpp
|
|
||||||
race:xrpld/core/JobQueue.cpp
|
|
||||||
deadlock:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
deadlock:libxrpl/beast/utility/beast_PropertyStream.cpp
|
|
||||||
deadlock:test/beast/beast_PropertyStream_test.cpp
|
|
||||||
deadlock:libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
deadlock:xrpld/core/detail/Workers.cpp
|
|
||||||
deadlock:xrpld/core/JobQueue.cpp
|
|
||||||
|
|
||||||
[tsan]
|
|
||||||
src:beast/utility/beast_Journal.cpp
|
|
||||||
src:beast/utility/beast_PropertyStream.cpp
|
|
||||||
src:test/beast/beast_PropertyStream_test.cpp
|
|
||||||
src:core/detail/Workers.cpp
|
|
||||||
src:core/JobQueue.cpp
|
|
||||||
2
external/secp256k1/include/secp256k1.h
vendored
2
external/secp256k1/include/secp256k1.h
vendored
@@ -541,7 +541,7 @@ SECP256K1_API int secp256k1_ecdsa_signature_serialize_compact(
|
|||||||
/** Verify an ECDSA signature.
|
/** Verify an ECDSA signature.
|
||||||
*
|
*
|
||||||
* Returns: 1: correct signature
|
* Returns: 1: correct signature
|
||||||
* 0: incorrect or unparsable signature
|
* 0: incorrect or unparseable signature
|
||||||
* Args: ctx: pointer to a context object
|
* Args: ctx: pointer to a context object
|
||||||
* In: sig: the signature being verified.
|
* In: sig: the signature being verified.
|
||||||
* msghash32: the 32-byte message hash being verified.
|
* msghash32: the 32-byte message hash being verified.
|
||||||
|
|||||||
112
external/tsan.supp
vendored
112
external/tsan.supp
vendored
@@ -1,112 +0,0 @@
|
|||||||
# Suppress race in Boost ASIO scheduler detected by GCC-15
|
|
||||||
# This is a false positive in Boost's internal pipe() synchronization
|
|
||||||
race:boost/asio/
|
|
||||||
race:boost/context/
|
|
||||||
race:boost/asio/executor.hpp
|
|
||||||
race:boost::asio
|
|
||||||
|
|
||||||
race:src/libxrpl/basics/make_SSLContext.cpp
|
|
||||||
race:src/libxrpl/basics/Number.cpp
|
|
||||||
race:src/libxrpl/json/json_value.cpp
|
|
||||||
race:src/libxrpl/json/to_string.cpp
|
|
||||||
race:src/libxrpl/ledger/OpenView.cpp
|
|
||||||
race:src/libxrpl/net/HTTPClient.cpp
|
|
||||||
race:src/libxrpl/nodestore/backend/NuDBFactory.cpp
|
|
||||||
race:src/libxrpl/protocol/InnerObjectFormats.cpp
|
|
||||||
race:src/libxrpl/protocol/STParsedJSON.cpp
|
|
||||||
race:src/libxrpl/resource/ResourceManager.cpp
|
|
||||||
race:src/test/app/Flow_test.cpp
|
|
||||||
race:src/test/app/LedgerReplay_test.cpp
|
|
||||||
race:src/test/app/NFToken_test.cpp
|
|
||||||
race:src/test/app/Offer_test.cpp
|
|
||||||
race:src/test/app/ValidatorSite_test.cpp
|
|
||||||
race:src/test/consensus/NegativeUNL_test.cpp
|
|
||||||
race:src/test/jtx/impl/Env.cpp
|
|
||||||
race:src/test/jtx/impl/JSONRPCClient.cpp
|
|
||||||
race:src/test/jtx/impl/pay.cpp
|
|
||||||
race:src/test/jtx/impl/token.cpp
|
|
||||||
race:src/test/rpc/Book_test.cpp
|
|
||||||
race:src/xrpld/app/ledger/detail/InboundTransactions.cpp
|
|
||||||
race:src/xrpld/app/main/Application.cpp
|
|
||||||
race:src/xrpld/app/main/BasicApp.cpp
|
|
||||||
race:src/xrpld/app/main/GRPCServer.cpp
|
|
||||||
race:src/xrpld/app/misc/detail/AmendmentTable.cpp
|
|
||||||
race:src/xrpld/app/misc/FeeVoteImpl.cpp
|
|
||||||
race:src/xrpld/app/rdb/detail/Wallet.cpp
|
|
||||||
race:src/xrpld/overlay/detail/OverlayImpl.cpp
|
|
||||||
race:src/xrpld/peerfinder/detail/PeerfinderManager.cpp
|
|
||||||
race:src/xrpld/peerfinder/detail/SourceStrings.cpp
|
|
||||||
race:src/xrpld/rpc/detail/ServerHandler.cpp
|
|
||||||
race:xrpl/server/detail/Door.h
|
|
||||||
race:xrpl/server/detail/Spawn.h
|
|
||||||
race:xrpl/server/detail/ServerImpl.h
|
|
||||||
race:xrpl/nodestore/detail/DatabaseNodeImp.h
|
|
||||||
race:src/libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
race:src/test/beast/LexicalCast_test.cpp
|
|
||||||
|
|
||||||
race:crtstuff.c
|
|
||||||
race:pipe
|
|
||||||
race:ripple::ServerHandler
|
|
||||||
|
|
||||||
# Deadlock / lock-order-inversion suppressions
|
|
||||||
# Note: GCC's TSAN may not fully support all deadlock suppression patterns
|
|
||||||
deadlock:src/libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
deadlock:src/libxrpl/beast/utility/beast_PropertyStream.cpp
|
|
||||||
deadlock:src/test/beast/beast_PropertyStream_test.cpp
|
|
||||||
deadlock:src/xrpld/core/detail/Workers.cpp
|
|
||||||
|
|
||||||
# Suppress lock-order-inversion in recursive_mutex operations
|
|
||||||
deadlock:std::recursive_mutex::lock
|
|
||||||
deadlock:__gthread_recursive_mutex_lock
|
|
||||||
deadlock:pthread_mutex_lock
|
|
||||||
|
|
||||||
# Aggressive suppressing of deadlock tsan errors
|
|
||||||
deadlock:pthread_create
|
|
||||||
deadlock:pthread_rwlock_rdlock
|
|
||||||
deadlock:boost::asio
|
|
||||||
|
|
||||||
deadlock:src/xrpld/app/misc/detail/Manifest.cpp
|
|
||||||
deadlock:src/xrpld/app/misc/detail/ValidatorList.cpp
|
|
||||||
deadlock:src/xrpld/app/misc/detail/ValidatorSite.cpp
|
|
||||||
|
|
||||||
signal:src/libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
signal:src/xrpld/core/detail/Workers.cpp
|
|
||||||
signal:src/xrpld/core/JobQueue.cpp
|
|
||||||
signal:ripple::Workers::Worker
|
|
||||||
|
|
||||||
# Suppress SEGV crashes in TSAN itself during stringbuf operations
|
|
||||||
# This appears to be a GCC-15 TSAN instrumentation issue with basic_stringbuf::str()
|
|
||||||
# Commonly triggered in beast::Journal::ScopedStream destructor
|
|
||||||
signal:std::__cxx11::basic_stringbuf
|
|
||||||
signal:basic_stringbuf
|
|
||||||
signal:basic_ostringstream
|
|
||||||
|
|
||||||
called_from_lib:libclang_rt
|
|
||||||
race:ostreambuf_iterator
|
|
||||||
race:basic_ostream
|
|
||||||
#called_from_lib:libc++.1.dylib
|
|
||||||
#called_from_lib:libc++.abi.dylib
|
|
||||||
|
|
||||||
# Suppress SEGV in TSAN during operator new called from stringbuf
|
|
||||||
signal:operator new
|
|
||||||
|
|
||||||
# Suppress SEGV in Boost ASIO memory allocation with GCC-15 TSAN
|
|
||||||
signal:boost::asio::aligned_new
|
|
||||||
signal:boost::asio::detail::memory
|
|
||||||
|
|
||||||
# Suppress SEGV in execute_native_thread_routine
|
|
||||||
signal:execute_native_thread_routine
|
|
||||||
|
|
||||||
# Suppress nested TSAN bugs (TSAN crashing while handling a crash)
|
|
||||||
signal:nested bug in the same thread
|
|
||||||
|
|
||||||
# Suppress data race in Boost Context fiber management
|
|
||||||
# This is a false positive in Boost's exception state management during fiber context switching
|
|
||||||
race:__cxxabiv1::manage_exception_state
|
|
||||||
race:boost::context::fiber::resume
|
|
||||||
race:boost::asio::detail::spawned_fiber_thread
|
|
||||||
race:boost::asio::detail::spawned_fiber_thread::suspend_with
|
|
||||||
race:boost::asio::detail::spawned_fiber_thread::destroy
|
|
||||||
|
|
||||||
# Suppress data race in __tsan_memcpy called from Boost fiber operations
|
|
||||||
race:__tsan_memcpy
|
|
||||||
167
external/ubsan.supp
vendored
167
external/ubsan.supp
vendored
@@ -1,167 +0,0 @@
|
|||||||
# Suppress UBSan errors in external code by source file path
|
|
||||||
# This matches any source file under the external/ directory
|
|
||||||
|
|
||||||
alignment:external
|
|
||||||
bool:external
|
|
||||||
bounds:external
|
|
||||||
cfi:external
|
|
||||||
enum:external
|
|
||||||
float-cast-overflow:external
|
|
||||||
float-divide-by-zero:external
|
|
||||||
function:external
|
|
||||||
implicit-integer-sign-change:external
|
|
||||||
implicit-signed-integer-truncation::external
|
|
||||||
implicit-signed-integer-truncation:external
|
|
||||||
implicit-unsigned-integer-truncation:external
|
|
||||||
integer-divide-by-zero:external
|
|
||||||
invalid-builtin-use:external
|
|
||||||
invalid-objc-cast:external
|
|
||||||
nonnull-attribute:external
|
|
||||||
null:external
|
|
||||||
nullability-arg:external
|
|
||||||
nullability-assign:external
|
|
||||||
nullability-return:external
|
|
||||||
object-size:external
|
|
||||||
pointer-overflow:external
|
|
||||||
return:external
|
|
||||||
returns-nonnull-attribute:external
|
|
||||||
shift-base:external
|
|
||||||
shift-exponent:external
|
|
||||||
signed-integer-overflow:external
|
|
||||||
undefined:external
|
|
||||||
unreachable:external
|
|
||||||
unsigned-integer-overflow:external
|
|
||||||
vla-bound:external
|
|
||||||
vptr_check:external
|
|
||||||
vptr:external
|
|
||||||
|
|
||||||
# Suppress all UBSan errors in Boost libraries
|
|
||||||
# This matches any files containing "boost" in its path or name
|
|
||||||
alignment:boost
|
|
||||||
bool:boost
|
|
||||||
bounds:boost
|
|
||||||
cfi:boost
|
|
||||||
enum:boost
|
|
||||||
float-cast-overflow:boost
|
|
||||||
float-divide-by-zero:boost
|
|
||||||
function:boost
|
|
||||||
implicit-integer-sign-change:boost
|
|
||||||
implicit-signed-integer-truncation:boost
|
|
||||||
implicit-unsigned-integer-truncation:boost
|
|
||||||
integer-divide-by-zero:boost
|
|
||||||
invalid-builtin-use:boost
|
|
||||||
invalid-objc-cast:boost
|
|
||||||
nonnull-attribute:boost
|
|
||||||
null:boost
|
|
||||||
nullability-arg:boost
|
|
||||||
nullability-assign:boost
|
|
||||||
nullability-return:boost
|
|
||||||
object-size:boost
|
|
||||||
pointer-overflow:boost
|
|
||||||
return:boost
|
|
||||||
returns-nonnull-attribute:boost
|
|
||||||
shift-base:boost
|
|
||||||
shift-exponent:boost
|
|
||||||
signed-integer-overflow:boost
|
|
||||||
undefined:boost
|
|
||||||
unreachable:boost
|
|
||||||
unsigned-integer-overflow:boost
|
|
||||||
vla-bound:boost
|
|
||||||
vptr_check:boost
|
|
||||||
vptr:boost
|
|
||||||
|
|
||||||
undefined:src/libxrpl/basics/base64.cpp
|
|
||||||
undefined:src/libxrpl/basics/Number.cpp
|
|
||||||
undefined:src/libxrpl/beast/utility/beast_Journal.cpp
|
|
||||||
undefined:src/libxrpl/crypto/RFC1751.cpp
|
|
||||||
undefined:src/libxrpl/ledger/ApplyView.cpp
|
|
||||||
undefined:src/libxrpl/ledger/View.cpp
|
|
||||||
undefined:src/libxrpl/protocol/Permissions.cpp
|
|
||||||
undefined:src/libxrpl/protocol/STAmount.cpp
|
|
||||||
undefined:src/libxrpl/protocol/STPathSet.cpp
|
|
||||||
undefined:src/libxrpl/protocol/tokens.cpp
|
|
||||||
undefined:src/libxrpl/shamap/SHAMap.cpp
|
|
||||||
undefined:src/test/app/Batch_test.cpp
|
|
||||||
undefined:src/test/app/Invariants_test.cpp
|
|
||||||
undefined:src/test/app/NFToken_test.cpp
|
|
||||||
undefined:src/test/app/Offer_test.cpp
|
|
||||||
undefined:src/test/app/Path_test.cpp
|
|
||||||
undefined:src/test/basics/XRPAmount_test.cpp
|
|
||||||
undefined:src/test/beast/LexicalCast_test.cpp
|
|
||||||
undefined:src/test/jtx/impl/acctdelete.cpp
|
|
||||||
undefined:src/test/ledger/SkipList_test.cpp
|
|
||||||
undefined:src/test/rpc/Subscribe_test.cpp
|
|
||||||
undefined:src/tests/libxrpl/basics/RangeSet.cpp
|
|
||||||
undefined:src/xrpld/app/main/BasicApp.cpp
|
|
||||||
undefined:src/xrpld/app/main/BasicApp.cpp
|
|
||||||
undefined:src/xrpld/app/misc/detail/AmendmentTable.cpp
|
|
||||||
undefined:src/xrpld/app/misc/NetworkOPs.cpp
|
|
||||||
undefined:src/libxrpl/json/json_value.cpp
|
|
||||||
undefined:src/xrpld/app/paths/detail/StrandFlow.h
|
|
||||||
undefined:src/xrpld/app/tx/detail/NFTokenMint.cpp
|
|
||||||
undefined:src/xrpld/app/tx/detail/SetOracle.cpp
|
|
||||||
undefined:src/xrpld/core/detail/JobQueue.cpp
|
|
||||||
undefined:src/xrpld/core/detail/Workers.cpp
|
|
||||||
undefined:src/xrpld/rpc/detail/Role.cpp
|
|
||||||
undefined:src/xrpld/rpc/handlers/GetAggregatePrice.cpp
|
|
||||||
undefined:xrpl/basics/base_uint.h
|
|
||||||
undefined:xrpl/basics/DecayingSample.h
|
|
||||||
undefined:xrpl/beast/test/yield_to.h
|
|
||||||
undefined:xrpl/beast/xor_shift_engine.h
|
|
||||||
undefined:xrpl/nodestore/detail/varint.h
|
|
||||||
undefined:xrpl/peerfinder/detail/Counts.h
|
|
||||||
undefined:xrpl/protocol/nft.h
|
|
||||||
|
|
||||||
# basic_string.h:483:51: runtime error: unsigned integer overflow
|
|
||||||
unsigned-integer-overflow:basic_string.h
|
|
||||||
unsigned-integer-overflow:bits/chrono.h
|
|
||||||
unsigned-integer-overflow:bits/random.h
|
|
||||||
unsigned-integer-overflow:bits/random.tcc
|
|
||||||
unsigned-integer-overflow:bits/stl_algobase.h
|
|
||||||
unsigned-integer-overflow:bits/uniform_int_dist.h
|
|
||||||
unsigned-integer-overflow:string_view
|
|
||||||
|
|
||||||
# runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'std::size_t' (aka 'unsigned long')
|
|
||||||
unsigned-integer-overflow:src/libxrpl/basics/base64.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/basics/Number.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/crypto/RFC1751.cpp
|
|
||||||
unsigned-integer-overflow:rc/libxrpl/json/json_value.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/ledger/ApplyView.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/ledger/View.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/protocol/Permissions.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/protocol/STAmount.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/protocol/STPathSet.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/protocol/tokens.cpp
|
|
||||||
unsigned-integer-overflow:src/libxrpl/shamap/SHAMap.cpp
|
|
||||||
unsigned-integer-overflow:src/test/app/Batch_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/app/Invariants_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/app/NFToken_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/app/Offer_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/app/Path_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/basics/XRPAmount_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/beast/LexicalCast_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/jtx/impl/acctdelete.cpp
|
|
||||||
unsigned-integer-overflow:src/test/ledger/SkipList_test.cpp
|
|
||||||
unsigned-integer-overflow:src/test/rpc/Subscribe_test.cpp
|
|
||||||
unsigned-integer-overflow:src/tests/libxrpl/basics/RangeSet.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/main/BasicApp.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/misc/detail/AmendmentTable.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/misc/NetworkOPs.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/paths/detail/StrandFlow.h
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/tx/detail/NFTokenMint.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/app/tx/detail/SetOracle.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/rpc/detail/Role.cpp
|
|
||||||
unsigned-integer-overflow:src/xrpld/rpc/handlers/GetAggregatePrice.cpp
|
|
||||||
unsigned-integer-overflow:xrpl/basics/base_uint.h
|
|
||||||
unsigned-integer-overflow:xrpl/basics/DecayingSample.h
|
|
||||||
unsigned-integer-overflow:xrpl/beast/test/yield_to.h
|
|
||||||
unsigned-integer-overflow:xrpl/beast/xor_shift_engine.h
|
|
||||||
unsigned-integer-overflow:xrpl/nodestore/detail/varint.h
|
|
||||||
unsigned-integer-overflow:xrpl/peerfinder/detail/Counts.h
|
|
||||||
unsigned-integer-overflow:xrpl/protocol/nft.h
|
|
||||||
|
|
||||||
# Signed integer overflow suppressions
|
|
||||||
signed-integer-overflow:src/test/beast/LexicalCast_test.cpp
|
|
||||||
|
|
||||||
# External library suppressions
|
|
||||||
unsigned-integer-overflow:nudb/detail/xxhash.hpp
|
|
||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_ARCHIVE_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_ARCHIVE_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2018 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_ARCHIVE_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_ARCHIVE_H_INCLUDED
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_BASICCONFIG_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_BASICCONFIG_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_BASICCONFIG_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_BASICCONFIG_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/contract.h>
|
#include <xrpl/basics/contract.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_BLOB_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_BLOB_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_BLOB_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_BLOB_H_INCLUDED
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_BUFFER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_BUFFER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_BUFFER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_BUFFER_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/Slice.h>
|
#include <xrpl/basics/Slice.h>
|
||||||
#include <xrpl/beast/utility/instrumentation.h>
|
#include <xrpl/beast/utility/instrumentation.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_BYTEUTILITIES_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_BYTEUTILITIES_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2018 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_BYTEUTILITIES_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_BYTEUTILITIES_H_INCLUDED
|
||||||
|
|
||||||
namespace ripple {
|
namespace ripple {
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_COMPRESSIONALGORITHMS_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_COMPRESSIONALGORITHMS_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2020 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLED_COMPRESSIONALGORITHMS_H_INCLUDED
|
||||||
|
#define RIPPLED_COMPRESSIONALGORITHMS_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/contract.h>
|
#include <xrpl/basics/contract.h>
|
||||||
|
|
||||||
@@ -146,4 +165,4 @@ lz4Decompress(
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_COMPRESSIONALGORITHMS_H_INCLUDED
|
#endif // RIPPLED_COMPRESSIONALGORITHMS_H_INCLUDED
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_COUNTEDOBJECT_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_COUNTEDOBJECT_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_COUNTEDOBJECT_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_COUNTEDOBJECT_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/type_name.h>
|
#include <xrpl/beast/type_name.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_DECAYINGSAMPLE_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_DECAYINGSAMPLE_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_DECAYINGSAMPLE_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_DECAYINGSAMPLE_H_INCLUDED
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_EXPECTED_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_EXPECTED_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2021 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_EXPECTED_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_EXPECTED_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/contract.h>
|
#include <xrpl/basics/contract.h>
|
||||||
|
|
||||||
@@ -234,4 +253,4 @@ public:
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_EXPECTED_H_INCLUDED
|
#endif // RIPPLE_BASICS_EXPECTED_H_INCLUDED
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_FILEUTILITIES_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_FILEUTILITIES_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2018 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_FILEUTILITIES_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_FILEUTILITIES_H_INCLUDED
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/system/error_code.hpp>
|
#include <boost/system/error_code.hpp>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_INTRUSIVEPOINTER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_INTRUSIVEPOINTER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2023 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_INTRUSIVEPOINTER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_INTRUSIVEPOINTER_H_INCLUDED
|
||||||
|
|
||||||
#include <concepts>
|
#include <concepts>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_INTRUSIVEPOINTER_IPP_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_INTRUSIVEPOINTER_IPP_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2023 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_INTRUSIVEPOINTER_IPP_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_INTRUSIVEPOINTER_IPP_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/IntrusivePointer.h>
|
#include <xrpl/basics/IntrusivePointer.h>
|
||||||
#include <xrpl/basics/IntrusiveRefCounts.h>
|
#include <xrpl/basics/IntrusiveRefCounts.h>
|
||||||
@@ -635,14 +654,12 @@ SharedWeakUnion<T>::convertToWeak()
|
|||||||
break;
|
break;
|
||||||
case destroy:
|
case destroy:
|
||||||
// We just added a weak ref. How could we destroy?
|
// We just added a weak ref. How could we destroy?
|
||||||
// LCOV_EXCL_START
|
|
||||||
UNREACHABLE(
|
UNREACHABLE(
|
||||||
"ripple::SharedWeakUnion::convertToWeak : destroying freshly "
|
"ripple::SharedWeakUnion::convertToWeak : destroying freshly "
|
||||||
"added ref");
|
"added ref");
|
||||||
delete p;
|
delete p;
|
||||||
unsafeSetRawPtr(nullptr);
|
unsafeSetRawPtr(nullptr);
|
||||||
return true; // Should never happen
|
return true; // Should never happen
|
||||||
// LCOV_EXCL_STOP
|
|
||||||
case partialDestroy:
|
case partialDestroy:
|
||||||
// This is a weird case. We just converted the last strong
|
// This is a weird case. We just converted the last strong
|
||||||
// pointer to a weak pointer.
|
// pointer to a weak pointer.
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_INTRUSIVEREFCOUNTS_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_INTRUSIVEREFCOUNTS_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2023 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_INTRUSIVEREFCOUNTS_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_INTRUSIVEREFCOUNTS_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/utility/instrumentation.h>
|
#include <xrpl/beast/utility/instrumentation.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_KEYCACHE_H
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_KEYCACHE_H
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2021 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_KEYCACHE_H
|
||||||
|
#define RIPPLE_BASICS_KEYCACHE_H
|
||||||
|
|
||||||
#include <xrpl/basics/TaggedCache.h>
|
#include <xrpl/basics/TaggedCache.h>
|
||||||
#include <xrpl/basics/base_uint.h>
|
#include <xrpl/basics/base_uint.h>
|
||||||
@@ -10,4 +29,4 @@ using KeyCache = TaggedCache<uint256, int, true>;
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_KEYCACHE_H
|
#endif // RIPPLE_BASICS_KEYCACHE_H
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_LOCALVALUE_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_LOCALVALUE_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_LOCALVALUE_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_LOCALVALUE_H_INCLUDED
|
||||||
|
|
||||||
#include <boost/thread/tss.hpp>
|
#include <boost/thread/tss.hpp>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_LOG_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_LOG_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_LOG_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_LOG_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/UnorderedContainers.h>
|
#include <xrpl/basics/UnorderedContainers.h>
|
||||||
#include <xrpl/beast/utility/Journal.h>
|
#include <xrpl/beast/utility/Journal.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_MATHUTILITIES_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_MATHUTILITIES_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2020 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_MATHUTILITIES_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_MATHUTILITIES_H_INCLUDED
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_NUMBER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_NUMBER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2022 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_NUMBER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_NUMBER_H_INCLUDED
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@@ -406,4 +425,4 @@ public:
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_NUMBER_H_INCLUDED
|
#endif // RIPPLE_BASICS_NUMBER_H_INCLUDED
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_RANGESET_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_RANGESET_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_RANGESET_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_RANGESET_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/core/LexicalCast.h>
|
#include <xrpl/beast/core/LexicalCast.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_RESOLVER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_RESOLVER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_RESOLVER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_RESOLVER_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/net/IPEndpoint.h>
|
#include <xrpl/beast/net/IPEndpoint.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_RESOLVERASIO_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_RESOLVERASIO_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_RESOLVERASIO_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_RESOLVERASIO_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/Resolver.h>
|
#include <xrpl/basics/Resolver.h>
|
||||||
#include <xrpl/beast/utility/Journal.h>
|
#include <xrpl/beast/utility/Journal.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_SHAMAP_HASH_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_SHAMAP_HASH_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2021 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_SHAMAP_HASH_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_SHAMAP_HASH_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/base_uint.h>
|
#include <xrpl/basics/base_uint.h>
|
||||||
#include <xrpl/basics/partitioned_unordered_map.h>
|
#include <xrpl/basics/partitioned_unordered_map.h>
|
||||||
@@ -99,4 +118,4 @@ extract(SHAMapHash const& key)
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_SHAMAP_HASH_H_INCLUDED
|
#endif // RIPPLE_BASICS_SHAMAP_HASH_H_INCLUDED
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_SHAREDWEAKCACHEPOINTER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_SHAREDWEAKCACHEPOINTER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2023 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_SHAREDWEAKCACHEPOINTER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_SHAREDWEAKCACHEPOINTER_H_INCLUDED
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <variant>
|
#include <variant>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_SHAREDWEAKCACHEPOINTER_IPP_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_SHAREDWEAKCACHEPOINTER_IPP_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2023 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_SHAREDWEAKCACHEPOINTER_IPP_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_SHAREDWEAKCACHEPOINTER_IPP_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/SharedWeakCachePointer.h>
|
#include <xrpl/basics/SharedWeakCachePointer.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,24 @@
|
|||||||
// Copyright (c) 2022, Nikolaos D. Bougalis <nikb@bougalis.net>
|
//------------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright 2022, Nikolaos D. Bougalis <nikb@bougalis.net>
|
||||||
|
|
||||||
#ifndef XRPL_BASICS_SLABALLOCATOR_H_INCLUDED
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
#define XRPL_BASICS_SLABALLOCATOR_H_INCLUDED
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
|
copyright notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_SLABALLOCATOR_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_SLABALLOCATOR_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/ByteUtilities.h>
|
#include <xrpl/basics/ByteUtilities.h>
|
||||||
#include <xrpl/beast/type_name.h>
|
#include <xrpl/beast/type_name.h>
|
||||||
@@ -159,7 +176,7 @@ public:
|
|||||||
@param count the number of items the slab allocator can allocate; note
|
@param count the number of items the slab allocator can allocate; note
|
||||||
that a count of 0 is valid and means that the allocator
|
that a count of 0 is valid and means that the allocator
|
||||||
is, effectively, disabled. This can be very useful in some
|
is, effectively, disabled. This can be very useful in some
|
||||||
contexts (e.g. when minimal memory usage is needed) and
|
contexts (e.g. when mimimal memory usage is needed) and
|
||||||
allows for graceful failure.
|
allows for graceful failure.
|
||||||
*/
|
*/
|
||||||
constexpr explicit SlabAllocator(
|
constexpr explicit SlabAllocator(
|
||||||
@@ -421,4 +438,4 @@ public:
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_SLABALLOCATOR_H_INCLUDED
|
#endif // RIPPLE_BASICS_SLABALLOCATOR_H_INCLUDED
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_SLICE_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_SLICE_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_SLICE_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_SLICE_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/contract.h>
|
#include <xrpl/basics/contract.h>
|
||||||
#include <xrpl/basics/strHex.h>
|
#include <xrpl/basics/strHex.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_STRINGUTILITIES_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_STRINGUTILITIES_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_STRINGUTILITIES_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_STRINGUTILITIES_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/Blob.h>
|
#include <xrpl/basics/Blob.h>
|
||||||
#include <xrpl/basics/strHex.h>
|
#include <xrpl/basics/strHex.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_TAGGEDCACHE_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_TAGGEDCACHE_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_TAGGEDCACHE_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_TAGGEDCACHE_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/IntrusivePointer.h>
|
#include <xrpl/basics/IntrusivePointer.h>
|
||||||
#include <xrpl/basics/Log.h>
|
#include <xrpl/basics/Log.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_TAGGEDCACHE_IPP_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_TAGGEDCACHE_IPP_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_TAGGEDCACHE_IPP_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_TAGGEDCACHE_IPP_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/IntrusivePointer.ipp>
|
#include <xrpl/basics/IntrusivePointer.ipp>
|
||||||
#include <xrpl/basics/TaggedCache.h>
|
#include <xrpl/basics/TaggedCache.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_TOSTRING_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_TOSTRING_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_TOSTRING_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_TOSTRING_H_INCLUDED
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/hardened_hash.h>
|
#include <xrpl/basics/hardened_hash.h>
|
||||||
#include <xrpl/basics/partitioned_unordered_map.h>
|
#include <xrpl/basics/partitioned_unordered_map.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_UPTIMETIMER_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_UPTIMETIMER_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_UPTIMETIMER_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_UPTIMETIMER_H_INCLUDED
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_ALGORITHM_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_ALGORITHM_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2019 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_ALGORITHM_H_INCLUDED
|
||||||
|
#define RIPPLE_ALGORITHM_H_INCLUDED
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,25 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012-2018 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
//
|
||||||
|
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
||||||
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
@@ -32,8 +54,8 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XRPL_BASICS_BASE64_H_INCLUDED
|
#ifndef RIPPLE_BASICS_BASE64_H_INCLUDED
|
||||||
#define XRPL_BASICS_BASE64_H_INCLUDED
|
#define RIPPLE_BASICS_BASE64_H_INCLUDED
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|||||||
@@ -1,10 +1,29 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||||
// Copyright (c) 2011 The Bitcoin developers
|
// Copyright (c) 2011 The Bitcoin developers
|
||||||
// Distributed under the MIT/X11 software license, see the accompanying
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
#ifndef XRPL_BASICS_BASE_UINT_H_INCLUDED
|
#ifndef RIPPLE_BASICS_BASE_UINT_H_INCLUDED
|
||||||
#define XRPL_BASICS_BASE_UINT_H_INCLUDED
|
#define RIPPLE_BASICS_BASE_UINT_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/basics/Expected.h>
|
#include <xrpl/basics/Expected.h>
|
||||||
#include <xrpl/basics/Slice.h>
|
#include <xrpl/basics/Slice.h>
|
||||||
@@ -546,7 +565,7 @@ operator<=>(base_uint<Bits, Tag> const& lhs, base_uint<Bits, Tag> const& rhs)
|
|||||||
// This comparison might seem wrong on a casual inspection because it
|
// This comparison might seem wrong on a casual inspection because it
|
||||||
// compares data internally stored as std::uint32_t byte-by-byte. But
|
// compares data internally stored as std::uint32_t byte-by-byte. But
|
||||||
// note that the underlying data is stored in big endian, even if the
|
// note that the underlying data is stored in big endian, even if the
|
||||||
// platform is little endian. This makes the comparison correct.
|
// plaform is little endian. This makes the comparison correct.
|
||||||
//
|
//
|
||||||
// FIXME: use std::lexicographical_compare_three_way once support is
|
// FIXME: use std::lexicographical_compare_three_way once support is
|
||||||
// added to MacOS.
|
// added to MacOS.
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_CHRONO_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_CHRONO_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_CHRONO_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_CHRONO_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/clock/abstract_clock.h>
|
#include <xrpl/beast/clock/abstract_clock.h>
|
||||||
#include <xrpl/beast/clock/basic_seconds_clock.h>
|
#include <xrpl/beast/clock/basic_seconds_clock.h>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_COMPARATORS_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_COMPARATORS_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_COMPARATORS_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_COMPARATORS_H_INCLUDED
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
@@ -9,7 +28,7 @@ namespace ripple {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* MSVC 2019 version 16.9.0 added [[nodiscard]] to the std comparison
|
* MSVC 2019 version 16.9.0 added [[nodiscard]] to the std comparison
|
||||||
* operator() functions. boost::bimap checks that the comparator is a
|
* operator() functions. boost::bimap checks that the comparitor is a
|
||||||
* BinaryFunction, in part by calling the function and ignoring the value.
|
* BinaryFunction, in part by calling the function and ignoring the value.
|
||||||
* These two things don't play well together. These wrapper classes simply
|
* These two things don't play well together. These wrapper classes simply
|
||||||
* strip [[nodiscard]] from operator() for use in boost::bimap.
|
* strip [[nodiscard]] from operator() for use in boost::bimap.
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_CONTRACT_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_CONTRACT_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2014 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_CONTRACT_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_CONTRACT_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/type_name.h>
|
#include <xrpl/beast/type_name.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_HARDENED_HASH_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_HARDENED_HASH_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2014 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_HARDENED_HASH_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_HARDENED_HASH_H_INCLUDED
|
||||||
|
|
||||||
#include <xrpl/beast/hash/hash_append.h>
|
#include <xrpl/beast/hash/hash_append.h>
|
||||||
#include <xrpl/beast/hash/xxhasher.h>
|
#include <xrpl/beast/hash/xxhasher.h>
|
||||||
|
|||||||
@@ -1,3 +1,21 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2022 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef JOIN_H_INCLUDED
|
#ifndef JOIN_H_INCLUDED
|
||||||
#define JOIN_H_INCLUDED
|
#define JOIN_H_INCLUDED
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_MAKE_SSLCONTEXT_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_MAKE_SSLCONTEXT_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_MAKE_SSLCONTEXT_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_MAKE_SSLCONTEXT_H_INCLUDED
|
||||||
|
|
||||||
#include <boost/asio/ssl/context.hpp>
|
#include <boost/asio/ssl/context.hpp>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_MULDIV_H_INCLUDED
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_MULDIV_H_INCLUDED
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2012-2015 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_MULDIV_H_INCLUDED
|
||||||
|
#define RIPPLE_BASICS_MULDIV_H_INCLUDED
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
#ifndef XRPL_BASICS_PARTITIONED_UNORDERED_MAP_H
|
//------------------------------------------------------------------------------
|
||||||
#define XRPL_BASICS_PARTITIONED_UNORDERED_MAP_H
|
/*
|
||||||
|
This file is part of rippled: https://github.com/ripple/rippled
|
||||||
|
Copyright (c) 2021 Ripple Labs Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or 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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
//==============================================================================
|
||||||
|
|
||||||
|
#ifndef RIPPLE_BASICS_PARTITIONED_UNORDERED_MAP_H
|
||||||
|
#define RIPPLE_BASICS_PARTITIONED_UNORDERED_MAP_H
|
||||||
|
|
||||||
#include <xrpl/beast/hash/uhash.h>
|
#include <xrpl/beast/hash/uhash.h>
|
||||||
#include <xrpl/beast/utility/instrumentation.h>
|
#include <xrpl/beast/utility/instrumentation.h>
|
||||||
@@ -403,4 +422,4 @@ private:
|
|||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif // XRPL_BASICS_PARTITIONED_UNORDERED_MAP_H
|
#endif // RIPPLE_BASICS_PARTITIONED_UNORDERED_MAP_H
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user