Russian-Doom / russian-doom

A limit-removing source port of Doom, Heretic and Hexen. It has numerous vanilla bug fixes, enhanced 640x400 and 1280x800 rendering resolutions, improved game palettes and offers many optional aesthetic game enhancements along with the maximum possible translation to the Russian language.
GNU General Public License v2.0
80 stars 14 forks source link

compatibility with vcpkg #418

Closed rfomin closed 1 year ago

rfomin commented 1 year ago

The only problem is that the contents of the base directory are not copied to the target directory, not sure why.

Dasperal commented 1 year ago

Last time I tried vcpkg, SDL2 DLL from it caused crush at startup, was it fixed?

rfomin commented 1 year ago
  • If vcpkg doesn't provide install rules for DLLs, they must be provided manually, probably in the same /lib/DLL/CMakeLists.txt.

There is an option to provide automatic install, works in Woof:

# X_VCPKG_APPLOCAL_DEPS_INSTALL automatically installs dependencies
# (except SDL_Mixer "plugins"). CMP0077 supress some arcane CMake warning.
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(X_VCPKG_APPLOCAL_DEPS_INSTALL ON)

Last time I tried vcpkg, SDL2 DLL from it caused crush at startup, was it fixed?

It works for me, I use it to test resent PRs.

rfomin commented 1 year ago

@Dasperal Not relevant to this PR, but I found out how to fix slow libsamplerate from vcpkg, see: https://github.com/fabiangreffrath/woof/commit/cde9dd6aeca1c1d91bd6ddee550714d9e8055ee7

Dasperal commented 1 year ago

So, what's left:

Other questions:

rfomin commented 1 year ago
  • vcpkg install them multiple times, one for each executable, and doesn't print what is installed and where.

This is not a problem for me, in fact I would like to reduce the number of unnecessary messages. I like it when a program prints only error messages or "done". 😄

  • Do we want to always prioritize configs over find modules?

We can make option(CMAKE_FIND_PACKAGE_PREFER_CONFIG On) (I don't remember exact syntax).

  • Do we want to use miniz from vcpkg?

Personally, I like single-file libraries because we don't have to manage dependencies.

JNechaevsky commented 1 year ago

Colleagues, is it release-critical? I'm thinking to release a quad-res update today.

Dasperal commented 1 year ago

No, it's not release-critical. Just support for another optional building environment.

Dasperal commented 1 year ago

And while I'm here, update libraries.

I'll leave TODOs for copy target and install rules for now and merge that already done. I probably file a feature request to vcpkg about automatic copy and install of transitive dependencies.

Dasperal commented 1 year ago

TODOs about SDL2_mixer "plugins" fixed themselves with SDL2_mixer package update in vcpkg