From: fsb4000 Date: Sat, 8 Nov 2014 05:29:34 +0000 (+0600) Subject: Fix MSVC compilation errors X-Git-Tag: nvc-v0.5.0~48^2~1 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=6efc53e869c01808240a41cb55047a43eb133273 Fix MSVC compilation errors +В LevelDB 1.18 в ещё одном файле(db_iter.cc) стал использоваться тип ssize_t, переопределяем его в size_t +Вернута третья перегрузка метода insert из serialize.h. Так как она создаёт конфликты с LLVM(смотри коммит Fix LLVM compilation issues ), то вернута только для MSVC +В MSVC inline разрешён только при для C++ кода, для C они ввели похожее слово __inline выполняющее примерно тоже самое, поэтому в scrypt-generic.c inline заменён на __inline для MSVC. +Добавлено опредление препроцессора MINIUPNP_STATICLIB в файл проекта libcommon, для сборки с miniupnpc-1.9 +Добавлено событие перед началом построения NovacoinQT, которое создаёт бинарные файлы перевода(*.qm) из текстовых файлов перевода(*.ts) --- diff --git a/MSVC/libcommon/libcommon.vcxproj b/MSVC/libcommon/libcommon.vcxproj index 738634d..044d2fb 100644 --- a/MSVC/libcommon/libcommon.vcxproj +++ b/MSVC/libcommon/libcommon.vcxproj @@ -20,6 +20,7 @@ + @@ -128,8 +129,7 @@ Unicode - - + @@ -156,7 +156,7 @@ NotUsing Level1 Disabled - STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) + MINIUPNP_STATICLIB;STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) ..\..\..\Deps;..\..\..\deps\openssl-1.0.1j\inc32;..\..\..\src\leveldb\helpers\memenv;..\..\src\leveldb\helpers;..\..\src\leveldb\include;..\..\..\deps\db-6.0.20\build_windows;..\..\..\deps\boost_1_55_0;..\..\..\deps\boost_1_55_0\boost;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);.\;%(AdditionalIncludeDirectories) ProgramDatabase true @@ -177,7 +177,7 @@ Level1 Disabled - STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) + MINIUPNP_STATICLIB;STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) ..\..\..\Deps;..\..\..\deps\openssl-1.0.1j\inc32;..\..\..\src\leveldb\helpers\memenv;..\..\src\leveldb\helpers;..\..\src\leveldb\include;..\..\..\deps\db-6.0.20\build_windows;..\..\..\deps\boost_1_55_0;..\..\..\deps\boost_1_55_0\boost;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);.\;%(AdditionalIncludeDirectories) ProgramDatabase true @@ -198,7 +198,7 @@ MaxSpeed true true - STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) + MINIUPNP_STATICLIB;STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) ..\..\..\deps\;..\..\..\deps\openssl-1.0.1j\inc32;..\..\..\src\leveldb\helpers\memenv;..\..\src\leveldb\helpers;..\..\src\leveldb\include;..\..\..\deps\db-6.0.20\build_windows;..\..\..\deps\boost_1_55_0;..\..\..\deps\boost_1_55_0\boost;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);.\;%(AdditionalIncludeDirectories) MultiThreaded false @@ -221,7 +221,7 @@ MaxSpeed true true - STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) + MINIUPNP_STATICLIB;STATICLIB;USE_UPNP;_CRT_SECURE_NO_WARNINGS;UNICODE;WIN32;_SCL_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;HAVE_WORKING_BOOST_SLEEP_FOR;_WINSOCKAPI_;NOMINMAX;USE_LEVELDB;%(PreprocessorDefinitions) ..\..\..\Deps;..\..\..\deps\openssl-1.0.1j\inc32;..\..\..\src\leveldb\helpers\memenv;..\..\src\leveldb\helpers;..\..\src\leveldb\include;..\..\..\deps\db-6.0.20\build_windows;..\..\..\deps\boost_1_55_0;..\..\..\deps\boost_1_55_0\boost;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);.\;%(AdditionalIncludeDirectories) MultiThreaded false @@ -237,6 +237,5 @@ - - + \ No newline at end of file diff --git a/MSVC/libcommon/libcommon.vcxproj.filters b/MSVC/libcommon/libcommon.vcxproj.filters index c07e7cd..20c4f7a 100644 --- a/MSVC/libcommon/libcommon.vcxproj.filters +++ b/MSVC/libcommon/libcommon.vcxproj.filters @@ -104,6 +104,9 @@ Source Files + + Source Files + diff --git a/MSVC/mynovacoinqt/mynovacoinqt.vcxproj b/MSVC/mynovacoinqt/mynovacoinqt.vcxproj index d860731..3f8e8c3 100644 --- a/MSVC/mynovacoinqt/mynovacoinqt.vcxproj +++ b/MSVC/mynovacoinqt/mynovacoinqt.vcxproj @@ -136,6 +136,10 @@ + + C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.qm +C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.qm + @@ -181,6 +185,10 @@ + + C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2-64\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.qm +C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2-64\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.qm + @@ -224,6 +232,10 @@ _WINDOWS;UNICODE;WIN32;QT_GUI;BOOST_THREAD_USE_LIB;BOOST_SPIRIT_THREADSAFE;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions) + + C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.qm +C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.qm + @@ -267,6 +279,11 @@ _WINDOWS;UNICODE;WIN32;QT_GUI;BOOST_THREAD_USE_LIB;BOOST_SPIRIT_THREADSAFE;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions) + + C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2-64\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_en.qm +C:\MyProjects\Deps\qt-everywhere-opensource-src-5.3.2-64\qtbase\bin\lrelease C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.ts -qm C:\MyProjects\Novacoin\src\qt\locale\bitcoin_ru.qm + + @@ -1290,8 +1307,6 @@ release\qrc_bitcoin.cpp;%(Outputs) release\qrc_bitcoin.cpp;%(Outputs) - - diff --git a/MSVC/mynovacoinqt/mynovacoinqt.vcxproj.filters b/MSVC/mynovacoinqt/mynovacoinqt.vcxproj.filters index a669e1f..717d150 100644 --- a/MSVC/mynovacoinqt/mynovacoinqt.vcxproj.filters +++ b/MSVC/mynovacoinqt/mynovacoinqt.vcxproj.filters @@ -637,12 +637,6 @@ Resource Files - - Resource Files - - - Resource Files - Resource Files diff --git a/src/leveldb/db/db_iter.cc b/src/leveldb/db/db_iter.cc index 3b2035e..5302021 100644 --- a/src/leveldb/db/db_iter.cc +++ b/src/leveldb/db/db_iter.cc @@ -14,6 +14,10 @@ #include "util/mutexlock.h" #include "util/random.h" +#ifdef _MSC_VER +#define ssize_t size_t +#endif + namespace leveldb { #if 0 diff --git a/src/scrypt-generic.c b/src/scrypt-generic.c index 2da117e..96bcb11 100644 --- a/src/scrypt-generic.c +++ b/src/scrypt-generic.c @@ -31,9 +31,15 @@ #include #include +#ifdef _MSC_VER +#define INLINE __inline +#else +#define INLINE inline +#endif + // Generic scrypt_core implementation -static inline void xor_salsa8(unsigned int B[16], const unsigned int Bx[16]) +static INLINE void xor_salsa8(unsigned int B[16], const unsigned int Bx[16]) { unsigned int x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; int i; diff --git a/src/serialize.h b/src/serialize.h index b7c5104..849fb2b 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -950,6 +950,21 @@ public: iterator insert(iterator it, const char& x=char()) { return vch.insert(it, x); } void insert(iterator it, size_type n, const char& x) { vch.insert(it, n, x); } +#ifdef _MSC_VER + void insert(iterator it, const_iterator first, const_iterator last) + { + assert(last - first >= 0); + if (it == vch.begin() + nReadPos && (unsigned int)(last - first) <= nReadPos) + { + // special case for inserting at the front when there's room + nReadPos -= (last - first); + memcpy(&vch[nReadPos], &first[0], last - first); + } + else + vch.insert(it, first, last); + } +#endif + #ifndef _MSC_VER void insert(iterator it, std::vector::const_iterator first, std::vector::const_iterator last) {