[...]
Reply-To: [email protected]
Delivered-To: mailing list [email protected]
Date: Fri, 30 Dec 2005 17:27:53 +0300
From: Anton Pevtsov <[EMAIL PROTECTED]>
To: [email protected]
Subject: Solution generation scripts for MSVC-8.0
[...]
The attached archive contains latest version of the solution generation
scripts. Now they support the solution generation for MSVC-8.0
(configuration msvc-8.0).
Martin, try it, please and if it works correctly I'll prepare the patch.
Sorry I missed this mail. I looked for a local copy of it but I must
have accidentally deleted it even before I read it. I did find it on
the list and with a bit of effort managed to extract the tarball from
it.
There is an issue with the MSVC-8.0 build:
The library build summary log contains a lot of compilation warnings.
There are two types of them:
1) ..\..\..\src\exception.cpp(508) : warning C4996: '_vsnprintf' was
declared deprecated
C:\Program Files\Microsoft Visual Studio
8\VC\include\../include/stdio.h(339) : see declaration of '_vsnprintf'
Message: 'This function or variable may be unsafe. Consider
using _vsnprintf_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
The cause of this warning is that there is new secure version of the
_vsnprintf' function: _vsnprintf_s. Martin, should we add
_CRT_SECURE_NO_DEPRECATE to the library defines to eliminate this
warning (this is easy) or should we consider using _vsnprintf_s instead
of _vsnprintf' ?
Let's add this macro on the compiler command line for the builds
of the library. I don't think it's necessary to add it for the
examples or tests (we don't use it in our builds).
Btw., here's some background on these new "safe" functions:
http://www.octopull.demon.co.uk/editorial/OverloadEditorial200511.pdf
http://www.opengroup.org/austin/mailarchives/ag/msg08079.html
http://www.opengroup.org/austin/mailarchives/ag/msg08120.html
2) ..\..\..\src\file.cpp(293) : warning C4996: 'open' was declared
deprecated
C:\Program Files\Microsoft Visual Studio 8\VC\include\io.h(328)
: see declaration of 'open'
Message: 'The POSIX name for this item is deprecated. Instead,
use the ISO C++ conformant name: _open. See online help for details.'
It is possible to hide this warning using the pragma directive
(something like this: #pragma warning(disable : 4996) ). Martin, what do
you think about it?
That's one option. Another is to define the macro in file.cpp
before #including any headers.
Prerequisites for MSVC-8.0:
1. Add path to uuidgen and vsvars32 utilities to your PATH environment
variable.
2. Execute vsvars32 before the building.
Also I added the COPYDLL option. If it set to "yes" or "y" all
executables projects (examples and tests) will copy the library dll to
the executable's folder via the post-build step (the previous scripts
versions operates in this way). And if COPYDLL is not specified the dll
will not be copied (but the examples and tests runner scripts will
temporary copy it to run examples and tests).
Cool!
It worked right out of the box. I had previously noticed that
MSVC 8.0 is quite a bit slower (by about 34%) than MSVC 7.1.
It seems especially noticeable when configuring, don't you
think?
Anyway, it looks good to me (modulo the warnings but we can deal
with those later if you prefer). Please send me your ChangeLog
entry so I can commit it.
Thanks
Martin