cmake_minimum_required(VERSION 3.5)

macro(define_plaform_settings)
	if( PLATFORM_WINDOWS)
		
		add_definitions(-DSTB_IMAGE_IMPLEMENTATION)

		add_compile_options(/Zi)
		add_compile_options($<$<CONFIG:DEBUG>:/Od> $<$<NOT:$<CONFIG:DEBUG>>:/Ox>)
		add_compile_options(/Ob2)
		add_compile_options($<$<NOT:$<CONFIG:DEBUG>>:/Oi>)
		add_compile_options(/Ot)
		add_compile_options($<$<NOT:$<CONFIG:DEBUG>>:/GT>)
		add_compile_options(/GF)

		if( PLATFORM_WINDOWS AND RUNTIME_TYPE STREQUAL "mt")
			add_compile_options($<$<CONFIG:DEBUG>:/MTd> $<$<NOT:$<CONFIG:DEBUG>>:/MT>)
		elseif( PLATFORM_WINDOWS AND RUNTIME_TYPE STREQUAL "md")
			add_compile_options($<$<CONFIG:DEBUG>:/MDd> $<$<NOT:$<CONFIG:DEBUG>>:/MD>)
		endif()
		add_compile_options(/Gy)
		add_compile_options(/fp:fast)
		replace_compile_flags("/GR" "/GR-")
		#add_compile_options(/W4)
		#add_compile_options(/WX)
		add_exe_linker_flags(/DEBUG)
		add_exe_linker_flags(/MAP)
		replace_linker_flags("/INCREMENTAL" "/INCREMENTAL:NO" debug)
		add_compile_options(/MP)
		add_compile_options(-D_HAS_EXCEPTIONS=0)
		replace_linker_flags("/debug" "/DEBUG" debug)
		replace_linker_flags("/machine:x64" "/MACHINE:X64")
		add_compile_options(-D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE)
		add_compile_options(-DSECURITY_WIN32)
	else()
		message(FATAL_ERROR "Unknown platform!")
	endif()
endmacro()
