#include "VersionInfo.h" #if __linux__ #define OS_PLATFORM_LINUX #elif TARGET_OS_MAC #define OS_PLATFORM_MAC #elif defined _WIN32 || defined _WIN64 #define OS_PLATFORM_WINDOWS #include #include #endif std::string VersionInfo::GetVersionInfo() { #if defined(OS_PLATFORM_LINUX) return std::string("Linux"); #elif defined(TARGET_OS_MAC) return std::string("Mac OS X"); #elif defined (OS_PLATFORM_WINDOWS) OSVERSIONINFO osv = { sizeof(osv), 0 }; if( GetVersionEx( &osv ) ) { if( 5 == osv.dwMajorVersion ) { switch( osv.dwMinorVersion ) { case 0: return "Windows 2000"; case 1: return "Windows XP"; case 2: return "Windows XPx64"; default: break; } } else if( 6 == osv.dwMajorVersion ) { switch( osv.dwMinorVersion ) { case 0: return "Windows Vista"; case 1: return "Windows 7"; case 2: return "Windows 8"; case 3: return "Windows 8.1"; default: break; } } std::stringstream ss; ss << "Windows " << osv.dwMajorVersion << "." << osv.dwMinorVersion; return ss.str(); } return "Windows ??"; #else return std::string("Unknown OS"); #endif }