From: Józef Kucia jkucia@codeweavers.com
This requires widl from Wine >= 3.20:
commit b7402ddbbecdfaa81daa657fbb5d37661f401434 Author: Józef Kucia jkucia@codeweavers.com Date: Mon Nov 19 15:07:02 2018 +0100
widl: Guard RPC includes with #ifdef _WIN32.
Signed-off-by: Józef Kucia jkucia@codeweavers.com ---
Version 2: Add ax_compare_version.m4.
--- Makefile.am | 6 +- configure.ac | 2 +- m4/ax_compare_version.m4 | 177 +++++++++++++++++++++++++++++++++++++++ m4/widl.m4 | 14 ++++ 4 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 m4/ax_compare_version.m4 create mode 100644 m4/widl.m4
diff --git a/Makefile.am b/Makefile.am index 9ad7b2e3b9a5..2b5bca0871c6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -170,9 +170,7 @@ vkd3d_v_widl_1 = EXTRA_DIST += $(widl_headers) $(widl_headers:.h=.idl) $(widl_headers): %.h: %.idl if HAVE_WIDL - $(VKD3D_V_WIDL)$(WIDL) -h -o $@.tmp $< - $(AM_V_at)$(SED) -e '/#include <rpc.h>/d' -e '/#include <rpcndr.h>/d' <$@.tmp >$@ - $(AM_V_at)$(RM) $@.tmp + $(VKD3D_V_WIDL)$(WIDL) -h -o $@ $< else @echo "widl is required to generate $@" endif @@ -235,7 +233,7 @@ $(CROSS32_IMPLIBS): %.cross32.a: %.cross32.def $(AM_V_GEN)$(CROSS32_DLLTOOL) -k -m i386 --as-flags=-32 -d $< -l $@
$(CROSS32_EXEFILES): %.cross32.exe: %.c $(CROSS32_IMPLIBS) $(widl_headers) - $(AM_V_CCLD)depbase=`echo $@ | sed 's![^/]*$$!$(DEPDIR)/&!;s!.exe$$!!'`; \ + $(AM_V_CCLD)depbase=`echo $@ | $(SED) 's![^/]*$$!$(DEPDIR)/&!;s!.exe$$!!'`; \ $(CROSS32_CC) $(CROSS_CFLAGS) -MT $@ -MD -MP -MF $$depbase.Tpo -o $@ $< $(CROSS32_IMPLIBS) -ldxgi -lgdi32 && \ $(am__mv) $$depbase.Tpo $$depbase.Po else diff --git a/configure.ac b/configure.ac index 029278126b49..28f2ac908733 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PROG_CC AM_PROG_CC_C_O AC_PROG_SED AC_PROG_MKDIR_P -AC_CHECK_PROG([WIDL], [widl], [widl], [no]) +VKD3D_PROG_WIDL(3, 20) AS_IF([test "x$WIDL" = "xno"], [AC_MSG_WARN([widl is required to build header files.])])
AM_INIT_AUTOMAKE([1.11 foreign silent-rules subdir-objects no-dist-gzip dist-xz -Wall -Werror]) diff --git a/m4/ax_compare_version.m4 b/m4/ax_compare_version.m4 new file mode 100644 index 000000000000..ffb4997e8b14 --- /dev/null +++ b/m4/ax_compare_version.m4 @@ -0,0 +1,177 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compare_version.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# +# DESCRIPTION +# +# This macro compares two version strings. Due to the various number of +# minor-version numbers that can exist, and the fact that string +# comparisons are not compatible with numeric comparisons, this is not +# necessarily trivial to do in a autoconf script. This macro makes doing +# these comparisons easy. +# +# The six basic comparisons are available, as well as checking equality +# limited to a certain number of minor-version levels. +# +# The operator OP determines what type of comparison to do, and can be one +# of: +# +# eq - equal (test A == B) +# ne - not equal (test A != B) +# le - less than or equal (test A <= B) +# ge - greater than or equal (test A >= B) +# lt - less than (test A < B) +# gt - greater than (test A > B) +# +# Additionally, the eq and ne operator can have a number after it to limit +# the test to that number of minor versions. +# +# eq0 - equal up to the length of the shorter version +# ne0 - not equal up to the length of the shorter version +# eqN - equal up to N sub-version levels +# neN - not equal up to N sub-version levels +# +# When the condition is true, shell commands ACTION-IF-TRUE are run, +# otherwise shell commands ACTION-IF-FALSE are run. The environment +# variable 'ax_compare_version' is always set to either 'true' or 'false' +# as well. +# +# Examples: +# +# AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8]) +# AX_COMPARE_VERSION([3.15],[lt],[3.15.8]) +# +# would both be true. +# +# AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8]) +# AX_COMPARE_VERSION([3.15],[gt],[3.15.8]) +# +# would both be false. +# +# AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8]) +# +# would be true because it is only comparing two minor versions. +# +# AX_COMPARE_VERSION([3.15.7],[eq0],[3.15]) +# +# would be true because it is only comparing the lesser number of minor +# versions of the two values. +# +# Note: The characters that separate the version numbers do not matter. An +# empty string is the same as version 0. OP is evaluated by autoconf, not +# configure, so must be a string, not a variable. +# +# The author would like to acknowledge Guido Draheim whose advice about +# the m4_case and m4_ifvaln functions make this macro only include the +# portions necessary to perform the specific comparison specified by the +# OP argument in the final configure script. +# +# LICENSE +# +# Copyright (c) 2008 Tim Toolan toolan@ele.uri.edu +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 13 + +dnl ######################################################################### +AC_DEFUN([AX_COMPARE_VERSION], [ + AC_REQUIRE([AC_PROG_AWK]) + + # Used to indicate true or false condition + ax_compare_version=false + + # Convert the two version strings to be compared into a format that + # allows a simple string comparison. The end result is that a version + # string of the form 1.12.5-r617 will be converted to the form + # 0001001200050617. In other words, each number is zero padded to four + # digits, and non digits are removed. + AS_VAR_PUSHDEF([A],[ax_compare_version_A]) + A=`echo "$1" | sed -e 's/([[0-9]]*)/Z\1Z/g' \ + -e 's/Z([[0-9]])Z/Z0\1Z/g' \ + -e 's/Z([[0-9]][[0-9]])Z/Z0\1Z/g' \ + -e 's/Z([[0-9]][[0-9]][[0-9]])Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + AS_VAR_PUSHDEF([B],[ax_compare_version_B]) + B=`echo "$3" | sed -e 's/([[0-9]]*)/Z\1Z/g' \ + -e 's/Z([[0-9]])Z/Z0\1Z/g' \ + -e 's/Z([[0-9]][[0-9]])Z/Z0\1Z/g' \ + -e 's/Z([[0-9]][[0-9]][[0-9]])Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary + dnl # then the first line is used to determine if the condition is true. + dnl # The sed right after the echo is to remove any indented white space. + m4_case(m4_tolower($2), + [lt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [gt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [le],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ], + [ge],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ],[ + dnl Split the operator from the subversion count if present. + m4_bmatch(m4_substr($2,2), + [0],[ + # A count of zero means use the length of the shorter version. + # Determine the number of characters in A and B. + ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'` + ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'` + + # Set A to no more than B's length and B to no more than A's length. + A=`echo "$A" | sed "s/(.{$ax_compare_version_len_B}).*/\1/"` + B=`echo "$B" | sed "s/(.{$ax_compare_version_len_A}).*/\1/"` + ], + [[0-9]+],[ + # A count greater than zero means use only that many subversions + A=`echo "$A" | sed "s/(([[0-9]]{4}){m4_substr($2,2)}).*/\1/"` + B=`echo "$B" | sed "s/(([[0-9]]{4}){m4_substr($2,2)}).*/\1/"` + ], + [.+],[ + AC_WARNING( + [invalid OP numeric parameter: $2]) + ],[]) + + # Pad zeros at end of numbers to make same length. + ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`" + B="$B`echo $A | sed 's/./0/g'`" + A="$ax_compare_version_tmp_A" + + # Check for equality or inequality as necessary. + m4_case(m4_tolower(m4_substr($2,0,2)), + [eq],[ + test "x$A" = "x$B" && ax_compare_version=true + ], + [ne],[ + test "x$A" != "x$B" && ax_compare_version=true + ],[ + AC_WARNING([invalid OP parameter: $2]) + ]) + ]) + + AS_VAR_POPDEF([A])dnl + AS_VAR_POPDEF([B])dnl + + dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE. + if test "$ax_compare_version" = "true" ; then + m4_ifvaln([$4],[$4],[:])dnl + m4_ifvaln([$5],[else $5])dnl + fi +]) dnl AX_COMPARE_VERSION diff --git a/m4/widl.m4 b/m4/widl.m4 new file mode 100644 index 000000000000..2849356f7c04 --- /dev/null +++ b/m4/widl.m4 @@ -0,0 +1,14 @@ +dnl VKD3D_PROG_WIDL(major, minor) +AC_DEFUN([VKD3D_PROG_WIDL], + +[AC_CHECK_PROG([WIDL], [widl], [widl], [no]) + +AS_IF([test "x$WIDL" != "xno"], +[AC_MSG_CHECKING([checking whether widl version >= $1.$2]) +vkd3d_widl_version=`$WIDL -V | $SED -E '/version/{s/.* version (.*)/\1/;q;}'` + +AX_COMPARE_VERSION([$vkd3d_widl_version], [ge], [$1.$2], + [AC_MSG_RESULT([yes ($vkd3d_widl_version)])], + [AC_MSG_RESULT([no ($vkd3d_widl_version)]) + WIDL=no]) +])])
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=50814
Your paranoid android.
=== debian9 (build log) ===
error: patch failed: configure.ac:26 Task: Patch failed to apply
=== debian9 (build log) ===
error: patch failed: configure.ac:26 Task: Patch failed to apply
There is some strangeness with the configure check of widl i think? -- checking checking whether widl version >= 3.20... ./configure: line 4574: '/usr/lib/wine/widl': No such file or directory no () configure: WARNING: widl is required to build header files. -- :$ widl -V
Wine IDL Compiler version 4.0 Copyright 2002 Ove Kaaven --
Error when building: In file included from demos/gears.c:49: demos/demo.h:39:10: fatal error: vkd3d_d3d12.h: No such file or directory #include <vkd3d_d3d12.h> ^~~~~~~~~~~~~~~ compilation terminated. --
This is with Ubuntu 19.04 Disco.
Installing libvkd3d-dev will make it work, as the header files is installed... but that's hardly the proper way? :) Is there some new function in widl 3.20 that would fail this with widl 3.0? (Due to the fact that Bionic and Cosmic only has wine-3.0.x available from default repo)
Sveinar Søpler
----- Original Message ----- From: "Marvin" testbot@winehq.org To: "joseph kucia" joseph.kucia@gmail.com Cc: wine-devel@winehq.org Sent: Wednesday, April 10, 2019 8:42:35 PM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=50814
Your paranoid android.
=== debian9 (build log) ===
error: patch failed: configure.ac:26 Task: Patch failed to apply
=== debian9 (build log) ===
error: patch failed: configure.ac:26 Task: Patch failed to apply
On Fri, Apr 12, 2019 at 11:12 PM Sveinar Søpler cybermax@dexter.no wrote:
There is some strangeness with the configure check of widl i think?
checking checking whether widl version >= 3.20... ./configure: line 4574: '/usr/lib/wine/widl': No such file or directory no () configure: WARNING: widl is required to build header files. -- :$ widl -V
Wine IDL Compiler version 4.0 Copyright 2002 Ove Kaaven --
Do you have the WIDL environment variable set? Do you set it when running configure? config.log should be helpful to diagnose your problem.
Is there some new function in widl 3.20 that would fail this with widl 3.0? (Due to the fact that Bionic and Cosmic only has wine-3.0.x available from default repo)
widl 3.20 or newer is required. The configure test checks the widl version.
Hmm. I guess its the fakeroot environment that does something weird when building package with dpkg-buildpackage, cos running regular "configure" does not show this error. config.log using dpkg-buildpackage reads: -- configure:4562: result: '/usr/lib/wine/widl' configure:4572: checking checking whether widl version >= 3.20 configure:4610: result: no () -- Outside of the fakeroot env, widl is a symlink from /usr/bin/widl -> /etc/alternatives/widl -> /usr/bin/widl-stable -> ../lib/wine/widl I guess some of this symlinkery fails in the fakeroot, even tho configure finds the actual binary in /usr/lib/wine/widl. Ill dig a bit and see what i can figure out.
I maintain a Launchpad PPA for vkd3d packages, and i must say it's a shame vkd3d cant be built for Ubuntu bionic/cosmic on launchpad anymore.
I talked a wee bit with DiMesio about building vkd3d for wine-devel on the OBS, but did not come to an agreement with her about placements of libraries. But since vkd3d can't be built on launchpad anymore i might look more into using OBS for bionic/cosmic packages perhaps. If it is of any interest, i'm willing to discuss it some more.
I would however say that if it should become a "winehq provided package", it should be possible to use it for something. As of now, release 1.1 does not work with anything and should probably not be used for this. Best option would be to have the two "hack patches" needed for WoW to work implemented + do a release 1.2 with that. Why? Yeah, cos if the packages are actually included with wine-devel it would be nice to have it support playing WoW :)
Sveinar Søpler
----- Original Message ----- From: "joseph kucia" joseph.kucia@gmail.com To: "Sveinar Søpler" cybermax@dexter.no Cc: "wine-devel" wine-devel@winehq.org Sent: Saturday, April 13, 2019 11:13:52 AM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
On Fri, Apr 12, 2019 at 11:12 PM Sveinar Søpler cybermax@dexter.no wrote:
There is some strangeness with the configure check of widl i think?
checking checking whether widl version >= 3.20... ./configure: line 4574: '/usr/lib/wine/widl': No such file or directory no () configure: WARNING: widl is required to build header files. -- :$ widl -V
Wine IDL Compiler version 4.0 Copyright 2002 Ove Kaaven --
Do you have the WIDL environment variable set? Do you set it when running configure? config.log should be helpful to diagnose your problem.
Is there some new function in widl 3.20 that would fail this with widl 3.0? (Due to the fact that Bionic and Cosmic only has wine-3.0.x available from default repo)
widl 3.20 or newer is required. The configure test checks the widl version.
Interestingly enough, NOT setting the "export WIDL='/usr/lib/wine/widl'" in the "rules" file for deb build, makes dpkg-buildpackage build fine locally. If i do not set that export, Launchpad does not find WIDL at all tho.
Setting this export line make the configure script fail on the version extraction for some reason. Dunno how all the configure lines involved in finding this version actually work tbh, so i am rather clueless how to solve this.
Just doing: widl -V | sed -E '/version/{s/.* version (.*)/\1/;q;}' outputs "4.0" for Disco, but all the "ax_compare_version_A/B"+++ stuff, i dunno how to manually test.
In retrospect, building vkd3d for bionic/cosmic for WineHQ is probably not an option, cos vkd3d needs libvulkan > 1.1.84, but Bionic only provides libvulkan-1.1.70, and Cosmic libvulkan-1.1.82.... and providing backported packages on WineHQ repo was not something anyone was too happy doing.
Sveinar Søpler
----- Original Message ----- From: "Sveinar Søpler" cybermax@dexter.no To: "wine-devel" wine-devel@winehq.org Sent: Saturday, April 13, 2019 9:31:09 PM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
Hmm. I guess its the fakeroot environment that does something weird when building package with dpkg-buildpackage, cos running regular "configure" does not show this error. config.log using dpkg-buildpackage reads: -- configure:4562: result: '/usr/lib/wine/widl' configure:4572: checking checking whether widl version >= 3.20 configure:4610: result: no () -- Outside of the fakeroot env, widl is a symlink from /usr/bin/widl -> /etc/alternatives/widl -> /usr/bin/widl-stable -> ../lib/wine/widl I guess some of this symlinkery fails in the fakeroot, even tho configure finds the actual binary in /usr/lib/wine/widl. Ill dig a bit and see what i can figure out.
I maintain a Launchpad PPA for vkd3d packages, and i must say it's a shame vkd3d cant be built for Ubuntu bionic/cosmic on launchpad anymore.
I talked a wee bit with DiMesio about building vkd3d for wine-devel on the OBS, but did not come to an agreement with her about placements of libraries. But since vkd3d can't be built on launchpad anymore i might look more into using OBS for bionic/cosmic packages perhaps. If it is of any interest, i'm willing to discuss it some more.
I would however say that if it should become a "winehq provided package", it should be possible to use it for something. As of now, release 1.1 does not work with anything and should probably not be used for this. Best option would be to have the two "hack patches" needed for WoW to work implemented + do a release 1.2 with that. Why? Yeah, cos if the packages are actually included with wine-devel it would be nice to have it support playing WoW :)
Sveinar Søpler
----- Original Message ----- From: "joseph kucia" joseph.kucia@gmail.com To: "Sveinar Søpler" cybermax@dexter.no Cc: "wine-devel" wine-devel@winehq.org Sent: Saturday, April 13, 2019 11:13:52 AM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
On Fri, Apr 12, 2019 at 11:12 PM Sveinar Søpler cybermax@dexter.no wrote:
There is some strangeness with the configure check of widl i think?
checking checking whether widl version >= 3.20... ./configure: line 4574: '/usr/lib/wine/widl': No such file or directory no () configure: WARNING: widl is required to build header files. -- :$ widl -V
Wine IDL Compiler version 4.0 Copyright 2002 Ove Kaaven --
Do you have the WIDL environment variable set? Do you set it when running configure? config.log should be helpful to diagnose your problem.
Is there some new function in widl 3.20 that would fail this with widl 3.0? (Due to the fact that Bionic and Cosmic only has wine-3.0.x available from default repo)
widl 3.20 or newer is required. The configure test checks the widl version.
On Sat, Apr 13, 2019 at 10:53 PM Sveinar Søpler cybermax@dexter.no wrote:
In retrospect, building vkd3d for bionic/cosmic for WineHQ is probably not an option, cos vkd3d needs libvulkan > 1.1.84, but Bionic only provides libvulkan-1.1.70, and Cosmic libvulkan-1.1.82.... and providing backported packages on WineHQ repo was not something anyone was too happy doing.
Strictly speaking, you don't need libvulkan to build vkd3d. The build without libvulkan requires that any client of libvkd3d must pass a pointer to vkGetInstanceProcAddr() to vkd3d_create_instance(). A build without libvulkan is good enough for Wine. You need recent Vulkan headers, but you can get those easily from git@github.com:KhronosGroup/Vulkan-Headers.git (just add the path to headers to CPPFLAGS passed to configure). Similarly, a new version of widl shouldn't be a big problem. If you have recent enough Wine sources, you can also build a recent version of widl: make tools/widl.
There is no such thing as "get those easily from.." when it comes to Luanchpad PPA, or OBS. Cos the ONLY option afaik is either a: From "official" repo's, or b: build yourself so that the package builder have access to it from "itself".
So, when it comes to creating a installable package like i did with libFAudio, i would need (as you say) libvulkan-headers. Those headers i guess could be patched into the build-source as a external download/dep kind of thingy perhaps? And then just make wine depend on >libvulkan-1.1.84, and its up to the users to figure that out? I dunno if its interesting anyway for WineHQ to build wine-devel with vkd3d support for anything older than the unreleased Ubuntu Disco on their package repo tho. And seeing wined3d making a move towards vulkan might require newer vulkan headers there too?
So, the next question might be: Will WineHQ in the future only be a "newest and/or beta distro only" kind of package? :)
Ill look into perhaps creating widl as a standalone package for the PPA buildbot as a retro-fit thing for bionic/cosmic perhaps... It turns out that using: export WIDL="/usr/lib/wine/widl" does not work, but using export WIDL=/usr/lib/wine/widl does work.
Guess thats just another "noob mistake", that is totally different than noob mistake :) Ah well...
Sveinar Søpler
----- Original Message ----- From: "joseph kucia" joseph.kucia@gmail.com To: "Sveinar Søpler" cybermax@dexter.no Cc: "wine-devel" wine-devel@winehq.org Sent: Sunday, April 14, 2019 8:31:03 AM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
On Sat, Apr 13, 2019 at 10:53 PM Sveinar Søpler cybermax@dexter.no wrote:
In retrospect, building vkd3d for bionic/cosmic for WineHQ is probably not an option, cos vkd3d needs libvulkan > 1.1.84, but Bionic only provides libvulkan-1.1.70, and Cosmic libvulkan-1.1.82.... and providing backported packages on WineHQ repo was not something anyone was too happy doing.
Strictly speaking, you don't need libvulkan to build vkd3d. The build without libvulkan requires that any client of libvkd3d must pass a pointer to vkGetInstanceProcAddr() to vkd3d_create_instance(). A build without libvulkan is good enough for Wine. You need recent Vulkan headers, but you can get those easily from git@github.com:KhronosGroup/Vulkan-Headers.git (just add the path to headers to CPPFLAGS passed to configure). Similarly, a new version of widl shouldn't be a big problem. If you have recent enough Wine sources, you can also build a recent version of widl: make tools/widl.
On Sun, Apr 14, 2019 at 2:02 PM Sveinar Søpler cybermax@dexter.no wrote:
There is no such thing as "get those easily from.." when it comes to Luanchpad PPA, or OBS. Cos the ONLY option afaik is either a: From "official" repo's, or b: build yourself so that the package builder have access to it from "itself".
So, when it comes to creating a installable package like i did with libFAudio, i would need (as you say) libvulkan-headers. Those headers i guess could be patched into the build-source as a external download/dep kind of thingy perhaps?
Perhaps. The headers are required only to build the package.
And then just make wine depend on >libvulkan-1.1.84, and its up to the users to figure that out?
The version of libvulkan shouldn't matter. It should be possible to build and/or run libvkd3d with pretty much any libvulkan version.
I dunno if its interesting anyway for WineHQ to build wine-devel with vkd3d support for anything older than the unreleased Ubuntu Disco on their package repo tho. And seeing wined3d making a move towards vulkan might require newer vulkan headers there too?
Wine doesn't require Vulkan headers. Wine has its own Vulkan headers generated from vk.xml by the dll/winevulkan/make_vulkan script.
So, when it comes to creating a installable package like i did with libFAudio, i would need (as you say) libvulkan-headers. Those headers i guess could be patched into the build-source as a external download/dep kind of thingy perhaps?
Perhaps. The headers are required only to build the package.
Someone with half a debian brain would probably figure out a neat debuild script that would do that. I'm currently at a loss here tho, but won't give up just yet. It is the same with spirv-headers too, as this is not available as a package for all distro's.
And then just make wine depend on >libvulkan-1.1.84, and its up to the users to figure that out?
The version of libvulkan shouldn't matter. It should be possible to build and/or run libvkd3d with pretty much any libvulkan version.
In other words, once built, libvkd3d does not depend on the same libvulkan1 version as the headers, and its mostly up to the driver to provide stuff? And libvkd3d is "extension free" when it comes to libvulkan and driver capabilities?
That said, i was able to build a "widl" package on my PPA for bionic and cosmic, so vkd3d is once again being built for those distro's.
Sveinar
----- Original Message ----- From: "joseph kucia" joseph.kucia@gmail.com To: "Sveinar Søpler" cybermax@dexter.no Cc: "wine-devel" wine-devel@winehq.org Sent: Sunday, April 14, 2019 2:29:14 PM Subject: Re: [PATCH v2 vkd3d 1/4] build: Drop hack for stripping RPC includes from widl-generated headers.
On Sun, Apr 14, 2019 at 2:02 PM Sveinar Søpler cybermax@dexter.no wrote:
There is no such thing as "get those easily from.." when it comes to Luanchpad PPA, or OBS. Cos the ONLY option afaik is either a: From "official" repo's, or b: build yourself so that the package builder have access to it from "itself".
So, when it comes to creating a installable package like i did with libFAudio, i would need (as you say) libvulkan-headers. Those headers i guess could be patched into the build-source as a external download/dep kind of thingy perhaps?
Perhaps. The headers are required only to build the package.
And then just make wine depend on >libvulkan-1.1.84, and its up to the users to figure that out?
The version of libvulkan shouldn't matter. It should be possible to build and/or run libvkd3d with pretty much any libvulkan version.
I dunno if its interesting anyway for WineHQ to build wine-devel with vkd3d support for anything older than the unreleased Ubuntu Disco on their package repo tho. And seeing wined3d making a move towards vulkan might require newer vulkan headers there too?
Wine doesn't require Vulkan headers. Wine has its own Vulkan headers generated from vk.xml by the dll/winevulkan/make_vulkan script.