These are the Conan recipes for Catapult client dependencies.
Before building the packages, update each package with the new version.
- Edit the config.yml file for the package and add the new version
- Edit the conandata.yml file and add the new package url and checksum. (Note: not every package has a conandata.yml file)
- Calculate the sha256 hash for the package using
sha256sum
tool.
- Calculate the sha256 hash for the package using
If openssl is updated, set the new version in the mongo-c-driver's conanfile.py
file.
If mongo-c-driver is updated, set the new version in the mongo-cxx-driver conanfile.py
file.
Before you can start building, set up the Conan environment.
conan profile detect --name default
conan remote add nemtech https://conan.symbol.dev/artifactory/api/conan/catapult
Create the package for the recipe.
This example uses benchmark
recipe and assumes you are in the recipes
folder
cd benchmark/all
conan create --name benchmark --version 1.8.3 --user nemtech --channel stable .
cd -
After creating all the packages then upload them. Here we are uploading the packages to the nemtech remote.
cd benchmark/all
conan upload benchmark/1.8.3@nemtech/stable -r=nemtech --force
cd -
The packages should be created in a specific order, due to dependencies on each other.
- benchmark
- zeromq
- cppzmq
- rocksdb
- mongo-c-driver
- mongo-cxx-driver
There are several reasons why custom Conan packages were created for Catapult client.
- The main reason was to add support rpath in Darwin OS.
- Benchmark was updated to prevent benchmark from actually removing cmake files.
- Mongo-c has specific changes for Visual Studio and fix the ENABLE_AUTOMATIC_INIT_AND_CLEANUP.
- Mongo-cxx has some customization for Visual Studio plus it was copying files instead of using cmake.install() in conanfile.
- ZeroMQ has rpath support added.
- Cppzmq has cmakelist file which was incorrect and this was fix.
- RocksDB has rpath support added.