Currently, we have custom CMake functions for building libraries and tools: https://github.com/HEP-SoC/SoCMake/tree/master/cmake/build_scripts
This can work quite well, but it's inefficient for us to support this.
Since there are already projects that deal with this issue, we should consider just using those.
Here is a list of C++ package managers that I tried:
- Hunter
- Implemented on CMake
- Integrates into CMake project
- Looks similar to current build_scripts
To add package, simply call in the CMake project
More examples here https://github.com/cpp-pm/gate
- vcpkg
- Implemented in CMake
- Developed by Microsoft
- Can be used in CLI mode or in manifest mode, where it requires separate manifest json file
- Only manifest mode can do versioning of packages
- The CMake build scripts are unaware of vcpkg, need to pass
-DCMAKE_TOOLCHAIN_FILE when configuring
- conan
- Implemented in Python, which makes it a bit tricky to use
- Has a conan center repository of packages https://conan.io/center
- In theory already has Verilator and SystemC packages, but they seem outdated.
- Should have good CMake integration
#139
@benoitdenkinger
Currently, we have custom CMake functions for building libraries and tools: https://github.com/HEP-SoC/SoCMake/tree/master/cmake/build_scripts
This can work quite well, but it's inefficient for us to support this.
Since there are already projects that deal with this issue, we should consider just using those.
Here is a list of C++ package managers that I tried:
To add package, simply call in the CMake project
More examples here https://github.com/cpp-pm/gate
-DCMAKE_TOOLCHAIN_FILEwhen configuring#139
@benoitdenkinger