[ODE] New Msvc6 project files

Frank Compagner Frank Compagner <frank at compagner.com>
Mon May 12 13:29:02 2003


>>i've created new msvc6 project files for Ode, which should make
>>using Ode under msvc6 a bit easier.

BZ> It worked fine for me. Thanks for doing this, I was about to do it myself.
BZ> Anyway, a couple comments, some picky.

Thanx for the feedback. I like picky, BTW.

BZ> Have it copy the resulting .lib file to the lib directory. I don't like
BZ> having stray projects in my workspace, I prefer just the lib.

Copying the lib to the lib dir is easy, but you do get a small problem
in distinguishing Release and Debug libs. I think renaming the Debug
build OdeD.lib would do the trick. Then you can just add both to your
project and flag the Debug lib "exclude from build" in your Release
configuration and vice-versa. I do always wonder how msvc finds the
source files to match the debug info in the lib, but it seems to
manage it most of the time (probably has absolute paths embedded in
the debug info). I'll do the same for the DrawStuff lib.

BZ> Why is there an Ode_Headers folder and DrawStuff_Headers folder with each of
BZ> the test apps?

That is basically to categorize the headers that would otherwise be
listed under "external dependencies" (which is where they'll re-appaer
if you remove those folders). That's the way i usually do it, makes it
a little bit more cleaer where all the headers came from. In this case
they all come from Ode, with the exception of DrawStuff.h, so it's not
too informative, but still no worse than having them listed under
external dependencies.

BZ> The Ode folder contains a single folder called 'Source Files' with both .h
BZ> and .cpp files in it, there should be 'Headers Files' folder too.

That's just my preference, but as you say, it is more customary to split them up,
so i'll fix that.

BZ> You could maybe add some stuff to config-single and config-double to help
BZ> with vc6 quirks.

BZ> #define for if(false) {} else for //fix non-compliant 'for' scoping
BZ> #pragma warning (disable:4305) // 'argument' : truncation from 'const
BZ> double' to 'float'

Hmm, nice idea, but the problem is that config.h is included right at
the top of ode.h, which means that the above would be in effect in
every source file where you include ode.h. That would be a bit much
for my taste. If it were to affect only the Ode sources, fine, but as
it is this is one step too far. The for scoping thing can be fixed
easily enough in the test sources, which is where it should be done.
The warnings are a bit of a nuisance, but they're still real (though
i'll be damned if i know what causes the "no matching operator delete
found" warnings).

BZ> if you are feeling saucy, maybe a:

BZ> #pragma comment (lib, "opengl32.lib")
BZ> #pragma comment (lib, "glu32.lib")

Hmm, saucy indeed, but that would link OpenGL into every Ode app you
build, which is again going a bit too far (i have a DirectX one right
here, for example).

I've put improved project files in the same location as before (that's
(http://www.xs4all.nl/~fxc/OdeMsvc6.zip), i'd still appreciate more
feedback.

Frank.
-------------------
frank@compagner.com