@@ -62,7 +62,11 @@ if (WITH_DEMO)
62
62
endif ()
63
63
endif (WITH_DEMO )
64
64
65
- set (MY_CXX_WARNING_FLAGS " -Wall -pedantic -W" )
65
+ if (MSVC_VERSION )
66
+ set (MY_CXX_WARNING_FLAGS " /W4" )
67
+ else ()
68
+ set (MY_CXX_WARNING_FLAGS " -Wall -pedantic -W" )
69
+ endif ()
66
70
67
71
# Initialize CXXFLAGS.
68
72
if ("${CMAKE_VERSION} " VERSION_GREATER 3.1.0 )
@@ -76,11 +80,18 @@ else()
76
80
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -std=c++11" )
77
81
endif ()
78
82
79
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ${MY_CXX_WARNING_FLAGS} " )
80
- set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g ${MY_CXX_WARNING_FLAGS} " )
81
- set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG ${MY_CXX_WARNING_FLAGS} " )
82
- set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ${MY_CXX_WARNING_FLGAS} " )
83
- set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g ${MY_CXX_WARNING_FLAGS} " )
83
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_CXX_WARNING_FLAGS} " )
84
+ if (MSVC_VERSION )
85
+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MP ${MY_CXX_WARNING_FLAGS} " )
86
+ set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /O1 /Oi /Ob2 /Gy /MP /DNDEBUG ${MY_CXX_WARNING_FLAGS} " )
87
+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /Oi /Ob2 /Gy /MP /DNDEBUG ${MY_CXX_WARNING_FLGAS} " )
88
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /O2 /Oi /Ob2 /Gy /MP /Zi ${MY_CXX_WARNING_FLAGS} " )
89
+ else ()
90
+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g ${MY_CXX_WARNING_FLAGS} " )
91
+ set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG ${MY_CXX_WARNING_FLAGS} " )
92
+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ${MY_CXX_WARNING_FLGAS} " )
93
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g ${MY_CXX_WARNING_FLAGS} " )
94
+ endif ()
84
95
85
96
# Compiler-specific C++11 activation.
86
97
if ("${CMAKE_CXX_COMPILER_ID} " MATCHES "GNU" )
@@ -102,6 +113,8 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_SYSTEM_NAME MATCHES
102
113
if (WITH_LIBCXX )
103
114
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
104
115
endif ()
116
+ elseif ( MSVC_VERSION GREATER 1800 OR MSVC_VERSION EQUAL 1800 )
117
+ # Visual Studio 2012+ supports c++11 features
105
118
else ()
106
119
message (FATAL_ERROR "Your C++ compiler does not support C++11." )
107
120
endif ()
0 commit comments