123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- set(_WARNS_ENABLED
- 4018
- 4265
- 4296
- 4431
- )
- set(_WARNS_AS_ERROR
- 4013
- )
- set(_WARNS_DISABLED
-
-
-
-
- 4005
-
- 4117
- 4127
- 4200
- 4201
- 4351
- 4355
- 4503
- 4510
- 4511
- 4512
- 4554
- 4610
- 4706
- 4800
- 4996
- 4714
- 4197
- 4245
- 4324
- 5033
- )
- set (_MSVC_COMMON_C_CXX_FLAGS " \
- /DWIN32 \
- /D_WIN32 \
- /D_WINDOWS \
- /D_CRT_SECURE_NO_WARNINGS \
- /D_CRT_NONSTDC_NO_WARNINGS \
- /D_USE_MATH_DEFINES \
- /D__STDC_CONSTANT_MACROS \
- /D__STDC_FORMAT_MACROS \
- /D_USING_V110_SDK71_ \
- /D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES \
- /DWIN32_LEAN_AND_MEAN \
- /DNOMINMAX \
- /nologo \
- /Zm500 \
- /GR \
- /bigobj \
- /FC \
- /EHs \
- /errorReport:prompt \
- /Zc:inline \
- /utf-8 \
- /permissive- \
- /D_WIN32_WINNT=0x0601 \
- /D_MBCS \
- /MP \
- ")
- if (CMAKE_GENERATOR MATCHES "Visual.Studio.*")
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS "\
- /DY_UCRT_INCLUDE=\"$(UniversalCRT_IncludePath.Split(';')[0].Replace('\\','/'))\" \
- /DY_MSVC_INCLUDE=\"$(VC_VC_IncludePath.Split(';')[0].Replace('\\','/'))\" \
- ")
- else()
- set(UCRT_INCLUDE_FOUND false)
- foreach(INCLUDE_PATH $ENV{INCLUDE})
- if (INCLUDE_PATH MATCHES ".*\\\\Windows Kits\\\\[0-9]+\\\\include\\\\[0-9\\.]+\\\\ucrt$")
- message(VERBOSE "Found Y_UCRT_INCLUDE path \"${INCLUDE_PATH}\"")
- string(REPLACE "\\" "/" SAFE_INCLUDE_PATH "${INCLUDE_PATH}")
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " /DY_UCRT_INCLUDE=\"${SAFE_INCLUDE_PATH}\"")
- set(UCRT_INCLUDE_FOUND true)
- break()
- endif()
- endforeach()
- if (NOT UCRT_INCLUDE_FOUND)
- message(FATAL_ERROR "UniversalCRT include path not found, please add it to the standard INCLUDE environment variable (most likely by calling vcvars64.bat)")
- endif()
- set(MSVC_INCLUDE_FOUND false)
- foreach(INCLUDE_PATH $ENV{INCLUDE})
- if (INCLUDE_PATH MATCHES ".*VC\\\\Tools\\\\MSVC\\\\[0-9\\.]+\\\\include$")
- message(VERBOSE "Found Y_MSVC_INCLUDE path \"${INCLUDE_PATH}\"")
- string(REPLACE "\\" "/" SAFE_INCLUDE_PATH "${INCLUDE_PATH}")
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " /DY_MSVC_INCLUDE=\"${SAFE_INCLUDE_PATH}\"")
- set(MSVC_INCLUDE_FOUND true)
- break()
- endif()
- endforeach()
- if (NOT MSVC_INCLUDE_FOUND)
- message(FATAL_ERROR "MSVC include path not found, please add it to the standard INCLUDE environment variable (most likely by calling vcvars64.bat)")
- endif()
- endif()
- foreach(WARN ${_WARNS_AS_ERROR})
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " /we${WARN}")
- endforeach()
- foreach(WARN ${_WARNS_ENABLED})
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " /w1${WARN}")
- endforeach()
- foreach(WARN ${_WARNS_DISABLED})
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " /wd${WARN}")
- endforeach()
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64)$")
- string(APPEND _MSVC_COMMON_C_CXX_FLAGS " \
- /D_WIN64 \
- /DWIN64 \
- /D__SSE2__ \
- /D__SSE3__ \
- /D__SSSE3__ \
- /D__SSE4_1__ \
- /D__SSE4_2__ \
- /D__POPCNT__ \
- ")
- endif()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_MSVC_COMMON_C_CXX_FLAGS} \
- ")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_MSVC_COMMON_C_CXX_FLAGS} \
- /std:c++latest \
- /Zc:__cplusplus \
- ")
- set(CMAKE_CXX_FLAGS_DEBUG "/Z7 /Ob0 /Od /D_DEBUG")
- set(CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /DNDEBUG")
- set(CMAKE_CXX_FLAGS_RELEASE "/Ox /Ob2 /Oi /DNDEBUG")
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Z7 /Ox /Ob1 /DNDEBUG")
|