#pragma once

#if defined(_WIN32) || defined(_WIN64)
	#define EHS_OS_WINDOWS
    #define EHS_FILE __FILE__
    #define EHS_FUNC __FUNCTION__
    #define EHS_LINE __LINE__

	#if defined(EHS_LIB_EXPORT)
		#define EHS_LIB_IO __declspec(dllexport)
	#elif defined(EHS_LIB_IMPORT)
		#define EHS_LIB_IO __declspec(dllimport)
	#else
		#define EHS_LIB_IO
	#endif

    #ifndef NOMINMAX
        #define NOMINMAX
    #endif

    #ifndef WIN32_LEAN_AND_MEAN
        #define WIN32_LEAN_AND_MEAN
    #endif

    #include <Windows.h>

    typedef void* Handle;
#elif defined(__linux__)
	#define EHS_OS_LINUX
	#define EHS_FILE __FILE__
	#define EHS_FUNC __FUNCTION__
	#define EHS_LINE __LINE__
	#define EHS_LIB_IO

	typedef int Handle;
#endif