Post by Pete BatardPost by Michael Plantelibusb-winusb-wip\msvc\dll__Debug\libusb-1.0d.dll
libusb-winusb-wip\msvc\dll__Debug\libusb-1.0d.lib
libusb-winusb-wip\msvc\dll__Release\libusb-1.0.dll
libusb-winusb-wip\msvc\dll__Release\libusb-1.0.lib
libusb-winusb-wip\msvc\examples\lsusb__Debug\lsusb.exe
libusb-winusb-wip\msvc\examples\lsusb__Release\lsusb.exe
libusb-winusb-wip\msvc\examples\xusb__Debug\xusb.exe
libusb-winusb-wip\msvc\examples\xusb__Release\xusb.exe
libusb-winusb-wip\msvc\lib__Debug\libusb-1.0d.lib
libusb-winusb-wip\msvc\lib__Release\libusb-1.0.lib
1. Why the double underscore? Not that I really mind, but is that a
convention or something?
It is a convention (see below). We could do single-underscore. I think the
idea is that some projects might have a single underscore in the name, so
this stands out better to the eye. I'll switch to single, though, if you
want.
Post by Pete Batard2. I think having both the debug lib produced in a separate directory
and having a "d" added at the end is a bit redundant (especially as the
same is not done for the examples). Personally, I'd ditch the "d" from
the debug libraries.
No, because it matters when you copy the DLLs (by themselves, of course) to
the system32 directory, or the import libraries to your compiler's LIB
directory. I usually do this as a post-build step in my own builds (done it
with pthreads, libftdi, libusb-0.1, and lib3ds, to name a few), though I
didn't here, since not everyone wants them copied. But I agree it's
unnecessary for the static libraries, since those using static libraries are
probably only using them in one or two places, whereas DLLs are likely to be
needed by a lot of stuff, which is the point of having a DLL. If you want
me to take the "d" suffix off of "lib__Debug", that would be fine.
Basically, it's equivalent to having a collision when you do "make install"
in a non-windows system, but I left that (relatively trivial) step out of
the "vanilla" build here, so it's not as obvious that it would happen.
Post by Pete Batard3. I'm kind of wondering if we'd not be better of starting with a
Release & Debug directories at the top libusb-winusb-wip\Debug,
libusb-winusb-wip\Release and then working our way down to
subdirectories if needed (dll, lib, examples).
That's fine by me. Peter had suggested the other layout, and I don't care
one way or the other.
Post by Pete BatardI think this is closer to where MSVC users who are new to libusb would
expect to find their files in the first place.
I'm not sure that's true, but it doesn't really matter to me, as I
mentioned. I just took the first reasonable suggestion.
Post by Pete Batardlibusb-winusb-wip\Debug\dll\libusb-1.0.dll
libusb-winusb-wip\Debug\dll\libusb-1.0.lib
libusb-winusb-wip\Debug\lib\libusb-1.0.lib
Yes
Post by Pete Batardlibusb-winusb-wip\Debug\examples\lsusb.exe
libusb-winusb-wip\Debug\examples\xusb.exe
Maybe, maybe not. Note the subdirectories above. I could not control where
the vc60.idb and vc60.pdb files go by themselves, though I don't recall if
they were considered intermediates or final products. Note you also have
vc90.* files in your listing. I'm not sure how different they are (6 vs 9).
Post by Pete BatardWould such a directory structure cause a problem with MSVC6?
Oh, and if needed, I'd create an intermediate directory (xusb_int,
lsusb_int) for the intermediate files of the executables above
As mentioned, if they turn out to be intermediate files, that might work.
If they're not considered intermediate files, then the examples may have to
stay separate, as before. I'll just have to test it. I think the point in
putting it under MSVC was that someone mentioned MinGW did something
conflicting. The point in the weird directory names was just that that's an
MSVC6 convention when there's more than one project in the same directory
(for example, both a DLL and static LIB, or two different EXEs, or
whatever). Acutally, the convention is weirder, but rational: the first
project you create and/or activate gets plain "Debug", and later ones get
"projectName__Debug" or some such. I at least tried to make it consistent.
But moving everything under a "Debug" hierarchy and "Release" hierarchy
under the root, with multi-level subdirectories instead of long directory
names, is fine by me if this is preferred.
Michael