-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use the Conan package manager for dependencies #4223
Conversation
@legleux can we confirm this does not break clio's build process? |
- Let Windows developers use a non-debug runtime in a debug build. - Make our build instructions work for users with Conan <1.48.
Worked for me on linux, gcc 11.1 |
Worked for me on Windows 11, Visual Studio 2019 |
Worked for me on OSX (M1) Monterey 12.4, Apple clang version 13.1.6. |
Worked for me on Ubuntu 22.04, gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 |
Worked for me on macOS Catalina 10.15.7, Apple clang version 12.0.0 (clang-1200.0.32.21). |
On macOS 12.4 I'm getting a linker warning out of boost concerning weak symbols. I believe the fix is to put |
@HowardHinnant try |
That did the trick! |
Worked for me on Mac (Darwin Kernel Version 21.5.0), Apple clang version 13.1.6 |
Requesting reviews from @ximinez, @legleux and @RichardAH. Thank you :) |
I cannot build this on centos 7 with devtoolset-10 or 11 and gcc11 is what we deciced we'd be building with. |
We also use a similar setup for our static builds: https://github.com/phusion/holy-build-box
I'd also request / recommend @thejohnfreeman WasmEdge https://github.com/WasmEdge/ be added to the new build system, as it is needed for building Hooks. WasmEdge requires LLVM12, and might be slightly challenging to add. |
I was able to build and pass all tests in Docker container Please try again. If you still hit errors, please copy the commands you ran and their output to a Gist and link it here. yum install -y centos-release-scl https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
version=9 # Change to 8, 10, or 11 if you want.
yum install -y devtoolset-${version} git python3 vim
scl enable devtoolset-${version} bash
gcc --version # 8.3.1, 11.2.1
git --version # 2.36.0
pip3 install cmake conan
cmake --version # 3.22.5
conan --version # 1.50.0
conan profile new --detect default
conan profile update settings.compiler.libcxx=libstdc++11 default
mkdir /home/root
cd /home/root
git clone https://github.com/thejohnfreeman/rippled -b conan
cd rippled
conan export external/*
mkdir .build
cd .build
conan install .. --output-folder . --build --settings build_type=Release
cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
./rippled --unittest 2>&1 | tee test.log WasmEdge is out of scope for this PR. The purpose of this PR is just to migrate the existing build to Conan. |
I'm not having any issues other than a fairly reproducible failure on this test in docker containers.
My previous issue with not being able to build was what John said and mitigated by building all dependencies locally with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like all my build issues have been resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for working on this. Looking forward to seeing this merged. Nice job on this!
Just some notes that might help other newbies like me. I am on an M1 Mac.
|
@thejohnfreeman can you rebase or squash this to signed commits? We are now requiring commits to be signed before/when merging. Let us know if you have any problems getting this signed. |
Introduces a conanfile.py (and a Conan recipe for RocksDB) to enable building the package with Conan, choosing more recent default versions of dependencies. It removes almost all of the CMake build files related to dependencies, and the configurations for Travis CI and GitLab CI. A new set of cross-platform build instructions are written in BUILD.md. Includes example GitHub Actions workflow for each of Linux, macOS, Windows. * Test on macos-12 We use the <concepts> library which was not added to Apple Clang until version 13.1.6. The default Clang on macos-11 (the sometimes current version of macos-latest) is 13.0.0, and the default Clang on macos-12 is 14.0.0. Closes XRPLF#4223.
Introduces a conanfile.py (and a Conan recipe for RocksDB) to enable building the package with Conan, choosing more recent default versions of dependencies. It removes almost all of the CMake build files related to dependencies, and the configurations for Travis CI and GitLab CI. A new set of cross-platform build instructions are written in BUILD.md. Includes example GitHub Actions workflow for each of Linux, macOS, Windows. * Test on macos-12 We use the <concepts> library which was not added to Apple Clang until version 13.1.6. The default Clang on macos-11 (the sometimes current version of macos-latest) is 13.0.0, and the default Clang on macos-12 is 14.0.0. Closes XRPLF#4223.
This changeset introduces a
conanfile.py
(and a Conan recipe for RocksDB) to enable building the package with Conan, choosing more recent default versions of our dependencies. It removes almost all of the CMake build files related to dependencies, and the configurations for Travis CI and GitLab CI. There are very few modifications to source files. A new set of cross-platform build instructions are written inBUILD.md
.Please check out this branch and try to follow the build instructions. It should be a seamless process for everyone. If you encounter any problems, then we need to fix either the build files or the build instructions. I welcome reports from all contributors.
This changeset includes one example GitHub Action workflow for each of the Big Three platforms (Linux, OSX, Windows). We will want to eventually test a broader range of configurations, but I will leave that for a future changeset.
This changeset leaves in all of the old build instructions. I think we should remove them, in favor of the new
BUILD.md
, but I'm not taking that step in this changeset. I would like to hear what others think.