Fixes for MSVC.

This commit is contained in:
XMRig 2017-06-13 06:31:25 +03:00
parent 9580c30d8a
commit 42bf85d10b
4 changed files with 51 additions and 18 deletions

View file

@ -25,12 +25,14 @@
#include <uv.h> #include <uv.h>
#include <jansson.h> #include <jansson.h>
#ifdef _MSC_VER #ifdef _MSC_VER
#include "getopt/getopt.h" # include "getopt/getopt.h"
#else #else
#include <getopt.h> # include <getopt.h>
#endif #endif
#include "Console.h" #include "Console.h"
#include "Cpu.h" #include "Cpu.h"
#include "donate.h" #include "donate.h"
@ -391,24 +393,29 @@ void Options::showUsage(int status) const
void Options::showVersion() void Options::showVersion()
{ {
/* printf(APP_NAME " " APP_VERSION "\n built on " __DATE__) printf(APP_NAME " " APP_VERSION "\n built on " __DATE__
#ifdef __GNUC__ # if defined(__GNUC__)
" with GCC"); " with GCC");
printf(" %d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); printf(" %d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
#endif # elif defined(_MSC_VER)
" with MSVC");
printf(" %d", MSVC_VERSION);
# else
);
# endif
printf("\n features:" printf("\n features:"
#ifdef __i386__ # if defined(__i386__) || defined(_M_IX86)
" i386" " i386"
#endif # elif defined(__x86_64__) || defined(_M_AMD64)
#ifdef __x86_64__
" x86_64" " x86_64"
#endif # endif
#ifdef __AES__
# if defined(__AES__) || defined(_MSC_VER)
" AES-NI" " AES-NI"
#endif # endif
"\n");*/ "\n");
printf("\nlibuv/%s\n", uv_version_string()); printf("\nlibuv/%s\n", uv_version_string());
printf("libjansson/%s\n", JANSSON_VERSION); printf("libjansson/%s\n", JANSSON_VERSION);

View file

@ -37,8 +37,10 @@ static void print_versions()
{ {
char buf[16]; char buf[16];
# ifdef __GNUC__ # if defined(__GNUC__)
snprintf(buf, 16, " gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); snprintf(buf, 16, " gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
# elif defined(_MSC_VER)
snprintf(buf, 16, " MSVC/%d", MSVC_VERSION);
# else # else
buf[0] = '\0'; buf[0] = '\0';
# endif # endif

View file

@ -22,7 +22,7 @@
*/ */
#include <uv.h> #include <winsock2.h>
#include <windows.h> #include <windows.h>
@ -51,13 +51,21 @@ static inline OSVERSIONINFOEX winOsVersion()
char *Network::userAgent() char *Network::userAgent()
{ {
const auto osver = winOsVersion(); const auto osver = winOsVersion();
const size_t max = 128;
char *buf = static_cast<char*>(malloc(128)); char *buf = static_cast<char*>(malloc(max));
int length = snprintf(buf, max, "%s/%s (Windows NT %lu.%lu", APP_NAME, APP_VERSION, osver.dwMajorVersion, osver.dwMinorVersion);
# if defined(__x86_64__) || defined(_M_AMD64)
length += snprintf(buf + length, max - length, "; Win64; x64) libuv/%s", uv_version_string());
# else
length += snprintf(buf + length, max - length, ") libuv/%s", uv_version_string());
# endif
# ifdef __GNUC__ # ifdef __GNUC__
snprintf(buf, 128, "%s/%s (Windows NT %lu.%lu; Win64; x64) libuv/%s gcc/%d.%d.%d", APP_NAME, APP_VERSION, osver.dwMajorVersion, osver.dwMinorVersion, uv_version_string(), __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); length += snprintf(buf + length, max - length, " gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
# else #elif _MSC_VER
snprintf(buf, 128, "%s/%s (Windows NT %lu.%lu; Win64; x64) libuv/%s", APP_NAME, APP_VERSION, osver.dwMajorVersion, osver.dwMinorVersion, uv_version_string()); length += snprintf(buf + length, max - length, " msvc/%d", MSVC_VERSION);
# endif # endif
return buf; return buf;

View file

@ -37,4 +37,20 @@
#define APP_VER_BUILD 0 #define APP_VER_BUILD 0
#define APP_VER_REV 0 #define APP_VER_REV 0
#ifdef _MSC_VER
# if _MSC_VER == 1910
# define MSVC_VERSION 2017
# elif _MSC_VER == 1900
# define MSVC_VERSION 2015
# elif _MSC_VER == 1800
# define MSVC_VERSION 2013
# elif _MSC_VER == 1700
# define MSVC_VERSION 2012
# elif _MSC_VER == 1600
# define MSVC_VERSION 2010
# else
# define MSVC_VERSION 0
# endif
#endif
#endif /* __VERSION_H__ */ #endif /* __VERSION_H__ */