1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
# Platform-specific flags and settings
if (MSVC)
# See cmake policy CMP00091
# One of "MultiThreaded", "MultiThreadedDebug", "MultiThreadedDLL", "MultiThreadedDebugDLL"
if (NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
set(CMAKE_MSVC_RUNTIME_LIBRARY
"MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
# Export all symbols so MSVC can populate the .lib and .dll
if (BUILD_SHARED_LIBS)
# Temp: disable DLL builds on MSVC
message(FATAL_ERROR
"Shared library (DLL) builds for QuantLib on MSVC are not supported")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
add_compile_definitions(NOMINMAX)
# caused by ql\time\date.cpp: warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead.
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
# /wd4267
# Suppress warnings: assignment of 64-bit value to 32-bit QuantLib::Integer (x64)
# /wd4819
# Suppress warnings: The file contains a character that cannot be represented in the current code page
# /wd26812
# Suppress warnings: "Prefer enum class over enum" (Enum.3)
# /w34127
# Enable warning under W3: conditional expression is constant
# /w34702
# Enable warning under W3: unreachable code
# /w35262
# Enable warning under W3: implicit fall-through occurs here; are you missing a break statement?
add_compile_options(/wd4267 /wd4819 /wd26812 /w34127 /w34702 /w35262)
# Silence all C++17 deprecation warnings, same as in the vcxproj files
add_compile_definitions(_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS)
endif()
|