Monday, December 3, 2012

Gmsh. Funny detail

Trying to build Gmsh from its sources on different machines, I have spent a lot of time reading CMakeLists.txt file, that contains descriptions for configuring project with CMake. I have read this file for different Gmsh versions, starting 2.4.2 up to several developing versions after 2.5.1. And I found some funny text, that is worth looking at.

Here is a piece of the CMakeLists.txt from Gmsh 2.4.2

if(MSVC)
  # remove really annoying (and stupid, and wrong) warning about
  # bool/int cast performance in Visual C++
  set(GMSH_CONFIG_PRAGMAS "#pragma warning(disable:4800)")
endif(MSVC)

Now let's look at the CMakeLists.txt from Gmsh 2.5.1

if(MSVC)
  # remove annoying warning about bool/int cast performance
  set(GMSH_CONFIG_PRAGMAS "#pragma warning(disable:4800)")
  # <...>
  # some new commands were added
  # <...>
endif(MSVC)

Did you notice the difference in the commentaries before setting GMSH_CONFIG_PRAGMAS for building with Microsoft's compiler?
In the newer versions we see that Gmsh's authors became more tolerate to Microsoft's product. Good to know :)