[vtkusers] VTK-6.1 and Visual Studio 2013 on VirtualBox

Philippe Bouttefroy pbouttefroy at nvidia.com
Thu Apr 2 16:54:26 EDT 2015


Hi David, hi Ben,

Thanks for looking into the issue! Unfortunately, CMake 2.8.12 did not resolve my issue. I can send the CMake output, if you would like. 

However, what I observed is that the first errors that I get with VS2013 is that it is looking for <iostream.h> instead of <iostream> (in /build/Utilities/KWSys/ios/iostream) because vtksys_IOS_USE_ANSI is not set. Furthermore, CMake outputs:
“Checking whether ANSI stream headers are available – no”. I would have expected “yes” instead. I tried to dig into how the value was determined but could not figure it out.

Do you have any clue on whether this is the root cause of my issue? Any idea on how to debug this?

Again, thanks for your time!

Best,
Philippe

-----Original Message-----
From: Ben Boeckel [mailto:ben.boeckel at kitware.com] 
Sent: Thursday, April 02, 2015 1:49 PM
To: David Gobbi
Cc: Philippe Bouttefroy; vtkusers at vtk.org
Subject: Re: [vtkusers] VTK-6.1 and Visual Studio 2013 on VirtualBox

On Thu, Apr 02, 2015 at 12:50:10 -0600, David Gobbi wrote:
> Hi Philippe,
> 
> Around a year ago, I did a 64-bit build of VTK 6.1 (or thereabouts) 
> with Visual Studio 2013 Express on Win7-64 running on VirtualBox.  I 
> didn't run into any errors like the one you describe above.
> 
> 
> I suspect that all the errors are related to this:
> 
>   CMake Warning (dev) at Utilities/KWSys/vtksys/CMakeLists.txt:264
>   (CONFIGURE_FILE):
>     configure_file called with unknown argument(s): COPY_ONLY
> 
> You're using a version of CMake 3.x that expects cmake files to use 
> COPYONLY instead of the older COPY_ONLY.  Try cmake 2.8.12, and I bet 
> the problem will disappear.

This isn't an error but a warning. CMake 3 is informing that COPY_ONLY is no longer supported.

> Does anyone else know why CMake 3 would be giving this error?  It 
> seems like a nasty bit of backwards-incompatibility.

The real problems are probably pointed out by CMP0054. Places which
check:

    set(compiler "MSVC")
    if (compiler STREQUAL "MSVC")

turn into:

    if (MSVC STREQUAL 1)

and are therefore *false* because MSVC is defined as "1" with it and not defined otherwise and "if" automatically dereferences. The new behavior is that quoted strings are not considered for automatic expansion thereby pointing out probable errors in the previous code. My guess is that MSVC detection needed is being skipped somewhere because of the bugs pointed out (*not* caused) by CMP0054.

--Ben

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------


More information about the vtkusers mailing list