QW-Group/ezquake-source

REQ: Remove checked in dependencies in favor of <package manager>

Closed this issue · 1 comments

Today the repo is polluted with:

  • src/vstudio-libs
  • src/mingw32-libs
  • src/minizip
  • src/opengl

In an ideal world it would be fine to rewrite history to avoid this mistake, but immutable hashes are ❤️

Instead of embedding these dependencies ezQuake could instead use modern packaging systems such as Conan1 or vcpkg2. The latter was recently more deeply integrated into Visual Studio3. TrenchBroom is one example in the Quake sphere that uses vcpkg, see their vcpkg.json. It deals with static linking4, integrates well into CMake5 based builds when that time comes, and probably benefits the AppImage build as well.

As it is today the repo will continue to explode in size as dependencies are bumped or introduced. The new Vulkan backend will most likely want newer Vulkan stuff, and perhaps some other libraries, and the current set of libs in the repo are probably all sorts of vulnerable.

All aboard vcpkg? Yay? Nay? Alternatives?

Footnotes

  1. https://conan.io

  2. https://vcpkg.io

  3. https://devblogs.microsoft.com/cppblog/vcpkg-is-now-included-with-visual-studio/

  4. https://devblogs.microsoft.com/cppblog/vcpkg-updates-static-linking-is-now-available/

  5. https://learn.microsoft.com/en-us/vcpkg/users/buildsystems/cmake-integration

If you want to use a C++ package manager, I'd recommend going with vcpkg. I've had more technical issues with Conan historically.