Move obsolete docs away
[novacoin.git] / doc / building novacoin-qt for android under Windows.txt
diff --git a/doc/building novacoin-qt for android under Windows.txt b/doc/building novacoin-qt for android under Windows.txt
deleted file mode 100644 (file)
index 2bcb8c0..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-\feffARMv7 (Собрано в Windows 7)
-1.1 Установка архиватора 7z: http://www.7-zip.org/ 
-(при написании инструкции использовался 7-Zip 15.14 64 bit x64, но скорее всего подойдёт любая версия)
-
-1.2 Установка msys shell:
--Скачайте http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
--нажмите Install
--директория для установки C:\MinGW
--оставить галочку напротив "...also install support for the graphical user interface."
--убрать галочки напротив "..in the start menu, and/or .." "... on the desktop"
--нажмите continue, continue
--нажмите All Packages, затем MSYS
--отметьте для установки:
-msys-autoconf bin
-msys-automake bin
-msys-base bin
-msys-libtool bin
--нажмите Installation, Apply Changes, Apply. После завершения установки нажмите Close и закройте MinGW Installation Manager.
-
-1.3 Установка qt-5.6.0 для Android
--Скачайте http://master.qt.io/archive/qt/5.6/5.6.0/qt-opensource-windows-x86-android-5.6.0.exe
--Запустите установщик
--Каталог для установки оставьте по умолчанию (C:\Qt\Qt5.6.0)
--Выберите среди компонентов MinGW 4.9.1, остальные компоненты оставьте по умолчанию
-(У меня окошко выглядит так: https://yadi.sk/i/e9W_pXTge43u5 )
-(можно так же выбрать Android X86, и Android armv5 если собираетесь собирать под эти CPU)
-
-1.4 Установка JAVA JDK
--Зайдите на сайт http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
--Скачайте и установите JDK (при написании инструкции использовалась jdk-8u172-windows-i586.exe )
-
-1.5 Установка Android SDK
--Скачайте http://dl.google.com/android/installer_r24.0.2-windows.exe
--Установите в папку C:\Android\sdk
--Запустите SDK Manager.exe
--Установите Android SDK Tools 24.4.1, Android SDK Platform-tools 23.0.1, Android SDK Build-tools 23.0.1, SDK Platform 22, Google APIs 22, ARM EABI v7a System Image 22, Google USB driver
--по окончанию установки, перезапустите SDK Manager.exe для проверки наличия обновлений установленных компонентов
-
-1.6 Установка Android NDK
--На сайте https://developer.android.com/tools/sdk/ndk/index.html#Downloads
--Скачайте https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip
-
--Распакуйте в папку C:\Android
--Добавьте путь C:\Android\android-ndk-r13b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin в системную переменную PATH:
- нажмите правой кнопкой мыши на "Компьютер", в открывшемся меню нажмите "Свойства", затем "Дополнительные параметры системы", потом "Переменные среды"
-https://yadi.sk/i/GnG9HiGme46oi
-Подробное описание как это сделать на Windows 8, Windows 7, Windows XP и Windows Vista
-https://www.java.com/ru/download/help/path.xml
-(только не нужно выполнять последний пункт из этой инструкции "Откройте заново окно командной строки и выполните код java." )
-
-Проверка что вы добавили правильный путь в переменную PATH:
--откройте командную строку Windows(Нажмите кнопку Windows + R одновременно. Откроется окно "Выполнить", в поле открыть наберите cmd. Нажмите Ok).
--наберите arm-linux-androideabi-g++ -v
-В командной строке выведется текст. В конце текста должно быть написано:
-Thread model: posix
-gcc version 4.9 20150123 (prerelease) (GCC)
-
-1.7 Установка Apache Ant
--Зайдите на сайт https://ant.apache.org/bindownload.cgi
--Скачайте архив с программой: http://apache-mirror.rbc.ru/pub/apache//ant/binaries/apache-ant-1.10.3-bin.zip
--Распакуйте в папку C:\Android\apache-ant-1.10.3
-
-1.8 Добавьте новые системные переменные(Они нужны только для пункта 2. Построение зависимостей, после этого их можно убрать)
--В "Системные переменные" нажмите "Cоздать"(ниже будет идти список "переменная и её значение")
-ANDROID_DEV /c/Android/android-ndk-r13b/platforms/android-9/arch-arm/usr
-AR /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar
-AS /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-as
-CC /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc
-CFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-arm/
-CPP /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-cpp
-CPPFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-arm/
-CXX /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-g++
-CXXFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-arm/ -I/c/Android/android-ndk-r13b/sources/cxx-stl/gnu-libstdc++/4.9/include -I/c/Android/android-ndk-r13b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include
-LD /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ld
-NDK_PROJECT_PATH C:\Android\android-ndk-r13b
-RANLIB /c/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ranlib
-
-2. Построение зависимостей.
-В инструкции все зависимости сохраняются в папку C:\Android\deps
-
-2.1 OpenSSL 
--Скачайте http://www.openssl.org/source/openssl-1.0.2t.tar.gz
--Распакуйте в папку C:\Android\deps\openssl-1.0.2
--Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
-Из MinGw shell выполните следующий код:
-
-cd /c/Android/deps/openssl-1.0.2
-Configure no-shared no-dso android-armv7
-make
-
-2.2 Berkeley DB
--Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
--Из MinGw shell выполните следующий код:
-
-cd /c/Android/deps/
-tar xvfz db-6.0.20.tar.gz
-cd db-6.0.20/build_unix
-../dist/configure --host=arm-none-linux --enable-cxx --disable-shared --disable-replication
-make
-
-2.3 Boost
--Скачайте http://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.7z/download
--Распакуйте boost_1_57_0.7z в папку C:\Android\deps
--Откройте командную строку Windows, и выполните следующий код:
-
-cd C:\Android\deps\boost_1_57_0
-bootstrap.bat
-
-Не закрывайте командную строку. Откройте файл C:\Android\deps\boost_1_57_0\project-config.jam в текстовом редакторе, удалите его содержимое, вставьте следующий текст
-
-import option ;
-  
-using gcc : arm : arm-linux-androideabi-g++.exe ;
-option.set keep-going : false ; 
-
-и сохраните файл
-
-Вернитесь в командную строку и введите:
-
-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-r13b\sources\cxx-stl\gnu-libstdc++\4.9\include include=C:\Android\android-ndk-r13b\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi\include include=C:\Android\android-ndk-r13b\platforms\android-9\arch-arm\usr\include
-
-После выполнения этой команды в папке C:\Android\deps\boost_1_57_0\stage\lib должны появиться следующие файлы:
-libboost_atomic-gcc-mt-s-1_57.a
-libboost_chrono-gcc-mt-s-1_57.a
-libboost_filesystem-gcc-mt-s-1_57.a
-libboost_program_options-gcc-mt-s-1_57.a
-libboost_system-gcc-mt-s-1_57.a
-libboost_thread_pthread-gcc-mt-s-1_57.a
-
-2.4 LevelDB
--Зайдите на сайт https://github.com/novacoin-project/novacoin 
--Нажмите Download ZIP
--Распакуйте novacoin-master.zip в C:\Android
--Откройте MinGW shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
-
-cd /c/android/novacoin-master/src/leveldb
-TARGET_OS=OS_ANDROID_CROSSCOMPILE make libleveldb.a libmemenv.a
-
-2.5 ifaddrs
--Зайдите на сайт https://github.com/kmackay/android-ifaddrs
--Нажмите Download ZIP
--Откройте архив android-ifaddrs-master.zip , выберите файлы ifaddrs.c и ifaddrs.h и извлеките их в C:\Android\novacoin-master\src
-
-3. Компиляция
-3.1 Собираем Novacoin QT
-
-Откройте файл novacoin-qt.pro
-Вместо 
-
-#BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
-#BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
-#BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
-#BDB_INCLUDE_PATH=C:/deps/db-6.0.20/build_unix
-#BDB_LIB_PATH=C:/deps/db-6.0.20/build_unix
-#OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
-#OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
-
-вставьте 
-
-USE_IPV6=0
-USE_LEVELDB=1
-USE_ASM=1
-
-BOOST_LIB_SUFFIX=-gcc-mt-s-1_57
-BOOST_INCLUDE_PATH=C:/Android/deps/boost_1_57_0
-BOOST_LIB_PATH=C:/Android/deps/boost_1_57_0/stage/lib
-BDB_INCLUDE_PATH=C:/Android/deps/db-6.0.20/build_unix
-BDB_LIB_PATH=C:/Android/deps/db-6.0.20/build_unix
-OPENSSL_INCLUDE_PATH=C:/Android/deps/openssl-1.0.2/include
-OPENSSL_LIB_PATH=C:/Android/deps/openssl-1.0.2
-
-Вместо
-
-!windows|contains(USE_BUILD_INFO, 1) {
-    genbuild.depends = FORCE
-    genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
-    genbuild.target = $$OUT_PWD/build/build.h
-    PRE_TARGETDEPS += $$OUT_PWD/build/build.h
-    QMAKE_EXTRA_TARGETS += genbuild
-    DEFINES += HAVE_BUILD_INFO
-}
-
-вставьте
-
-#!windows|contains(USE_BUILD_INFO, 1) {
-#    genbuild.depends = FORCE
-#    genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
-#    genbuild.target = $$OUT_PWD/build/build.h
-#    PRE_TARGETDEPS += $$OUT_PWD/build/build.h
-#    QMAKE_EXTRA_TARGETS += genbuild
-#    DEFINES += HAVE_BUILD_INFO
-#}
-
-После строки src/irc.h \ вставьте src/ifaddrs.h \ 
-(то есть чтобы стало выглядеть так:
-src/irc.h \
-src/ifaddrs.h \
-src/mruset.h \
-)
-
-После строки src/qt/transactiontablemodel.cpp \ вставьте  src/ifaddrs.c \
-
-Закоментируйте строку  LIBS += -lrt
-(то есть чтобы стало выглядеть так:
-!windows:!macx {
-    DEFINES += LINUX
-#    LIBS += -lrt
-}
-)
-
-Измените строку 
-LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
-на
-LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread_pthread$$BOOST_THREAD_LIB_SUFFIX
-
-Сохраните изменения в файле novacoin-qt.pro.
-
--Откройте файл C:\Qt\Qt5.6.0\Tools\QtCreator\bin\qtcreator.exe
--Нажмите "Инструменты"->"Параметры"->"Устройства", затем выберите вкладку Android
--Вставьте в строку "Размещение JDK" C:\Program Files (x86)\Java\jdk1.8.0_172
--Вставьте в строку "Размещение SDK для Android" C:\Android\sdk
--Вставьте в строку "Размещение NDK для Android" C:\Android\android-ndk-r13b
--Проверьте, чтоб в строке "Программа Ant" было C:\Android\apache-ant-1.10.3\bin\ant.bat
--Нажмите "OK"
--Нажмите "Файл"->"Открыть файл или проект..."
--Найдите "novacoin-qt.pro" и нажмите "открыть"
--Поставьте галочку напротив Android для armeabi-v7a(GCC 4.9, Qt 5.6.0), остальные галочки уберите
--Нажмите "Настроить проект"
--Нажмите "Проекты"->Изменить конфигурацию сборки: выберите "Выпуск"->Собрать Android APK "Подробнее"->"Создать шаблоны"(картинка чтобы лучше понять https://yadi.sk/i/M8mhG2tce4cEy)
--Нажмите "Завершить"
--Задайте имя пакета "org.fortytwo.coin", выберите иконки для приложения (находятся в папке C:\Android\novacoin-master\src\qt\res\icons, для Google Play Market иконка должна быть не менее 512x512), выберите "целевой SDK: API 21"(https://yadi.sk/i/oY-OmnrWe4cTY)
--В QtCreator'е нажмите "Сборка"->"Собрать проект "novacoin-qt""->"Сохранить все" и ждите завершения компиляции.
--После завершения компиляции в папке C:\Android\build-novacoin-qt-Android_armeabi_v7a_GCC_4_9_Qt_5_6_0-Release\android-build\bin будет файл QtApp-debug.apk. Переименуйте его в novacoin-qt.apk и можно распростронять.
-
-Изменения для Android X86
-1. Добавить путь C:\Android\android-ndk-r13b\toolchains\x86-4.9\prebuilt\windows-x86_64\bin в системную переменную PATH
-2. Изменить системные переменные так:
-
-ANDROID_DEV /c/Android/android-ndk-r13b/platforms/android-9/arch-x86/usr
-AR /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-ar
-AS /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-as
-CC /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-gcc
-CFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-x86/
-CPP /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-cpp
-CPPFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-x86/
-CXX /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-g++
-CXXFLAGS --sysroot=/c/Android/android-ndk-r13b/platforms/android-9/arch-x86/ -I/c/Android/android-ndk-r13b/sources/cxx-stl/gnu-libstdc++/4.9/include -I/c/Android/android-ndk-r13b/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include
-LD /c/Android/android-ndk-r13b/toolchains/x86-4.9/prebuilt/windows-x86_64/bin/i686-linux-android-ld
-RANLIB /c/Android/android-ndk-r13b/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