From ee21737b2b71bfbcc2e6ddb9c4b80f00073f99c3 Mon Sep 17 00:00:00 2001 From: ana Date: Tue, 12 Nov 2013 14:29:48 +0000 Subject: [PATCH] Disable iterator debugging on WINDOWS --- .../cmake_files/SalomeSetupPlatform.cmake | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/salome_adm/cmake_files/SalomeSetupPlatform.cmake b/salome_adm/cmake_files/SalomeSetupPlatform.cmake index a8517a460..bd5c464ab 100644 --- a/salome_adm/cmake_files/SalomeSetupPlatform.cmake +++ b/salome_adm/cmake_files/SalomeSetupPlatform.cmake @@ -85,7 +85,7 @@ ENDIF() IF(WIN32) ## Windows specific: ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) # To disable windows warnings for strcpy, fopen, ... - ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings std::copy, std::transform, ... + ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings generated by checked iterators(e.g. std::copy, std::transform, ...) ADD_DEFINITIONS(-DWNT -DWIN32) ADD_DEFINITIONS(-D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required ADD_DEFINITIONS(-DPPRO_NT) # For medfile @@ -94,10 +94,25 @@ IF(WIN32) SET(PLATFORM_LIBS Ws2_32.lib) LIST(APPEND PLATFORM_LIBS Userenv.lib) # At least for GEOM suit - # Disable iterator debugging on WINDOWS in Debug Mode + # Disable iterator debugging on WINDOWS to avoid runtime error during checking iterators + # _SECURE_SCL + # If defined as 1, unsafe iterator use causes a runtime error. + # If defined as 0, checked iterators are disabled. + # The default value for _SECURE_SCL is 1 + # _SECURE_SCL_THROWS + # If defined as 1, an out of range iterator use causes an exception at runtime. + # If defined as 0, the program is terminated by calling invalid_parameter. + # The default value for _SECURE_SCL_THROWS is 0 + + ADD_DEFINITIONS(-D_SECURE_SCL=0 -D_SECURE_SCL_THROWS=0) + + # The symbol _HAS_ITERATOR_DEBUGGING can be used to turn off the iterator debugging feature in a debug build + # If defined as 1, iterator debugging is enabled. + # If defined as 0, iterator debugging is disabled. + # The default value for _HAS_ITERATOR_DEBUGGING is 1 + IF(NOT CMAKE_BUILD_TYPE STREQUAL "RELEASE" AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") - ADD_DEFINITIONS(-D_SECURE_SCL=0 -D_SECURE_SCL_THROWS=0) - ADD_DEFINITIONS(-D_HAS_ITERATOR_DEBUGGING=0) # To avoid runtime error during checking iterators + ADD_DEFINITIONS(-D_HAS_ITERATOR_DEBUGGING=0) ENDIF(NOT CMAKE_BUILD_TYPE STREQUAL "RELEASE" AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") IF(MACHINE_IS_64) -- 2.39.2