Install headers and pkg-config files, MkII
This reworks #3325 to apply to the latest dxvk revision, and is based on #3738 and #3743. As a result, only the last 4 commits are actually for this specific PR.
CC @smcv, I had to adjust a few of the patches, so we'll need to re-confirm the signoffs for those.
Fixes #3323
Part of #3451
Supercedes #3325
I have no problem with the versions of my commits that appear here. Feel free to add a Co-authored-by, or not, as you prefer.
On #3325 I wrote:
It's a bit unfortunate that [the name prefix for
*.so] isdxvk_and [the name prefix for*.pc] isdxvk-. I've kept the naming from the Fedora packaging for now, but I'd be very tempted to change it todxvk_d3d9.pc,dxvk_glfw_dxgi.pcand so on, to be consistent with the library names and avoid having two subtly different name-prefixes.
What do maintainers think about that? This PR is changing the pkg-config API anyway, so if there was a time to make that change, now would probably be that time.
I'd be okay with doing _ over -, I'll check with Neal to see if this is an okay change for Fedora.
I'd be okay with doing _ over -, I'll check with Neal to see if this is an okay change for Fedora.
Does Meson's pkgconfig generator not support setting Provides names? It's documented in pc(5).
Does Meson's pkgconfig generator not support setting
Providesnames? It's documented inpc(5).
Not as far as I can see in https://mesonbuild.com/Pkgconfig-module.html.
Does original freedesktop.org pkg-config support Provides, or are they a pkgconf-ism?
I believe the way the equivalent of Provides was traditionally implemented is as a symlink oldname.pc -> newname.pc, as is done in the Debian packaging of sdl12-compat and sdl2-compat.
[edited to add]
sdl12_compat.pc does have Provides: sdl, and Debian uses pkgconf now, so maybe we don't actually need that symlink any more; but there are other modules (e.g. libpng, libplist, libxcrypt) for which the symlinks are still used, and there's no Provides in those cases.
It was always part of the spec, but not implemented fully in pkg-config. pkgconf actually implemented it to work. You see this with pkg-config --provides sdl12-compat across the two implementations.
Rebased and updated with the latest changes from the other two PRs.
Did we ever make a call with the - v. _ change? Left that part alone for now.
Well, I'm shipping dxvk-native-2.3 now with -, so... 🤷🏾♂️
Latest push is just a rebase, this PR now only depends on #3743
If you fix that comment and the commit commit names, I will merge it.
Looks like Meson made the choice for us:
src/dxgi/meson.build:24:0: ERROR: Invalid Shared library version "0.2.3.1". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.
So I guess I need to revert that...? Also, what were the commit/comment changes I needed to make, I couldn't see them in this thread.
Just make the commit names match up with the style of the rest of the repo.
Looks like Meson made the choice for us:
src/dxgi/meson.build:24:0: ERROR: Invalid Shared library version "0.2.3.1". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.So I guess I need to revert that...? Also, what were the commit/comment changes I needed to make, I couldn't see them in this thread.
lol let's make it 0.231 or whatever then
Latest push changes to be the '231' style, and adjusts the commit tag to use [].
One final nit, the tarball for Steam Runtime binaries contains a .git file inside of the include folder :P
Added an exclude_files to the directx install block to ignore a possible .git file when packaging a repo clone (shouldn't happen with source tarballs).