'How to add _ITERATOR_DEBUG_LEVEL to CMake?

I am new to CMake, and I want to set _ITERATOR_DEBUG_LEVEL to 0 for Release build, and 2 for Debug build, to fix issues when trying to compile a project that depends on other projects.

Error:

_iterator_debug_level value '2' doesn't match value '0' (this is for Release Win32 build, where the main project has the value disabled(0) and the project that it is dependent on has it enabled for some reason, somewhere)

I do not have a C/C++ properties section in the main project since it is a Utility project that depends heavily on CMake. Hence I need to fix this through CMake options only.

Can anyone point me to the way of setting visual studio option via CMake?



Solution 1:[1]

add_definitions(-D_ITERATOR_DEBUG_LEVEL=0) 

in CMakeLists.txt seems to work

Solution 2:[2]

add_definitions is deprecated. Use add_compile_definitions to specify the iterator debug level in CMakeLists.txt.

add_compile_definitions($<$<CONFIG:Debug>:_ITERATOR_DEBUG_LEVEL=1>)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Makiavel
Solution 2