diff --git a/.gitignore b/.gitignore index 5476f21a41..d8c6b8a5f8 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,6 @@ bld.rippled/ # Suggested in-tree build directory /.build*/ + +# Locally patched Conan recipes +external/conan-center-index/ diff --git a/BUILD.md b/BUILD.md index dc1b169d33..46f35879c4 100644 --- a/BUILD.md +++ b/BUILD.md @@ -142,20 +142,25 @@ locally: ```bash cd external +mkdir -p conan-center-index +cd conan-center-index git init git remote add origin git@github.com:XRPLF/conan-center-index.git git sparse-checkout init git sparse-checkout set recipes/ed25519 +git sparse-checkout add recipes/grpc git sparse-checkout add recipes/secp256k1 git sparse-checkout add recipes/snappy git sparse-checkout add recipes/soci git fetch origin master git checkout master -conan export --version 2015.03 recipes/ed25519/all -conan export --version 0.7.0 recipes/secp256k1/all -conan export --version 1.1.10 recipes/snappy/all -conan export --version 4.0.3 recipes/soci/all rm -rf .git +cd ../.. +conan export --version 2015.03 external/conan-center-index/recipes/ed25519/all +conan export --version 1.72.0 external/conan-center-index/recipes/grpc/all +conan export --version 0.7.0 external/conan-center-index/recipes/secp256k1/all +conan export --version 1.1.10 external/conan-center-index/recipes/snappy/all +conan export --version 4.0.3 external/conan-center-index/recipes/soci/all ``` In the case we switch to a newer version of a dependency that still requires a @@ -399,19 +404,6 @@ tools.build:cxxflags=['-DBOOST_ASIO_DISABLE_CONCEPTS'] `--settings build_type=$BUILD_TYPE` or in the profile itself, under the section `[settings]` with the key `build_type`. - If you are using a Microsoft Visual C++ compiler, - then you will need to ensure consistency between the `build_type` setting - and the `compiler.runtime` setting. - - When `build_type` is `Release`, `compiler.runtime` should be `MT`. - - When `build_type` is `Debug`, `compiler.runtime` should be `MTd`. - - ``` - conan install .. --output-folder . --build missing --settings build_type=Release --settings compiler.runtime=MT - conan install .. --output-folder . --build missing --settings build_type=Debug --settings compiler.runtime=MTd - ``` - 3. Configure CMake and pass the toolchain file generated by Conan, located at `$OUTPUT_FOLDER/build/generators/conan_toolchain.cmake`. diff --git a/conan.lock b/conan.lock index d235e8d41a..410a04403b 100644 --- a/conan.lock +++ b/conan.lock @@ -9,7 +9,7 @@ "secp256k1/0.7.0#9210e4c655d0a665400378a663960d17%1764261276.764", "rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1762797952.535", "re2/20230301#ca3b241baec15bd31ea9187150e0b333%1764175362.029", - "protobuf/3.21.12#44ee56c0a6eea0c19aeeaca680370b88%1764175361.456", + "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1759134873.45", "openssl/3.5.4#a1d5835cc6ed5c5b8f3cd5b9b5d24205%1760106486.594", "nudb/2.0.9#fb8dfd1a5557f5e0528114c2da17721e%1763150366.909", "lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999", @@ -17,19 +17,19 @@ "libbacktrace/cci.20210118#a7691bfccd8caaf66309df196790a5a1%1756230911.03", "libarchive/3.8.1#ffee18995c706e02bf96e7a2f7042e0d%1764175360.142", "jemalloc/5.3.0#e951da9cf599e956cebc117880d2d9f8%1729241615.244", - "grpc/1.50.1#02291451d1e17200293a409410d1c4e1%1756234248.958", - "ed25519/2015.03#17c1f1910e769f368025267a53c23c13%1764259445.491", + "grpc/1.72.0#f244a57bff01e708c55a1100b12e1589%1763158050.628", + "ed25519/2015.03#ae761bdc52730a843f0809bdf6c1b1f6%1764270189.893", "doctest/2.4.12#eb9fb352fb2fdfc8abb17ec270945165%1762797941.757", "date/3.0.4#862e11e80030356b53c2c38599ceb32b%1763584497.32", "c-ares/1.34.5#5581c2b62a608b40bb85d965ab3ec7c8%1764175359.429", "bzip2/1.0.8#c470882369c2d95c5c77e970c0c7e321%1764175359.429", "boost/1.88.0#8852c0b72ce8271fb8ff7c53456d4983%1756223752.326", - "abseil/20230802.1#90ba607d4ee8fb5fb157c3db540671fc%1764175359.429" + "abseil/20250127.0#9e8e8cfc89a1324139fc0ee3bd4d8c8c%1753819045.301" ], "build_requires": [ "zlib/1.3.1#b8bc2603263cf7eccbd6e17e66b0ed76%1756234269.497", "strawberryperl/5.32.1.1#707032463aa0620fa17ec0d887f5fe41%1756234281.733", - "protobuf/3.21.12#44ee56c0a6eea0c19aeeaca680370b88%1764175361.456", + "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1759134873.45", "nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904%1756234232.901", "msys2/cci.latest#5b73b10144f73cc5bfe0572ed9be39e1%1751977009.857", "m4/1.4.19#70dc8bbb33e981d119d2acc0175cf381%1763158052.846", @@ -37,13 +37,13 @@ "cmake/3.31.10#313d16a1aa16bbdb2ca0792467214b76%1764175359.429", "b2/5.3.3#107c15377719889654eb9a162a673975%1756234226.28", "automake/1.16.5#b91b7c384c3deaa9d535be02da14d04f%1755524470.56", - "autoconf/2.71#51077f068e61700d65bb05541ea1e4b0%1731054366.86" + "autoconf/2.71#51077f068e61700d65bb05541ea1e4b0%1731054366.86", + "abseil/20250127.0#9e8e8cfc89a1324139fc0ee3bd4d8c8c%1753819045.301" ], "python_requires": [], "overrides": { - "protobuf/3.21.12": [ - null, - "protobuf/3.21.12" + "protobuf/5.27.0": [ + "protobuf/6.32.1" ], "lz4/1.9.4": [ "lz4/1.10.0" diff --git a/conan/profiles/default b/conan/profiles/default index def2fffd6b..cde59f7f3b 100644 --- a/conan/profiles/default +++ b/conan/profiles/default @@ -20,12 +20,6 @@ compiler.libcxx={{detect_api.detect_libcxx(compiler, version, compiler_exe)}} {% endif %} [conf] -{% if compiler == "clang" and compiler_version >= 19 %} -grpc/1.50.1:tools.build:cxxflags+=['-Wno-missing-template-arg-list-after-template-kw'] -{% endif %} -{% if compiler == "apple-clang" and compiler_version >= 17 %} -grpc/1.50.1:tools.build:cxxflags+=['-Wno-missing-template-arg-list-after-template-kw'] -{% endif %} {% if compiler == "gcc" and compiler_version < 13 %} tools.build:cxxflags+=['-Wno-restrict'] {% endif %} diff --git a/conanfile.py b/conanfile.py index 2d3e090fa3..8dc09da0af 100644 --- a/conanfile.py +++ b/conanfile.py @@ -29,7 +29,7 @@ class Xrpl(ConanFile): requires = [ "ed25519/2015.03", - "grpc/1.50.1", + "grpc/1.72.0", "libarchive/3.8.1", "nudb/2.0.9", "openssl/3.5.4", @@ -43,7 +43,7 @@ class Xrpl(ConanFile): ] tool_requires = [ - "protobuf/3.21.12", + "protobuf/6.32.1", ] default_options = { @@ -61,6 +61,16 @@ class Xrpl(ConanFile): "ed25519/*:shared": False, "grpc/*:shared": False, "grpc/*:secure": True, + "grpc/*:codegen": True, + "grpc/*:cpp_plugin": True, + "grpc/*:csharp_ext": False, + "grpc/*:csharp_plugin": False, + "grpc/*:node_plugin": False, + "grpc/*:objective_c_plugin": False, + "grpc/*:php_plugin": False, + "grpc/*:python_plugin": False, + "grpc/*:ruby_plugin": False, + "grpc/*:otel_plugin": False, "libarchive/*:shared": False, "libarchive/*:with_acl": False, "libarchive/*:with_bzip2": False, @@ -118,7 +128,7 @@ class Xrpl(ConanFile): self.requires("boost/1.88.0", force=True, **transitive_headers_opt) self.requires("date/3.0.4", **transitive_headers_opt) self.requires("lz4/1.10.0", force=True) - self.requires("protobuf/3.21.12", force=True) + self.requires("protobuf/6.32.1", force=True) self.requires("sqlite3/3.49.1", force=True) if self.options.jemalloc: self.requires("jemalloc/5.3.0")