On Monday, 10 November 2025 09:23:37 CST Esme Povirk wrote:
We can't just disable in configure based on host arch, because in the case of new wow64 we'll be building for i386 and x86_64 in the same tree.
I think we want to do two things:
Use the PARENTSRC feature to create two dlls, twain_32 and twaindsm, that share the same source files.
Disable one or the other dll by default, based on architecture. In theory, this can be done in configure. One can, if I'm reading this right, use a configure switch like --enable-twain_32=i386 --enable-twaindsm=x86_64,arm64ec,arm,aarch64. Although, it seems like twaindsm.dll exists in 32-bit as well, so it should probably be built for all architectures.
As for how to actually do that, I think we want to set enable_twain_32 in configure.ac, only when it hasn't been already set by the user. See enable_dpnsvr for an example of this.
If I'm not mistaken, we can do much simpler, and just rename it from wine.inf. As of ad9dfe8bcc we look for the builtin by its export name, which will still be twain_32 in that case. That was meant for comctl32, but I think it works in the reverse direction as well. Whether we should actually do this seems a bit questionable to me, if Windows doesn't actually ship twaindsm.dll, and if twaindsm.dll is presumably a different piece of software that is even LGPL 2.1 licensed.