perl -pi.bak -e "s#QMAKE_CFLAGS_DEBUG = -Zi -MDd#QMAKE_CFLAGS_DEBUG = -Z7 -MTd#g;" qtbase\mkspecs\win32-msvc2012\qmake.conf
REM Now do 32 bit by setting environment to MSVC 32 bit
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
-call configure -debug-and-release -openssl-linked -opensource -confirm-license -platform win32-msvc2012 -nomake examples -nomake tests -static -I \MyProjects\Deps\openssl-1.0.1j\inc32 -L \MyProjects\Deps\openssl-1.0.1j\out32.dbg -L \MyProjects\Deps\openssl-1.0.1j\out32 -l gdi32 -no-opengl -qt-zlib -qt-libpng -qt-libjpeg
+call configure -debug-and-release -openssl-linked -opensource -confirm-license -platform win32-msvc2012 -nomake examples -nomake tests -static -I \MyProjects\Deps\openssl-1.0.2\inc32 -L \MyProjects\Deps\openssl-1.0.2\out32.dbg -L \MyProjects\Deps\openssl-1.0.2\out32 -l gdi32 -no-opengl -qt-zlib -qt-libpng -qt-libjpeg
nmake
REM put back the path
set PATH=%OLDPATH%
perl -pi.bak -e "s#QMAKE_CFLAGS_DEBUG = -Zi -MDd#QMAKE_CFLAGS_DEBUG = -Z7 -MTd#g;" qtbase\mkspecs\win32-msvc2012\qmake.conf
REM Now do 64 bit by setting environment to MSVC 64 bit
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
-call configure -debug-and-release -openssl-linked -opensource -confirm-license -platform win32-msvc2012 -nomake examples -nomake tests -static -I \MyProjects\Deps\openssl-1.0.1j\inc32 -L \MyProjects\Deps\openssl-1.0.1j\out64.dbg -L \MyProjects\Deps\openssl-1.0.1j\out64 -l gdi32 -no-opengl -qt-zlib -qt-libpng -qt-libjpeg
+call configure -debug-and-release -openssl-linked -opensource -confirm-license -platform win32-msvc2012 -nomake examples -nomake tests -static -I \MyProjects\Deps\openssl-1.0.2\inc32 -L \MyProjects\Deps\openssl-1.0.2\out64.dbg -L \MyProjects\Deps\openssl-1.0.2\out64 -l gdi32 -no-opengl -qt-zlib -qt-libpng -qt-libjpeg
nmake
REM put back the path
set PATH=%OLDPATH%
-\feff1.1 Установка архиватора 7z: http://www.7-zip.org/
+\feffARMV7
+1.1 Установка архиватора 7z: http://www.7-zip.org/
(при написании инструкции использовался 7-Zip 9.20 64 bit X64, но скорее всего подойдёт любая версия)
1.2 Установка msys shell:
-Нажмите зеленую стрелку(Запустить)(https://yadi.sk/i/hKHKL_Phe4EFL)
-Выберите свой телефон/планшет, нажмите OK и ждите завершения компиляции.
-После завершения компиляции Novacoin-Qt будет установлен на ваш телефон/планшет и запущен. А в папке C:\Android\build-novacoin-qt-Android_armeabi_v7a_GCC_4_9_Qt_5_4_0-Release\android-build\bin будет файл QtApp-debug.apk. Переименуйте его в Novacoin-Qt-0.5.1-debug.apk и можно распростронять :)
+
+Изменения для Android X86
+1. Добавить путь C:\Android\android-ndk-r10d\toolchains\x86-4.9\prebuilt\windows-x86_64\bin в переменную PATH
+2. Изменить системные переменные так:
+
+ANDROID_DEV /c/Android/android-ndk-r10d/platforms/android-9/arch-x86/usr
+AR /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-ar
+AS /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-as
+CC /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-gcc
+CFLAGS --sysroot=/c/Android/android-ndk-r10d/platforms/android-9/arch-x86/
+CPP /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-cpp
+CPPFLAGS --sysroot=/c/Android/android-ndk-r10d/platforms/android-9/arch-x86/
+CXX /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-g++
+CXXFLAGS --sysroot=/c/Android/android-ndk-r10d/platforms/android-9/arch-x86/ -I/c/Android/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/include -I/c/Android/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include
+LD /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-ld
+NDK_PROJECT_PATH C:\Android\android-ndk-r10d
+RANLIB /c/Android/android-ndk-r10d/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-ranlib
+
+3. При построении OpenSSL выполнить
+Configure no-shared no-dso android-x86
+вместо
+Configure no-shared no-dso android-armv7
+
+4. При построении BerkeleyDB выполнить
+../dist/configure --host=x86-none-linux --enable-cxx --disable-shared --disable-replication
+вместо
+../dist/configure --host=arm-none-linux --enable-cxx --disable-shared --disable-replication
+
+5. При построении Boost вставить
+using gcc : x86 : i686-linux-android-g++.exe ;
+вместо
+using gcc : arm : arm-linux-androideabi-g++.exe ;
+
+и выполнить
+b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi threadapi=pthread target-os=android define=BOOST_MATH_DISABLE_FLOAT128 include=C:\Android\android-ndk-r10d\sources\cxx-stl\gnu-libstdc++\4.9\include include=C:\Android\android-ndk-r10d\sources\cxx-stl\gnu-libstdc++\4.9\libs\x86\include include=C:\Android\android-ndk-r10d\platforms\android-9\arch-x86\usr\include
+
+вместо
+
+b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc-arm variant=release link=static threading=multi threadapi=pthread target-os=android define=BOOST_MATH_DISABLE_FLOAT128 include=C:\Android\android-ndk-r10d\sources\cxx-stl\gnu-libstdc++\4.9\include include=C:\Android\android-ndk-r10d\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi\include include=C:\Android\android-ndk-r10d\platforms\android-9\arch-arm\usr\include
+
+6. В QtCreator выбирать Android для X86 вместо Android для armeabi-v7a
\feff1. Подготовка системы.
+Внимание: данная инструкция (включая сопутствуюшие файлы) расчитана на сборку в среде Windows 64-bit.
1.1 Установка архиватора 7z: http://www.7-zip.org/
(при написании инструкции использовался 7-Zip 9.20 64 bit X64, но скорее всего подойдёт любая версия)
1.2 Установка Visual Studio 2012. (Подойдёт даже бесплатная версия)
http://www.microsoft.com/ru-ru/download/details.aspx?id=34673
+Установить обновление Visual Studio 2012 Update 4
+http://www.microsoft.com/ru-ru/download/details.aspx?id=39305
1.3 Установка Perl(при написании инструкции использовался ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi)
http://www.activestate.com/activeperl/downloads
string rfc1123Time()
{
- char buffer[64];
- time_t now;
- time(&now);
- struct tm* now_gmt = gmtime(&now);
- string locale(setlocale(LC_TIME, NULL));
- setlocale(LC_TIME, "C"); // we want POSIX (aka "C") weekday/month strings
- strftime(buffer, sizeof(buffer), "%a, %d %b %Y %H:%M:%S +0000", now_gmt);
- setlocale(LC_TIME, locale.c_str());
- return string(buffer);
+ return DateTimeStrFormat("%a, %d %b %Y %H:%M:%S +0000", GetTime());
}
static string HTTPReply(int nStatus, const string& strMsg, bool keepalive)
<widget class="QLabel" name="label_5">
<property name="font">
<font>
- <pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
case TorIP: {
proxyType proxy;
proxy.first = CService("127.0.0.1", 9050);
- GetProxy(NET_IPV4, proxy);
+ GetProxy(NET_TOR, proxy);
CNetAddr addr(value.toString().toStdString());
proxy.first.SetIP(addr);
case TorPort: {
proxyType proxy;
proxy.first = CService("127.0.0.1", 9050);
- GetProxy(NET_IPV4, proxy);
+ GetProxy(NET_TOR, proxy);
proxy.first.SetPort(value.toInt());
settings.setValue("addrTor", proxy.first.ToStringIPPort().c_str());
{
ui->setupUi(this);
+ QFont balance = QApplication::font();
+ balance.setPointSize(balance.pointSize() * 1.5);
+ balance.setBold(true);
+ ui->label_5->setFont(balance);
+
// Recent transactions
ui->listTransactions->setItemDelegate(txdelegate);
ui->listTransactions->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE));
ui->messagesWidget->document()->setDefaultStyleSheet(
"table { }"
"td.time { color: #808080; padding-top: 3px; } "
- "td.message { font-family: Monospace; font-size: 12px; } "
+ "td.message { font-family: Monospace; } "
"td.cmd-request { color: #006060; } "
"td.cmd-error { color: red; } "
"b { color: #006060; } "
unsigned int pos = (unsigned int)(nReadPos % vchBuf.size());
size_t nNow = nSize;
if (nNow + pos > vchBuf.size())
- nNow = vchBuf.size() - pos;
+ nNow = (size_t)(vchBuf.size() - pos);
if (nNow + nReadPos > nSrcPos)
- nNow = nSrcPos - nReadPos;
+ nNow = (size_t)(nSrcPos - nReadPos);
memcpy(pch, &vchBuf[pos], nNow);
nReadPos += nNow;
pch += nNow;
}
return true;
}
+
+std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime)
+{
+ // std::locale takes ownership of the pointer
+ std::locale loc(std::locale::classic(), new boost::posix_time::time_facet(pszFormat));
+ std::stringstream ss;
+ ss.imbue(loc);
+ ss << boost::posix_time::from_time_t(nTime);
+ return ss.str();
+}
\ No newline at end of file
boost::posix_time::ptime(boost::gregorian::date(1970,1,1))).total_milliseconds();
}
-inline std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime)
-{
- time_t n = nTime;
- struct tm* ptmTime = gmtime(&n);
- char pszTime[200];
- strftime(pszTime, sizeof(pszTime), pszFormat, ptmTime);
- return pszTime;
-}
+std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime);
static const std::string strTimestampFormat = "%Y-%m-%d %H:%M:%S UTC";
inline std::string DateTimeStrFormat(int64_t nTime)