Using VCPKG manifest file
Can we think about start using VCPKG manifests? I see that VCPKG already used for Windows build, I hope that it also can be unified, because VCPKG available for Win/Linux/Mac.
In addition to help with faster getting first build there are also other benefits:
- Will help to avoid interferences with globally installed libraries for different projects.
- Manifest allows to stick with specified versions of third-party libraries.
- Will reduce complexity of Cmake by removing constructions like "if (WIN32) else" for linking dependencies.
- Allow to move in direction to publish 'seismic-store-cpp-lib' to VCPKG.
As start point, I've prepared branch with VCPKG manifest.
Currently I am not added libraries aws-sdk-cpp and google-cloud-cpp because need to fix linking in the cmake.
How to build:
make -B build -DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_FEATURE_FLAGS=versions
cmake --build build --config Release
[Please correct path to installed VCPKG]
The VCPKG way should work on all platforms, but currently there are exists few issues which should be fixed.
For have better life with Visual Studio, I've also prepared "CMakeSettings.json" file, that allows to just use "Open folder" command from the VS and make build without any other configure actions. (Just VCPKG should be installed and path should be added to environment variable VCPKG_ROOT).
One thing that need to keep in mind, VCPKG does not officially support dynamic linkage on Linux, which is related to system-provided libraries (more info). But exists community supported triplet which can be used at our own risk.
As I am new on OSDU and on this particular library, please point out which other impediments do you see.
Edited 1/26/2023: Btw, the same work was done for Reservoir/Open-ETP-server