SET(_script ${CMAKE_CURRENT_BINARY_DIR}/${script})
ENDIF()
+ IF(WIN32)
+ SET(_ext "bat")
+ SET(_call_cmd "call")
+ ELSE()
+ SET(_ext "sh")
+ SET(_call_cmd ".")
+ ENDIF()
+
SET(_env)
FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV})
FOREACH(_val ${_${PROJECT_NAME}_EXTRA_ENV_${_item}})
IF(${_item} STREQUAL "LD_LIBRARY_PATH")
SET(_item PATH)
ENDIF()
- STRING(REPLACE "/" "\\" _env "${_env} @SET ${_item}=${_val};%${_item}%\n")
- SET(_ext "bat")
- SET(_call_cmd "call")
+ STRING(REPLACE "/" "\\" _env "${_env} @SET ${_item}=${_val};%${_item}%\n")
ELSE(WIN32)
SET(_env "${_env} export ${_item}=${_val}:\${${_item}}\n")
- SET(_ext "sh")
- SET(_call_cmd ".")
ENDIF(WIN32)
ENDFOREACH()
ENDFOREACH()
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
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)