Hi Andrew,
On 09/01/16 04:03, Andrew Eikum wrote:
Currently, all of Wine's xaudio2 modules forward their implementations to xaudio2_7. This fails when the user installs native xaudio2_7 and tries to use a built-in xaudio DLL like xaudio2_8. Instead, we should use the shared source mechanism to build each xaudio DLL independent of the others.
Signed-off-by: Andrew Eikum aeikum@codeweavers.com
This is the first patch in a long series to move all 22 xaudio DLLs to use shared source. These first two show the idea; the following patches move all xaudio2_* DLLs, then xapofx1_*, then x3daudio1_*. Next, there are a few cleanup patches to remove the run-time version logic, since we can now do it at compile-time.
dlls/{xaudio2_7 => xaudio2}/compat.c | 0 dlls/{xaudio2_7 => xaudio2}/xapofx.c | 0 dlls/{xaudio2_7 => xaudio2}/xaudio_classes.idl | 0 dlls/{xaudio2_7 => xaudio2}/xaudio_dll.c | 0 dlls/{xaudio2_7 => xaudio2}/xaudio_private.h | 0 dlls/xaudio2_7/Makefile.in | 2 ++ 6 files changed, 2 insertions(+)
Whats the reason behind moving the source into a separate directory?
It's not needed, have a look d3dcompiler_46 which uses the source in d3dcompiler_43. If you have main.c in each directory the build script is smart enough to compile the correct one, if that is your concern.
Best Regards Alistair Leslie-Hughes
On Sun, Jan 10, 2016 at 11:32:22AM +1100, Alistair Leslie-Hughes wrote:
Whats the reason behind moving the source into a separate directory?
It's not needed, have a look d3dcompiler_46 which uses the source in d3dcompiler_43. If you have main.c in each directory the build script is smart enough to compile the correct one, if that is your concern.
I didn't realize it was wrong. I was following the example of msvc* which keeps their implementations in msvcrt/. However, we do need an msvcrt DLL while we don't need an xaudio2 DLL. I didn't realize that other modules like d3dcompiler use the shared source mechanism.
I don't understand why we keep the generic implementation in a specific DLL, but if that's what we do, then OK.
Andrew
Andrew Eikum aeikum@codeweavers.com writes:
On Sun, Jan 10, 2016 at 11:32:22AM +1100, Alistair Leslie-Hughes wrote:
Whats the reason behind moving the source into a separate directory?
It's not needed, have a look d3dcompiler_46 which uses the source in d3dcompiler_43. If you have main.c in each directory the build script is smart enough to compile the correct one, if that is your concern.
I didn't realize it was wrong. I was following the example of msvc* which keeps their implementations in msvcrt/. However, we do need an msvcrt DLL while we don't need an xaudio2 DLL. I didn't realize that other modules like d3dcompiler use the shared source mechanism.
I don't understand why we keep the generic implementation in a specific DLL, but if that's what we do, then OK.
Mostly we don't want to create directories that don't correspond to a real dll. That would be confusing, and potentially create conflicts with import library names and the like.