build-win: mingw-x86: updated doc and project file

This commit is contained in:
Ilya Kitaev 2016-10-22 00:28:49 +03:00
parent 5d498be956
commit 0a16d74d1b
2 changed files with 56 additions and 35 deletions

View file

@ -143,45 +143,53 @@ TODO
### On Windows: ### On Windows:
1. Install [msys2](http://msys2.github.io/), follow the instructions on that page on how to update packages to the latest versions 1. Install [msys2](http://msys2.github.io/), follow the instructions on that page on how to update packages to the latest versions
2. Install monero dependencies as described in [monero documentation](https://github.com/monero-project/monero) 2. Install monero dependencies as described in [monero documentation](https://github.com/monero-project/monero) into msys2 environment.
3. Install git: **As we only build application for x86, install only dependencies for x86 architecture (i686 in package name)**
3. Install git into msys2 environment:
``` ```
pacman -S git pacman -S git
``` ```
4. Install Qt5:
- if you need to build x86 application, install:
```
pacman -S mingw-w64-i686-qt5
```
- if you need to build x64 application, install: 4. Install Qt5 from [official site](https://www.qt.io/download-open-source/).
- download unified installer, run and select following options:
- Qt > Qt 5.7 > MinGW 5.3.0 32 bit
- Tools > MinGW 5.3.0
- continue with installation
``` 5. Open ```mingw``` shell:
pacman -S mingw-w64-x86_64-qt5
```
5. Open ```mingw``` shell. MSYS2 will install start menu items for both mingw32 and mingw64 environments, so
you need to open appropriate one:
```%MSYS_ROOT%\msys2_shell.cmd -mingw32``` for x86 targed
or
```%MSYS_ROOT%\msys2_shell.cmd -mingw64``` for x64 targed
```%MSYS_ROOT%\msys2_shell.cmd -mingw32```
Where ```%MSYS_ROOT%``` will be ```c:\msys32``` if your host OS is x86-based or ```c:\msys64``` if your host OS Where ```%MSYS_ROOT%``` will be ```c:\msys32``` if your host OS is x86-based or ```c:\msys64``` if your host OS
is x64-based is x64-based
6. Clone git repository: 6. Clone git repository:
``` ```
git clone https://github.com/monero-project/monero-core.git git clone https://github.com/monero-project/monero-core.git
``` ```
7. Build the project: 7. Build libwallet:
``` ```
cd monero-core cd monero-core
./build.sh ./get_libwallet_api.sh
``` ```
8. Take result binary and dependencies in ```./build/release/bin``` close ```mingw``` shell after it done
8. Build application:
- open ```Qt environment``` shell (Qt 5.7 for Desktop (MinGW 5.3.0 32 bit) is shortcut name)
- navigate to the project dir and build the app:
```
cd %MSYS_ROOT%\%USERNAME%\monero-core
mkdir build
cd build
qmake ..\ -r "CONFIG+=release"
mingw32-make release
mingw32-make deploy
```
- grab result binary and dependencies in ```.\release\bin```
**important: if you testing application within VirtualBox virtual machine, make sure 3D acceleration is enabled
in machine's settings:
Machine > Settings > Display > [v] Enable 3D Acceleration**

View file

@ -54,8 +54,31 @@ LIBS += -L$$WALLET_ROOT/lib \
-lwallet_merged \ -lwallet_merged \
-lunbound -lunbound
# currently we only support x86 build as qt.io only provides prebuilt qt for x86 mingw
win32 { win32 {
#QMAKE_LFLAGS += -static
contains(QMAKE_HOST.arch, x86_64) {
message("Host is 64bit")
MSYS_PATH=c:/msys64/mingw32
} else {
message("Host is 32bit")
MSYS_PATH=c:/msys32/mingw32
}
!contains(QMAKE_TARGET.arch, x86_64) {
message("Target is 32bit")
## Windows x86 (32bit) specific build here
## there's 2Mb stack in libwallet allocated internally, so we set stack=4Mb
## this fixes app crash for x86 Windows build
QMAKE_LFLAGS += -Wl,--stack,4194304
} else {
message("Target is 64bit")
}
LIBS+=-L$$MSYS_PATH/lib
LIBS+= \ LIBS+= \
-Wl,-Bstatic \ -Wl,-Bstatic \
-lboost_serialization-mt \ -lboost_serialization-mt \
@ -75,16 +98,6 @@ win32 {
-lgdi32 -lgdi32
!contains(QMAKE_TARGET.arch, x86_64) {
message("x86 build")
## Windows x86 (32bit) specific build here
## there's 2Mb stack in libwallet allocated internally
## this fixes app crash for x86 Windows build
QMAKE_LFLAGS += -Wl,--stack,4194304
} else {
message("x64 build")
}
} }