Unify Development Dependencies using Vcpkg
Like many large scale software projects, OpenMS has numerous development dependencies. Unfortunately, there is no straightforward way to quickly and easily install all of these dependencies. Some can be installed using various package managers such as apt-get, brew, or choco, while others need to be installed with a Python package manager such as conda. And finally, some dependencies need to be compiled from source code manually. The proposed solution introduces a vcpkg manifest-based dependency system integrated through CMake toolchain support. To address performance challenges, especially for large dependencies such as Qt, a binary caching mechanism will be implemented using GitHub Releases, significantly reducing build times in both CI and local development environments. Existing contrib patches will be analyzed and minimized by leveraging upstream fixes and vcpkg ports, with overlay ports introduced only where necessary. The project will deliver a fully functional vcpkg-based build system for OpenMS, including cross-platform support (Linux, macOS, Windows), CI integration with caching, and validated compatibility with core components and pyOpenMS. This will improve build reproducibility, reduce maintenance overhead, and simplify the developer onboarding process.
Project details
Technologies
Not listed in the archive