Re: [patch] Do not pretend that MSVC 12 can use dependencies compiled with MSVC 10
Am 15.12.2015 um 18:34 schrieb Scott Kostyshak: On Mon, Dec 07, 2015 at 09:53:44PM +0100, Georg Baum wrote: First, for those who don't know, something about MSVC versions (it is easy to get confused there): MSVC 8: Microsoft Visual Studio 2005 MSVC 9: Microsoft Visual Studio 2008 MSVC 10: Microsoft Visual Studio 2010 Don't be mislead by the nice fit! MSVC 11: Microsoft Visual Studio 2012 From here on we are "one off"! MSVC 12: Microsoft Visual Studio 2013 MSVC 14: Microsoft Visual Studio 2015 Peter added a workaround for mixing code compiled by MSVC 12 and MSVC 10 some time ago: http://www.lyx.org/trac/changeset/6b4c3036/lyxgit/ According to https://msdn.microsoft.com/en-us/library/7sf3txa8.aspx the /vd2 option is only needed if one wants to violate the C++ standard (using dynamic_cast on an object being constrcuted does not work in standard conforming compilers). I'd like to get rid of this for two reasons: 1) Mixing different MSVC versions is a bad idea as explained in the other thread, so we should not help people to shoot themselves in the foot. 2) We cannot use dynamic_cast on not fully constrcuted objects anyway, since we support other compilers besides MSVC. OK to go in? Was a decision made on this? Peter seems to be around so let's see if he has a comment. If no one else comments, I would say please commit. Scott I already removed the /vd2 flag when adding the download of the new 2013 dependencies. But in meantime it shows that it is impossible to use msvc2013 or msvc2015: http://www.lyx.org/trac/ticket/9892 So when someone wanna use msvc2012 he should enable the 3rdparty build, -DLYX_3RDPARTY_BUILD=1 . Peter
Re: [patch] Do not pretend that MSVC 12 can use dependencies compiled with MSVC 10
On Mon, Dec 07, 2015 at 09:53:44PM +0100, Georg Baum wrote: > First, for those who don't know, something about MSVC versions (it is easy > to get confused there): > > MSVC 8: Microsoft Visual Studio 2005 > MSVC 9: Microsoft Visual Studio 2008 > MSVC 10: Microsoft Visual Studio 2010 Don't be mislead by the nice fit! > MSVC 11: Microsoft Visual Studio 2012 From here on we are "one off"! > MSVC 12: Microsoft Visual Studio 2013 > MSVC 14: Microsoft Visual Studio 2015 > > Peter added a workaround for mixing code compiled by MSVC 12 and MSVC 10 > some time ago: > http://www.lyx.org/trac/changeset/6b4c3036/lyxgit/ According to > https://msdn.microsoft.com/en-us/library/7sf3txa8.aspx the /vd2 option is > only needed if one wants to violate the C++ standard (using dynamic_cast on > an object being constrcuted does not work in standard conforming compilers). > > I'd like to get rid of this for two reasons: > > 1) Mixing different MSVC versions is a bad idea as explained in the other > thread, so we should not help people to shoot themselves in the foot. > > 2) We cannot use dynamic_cast on not fully constrcuted objects anyway, since > we support other compilers besides MSVC. > > OK to go in? Was a decision made on this? Peter seems to be around so let's see if he has a comment. If no one else comments, I would say please commit. Scott signature.asc Description: PGP signature
[patch] Do not pretend that MSVC 12 can use dependencies compiled with MSVC 10
First, for those who don't know, something about MSVC versions (it is easy to get confused there): MSVC 8: Microsoft Visual Studio 2005 MSVC 9: Microsoft Visual Studio 2008 MSVC 10: Microsoft Visual Studio 2010 Don't be mislead by the nice fit! MSVC 11: Microsoft Visual Studio 2012 From here on we are "one off"! MSVC 12: Microsoft Visual Studio 2013 MSVC 14: Microsoft Visual Studio 2015 Peter added a workaround for mixing code compiled by MSVC 12 and MSVC 10 some time ago: http://www.lyx.org/trac/changeset/6b4c3036/lyxgit/ According to https://msdn.microsoft.com/en-us/library/7sf3txa8.aspx the /vd2 option is only needed if one wants to violate the C++ standard (using dynamic_cast on an object being constrcuted does not work in standard conforming compilers). I'd like to get rid of this for two reasons: 1) Mixing different MSVC versions is a bad idea as explained in the other thread, so we should not help people to shoot themselves in the foot. 2) We cannot use dynamic_cast on not fully constrcuted objects anyway, since we support other compilers besides MSVC. OK to go in? Georgdiff --git a/CMakeLists.txt b/CMakeLists.txt index 5840ad0..5fb1218 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,10 +229,6 @@ if(LYX_DEPENDENCIES_DOWNLOAD) endif() endforeach() set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/deps20) -if(MSVC12) -# handle error in msvc12 when linking against msvc10 libs -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /vd2") -endif() endif()