Windows build » History » Version 42

pospelov, 06 Sep 2013 17:23

1 1 herck
h1. Windows build
2 1 herck
3 9 pospelov
Experimental compilation under Windows using Mingw or Microsoft Visual Studio.
4 33 pospelov
For -whose who wnats to see the devil- developers only.
5 1 herck
6 13 pospelov
7 6 pospelov
h5. Install packages for happier life
8 1 herck
9 6 pospelov
* Atlassian SourceTree (v0.9.2.3) 
10 6 pospelov
> https://www.atlassian.com/software/sourcetree/overview
11 6 pospelov
* Kate from KDE 
12 6 pospelov
> http://download.kde.org/stable/kdewin/installer/kdewin-installer-gui-latest.exe.mirrorlist 
13 1 herck
* far manager
14 1 herck
> http://www.farmanager.com/download.php?l=en
15 9 pospelov
* WinSCP
16 9 pospelov
> http://winscp.net/eng/index.php
17 9 pospelov
18 14 pospelov
First assure compilation of MinGW, then switch to Visual Studio recipe
19 9 pospelov
20 9 pospelov
h2. Mingw build
21 9 pospelov
22 6 pospelov
h5. Install Qt, cmake
23 1 herck
24 25 pospelov
* Install Qt 5.1.0
25 6 pospelov
> http://qt-project.org/downloads
26 18 pospelov
> Add to PATH C:\Qt\Tools\mingw48_32\bin;C:\Qt\Tools\mingw48_32\lib;C:\Qt\5.1.0\mingw48_32\bin;C:\Qt\Tools\QtCreator\bin
27 19 pospelov
>> this will allow usage of mingw from any command line
28 1 herck
29 1 herck
* install cmake
30 1 herck
> http://www.cmake.org/cmake/resources/software.html by running cmake-2.8.11.2-win32-x86.exe
31 1 herck
32 27 pospelov
h5. Install MinGW 
33 25 pospelov
34 27 pospelov
* We need full MinGW suite to compile latest libgsl. MinGW from Qt installtion want help.
35 30 pospelov
> download mingw-get-setup.exe installation manager from http://www.mingw.org/
36 30 pospelov
> run installer, there will be some pre selection of packages (from MinGW Base system, MSYS and GCC), should be enough
37 34 pospelov
> in the menu do Installation/Apply changes, then accept default C:\MinGW as an installation directory
38 25 pospelov
39 16 pospelov
h5. Install Python and Co
40 16 pospelov
41 16 pospelov
* Install Python
42 16 pospelov
> install through http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi into C:/Python27
43 16 pospelov
44 16 pospelov
* install numpy 
45 16 pospelov
> from unofficial http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy   by running   numpy-unoptimized-1.7.1.win32-py2.7.‌exe
46 16 pospelov
47 16 pospelov
* install matplotlib 
48 1 herck
> from http://matplotlib.org/downloads.html  by running matplotlib-1.2.1.win32-py2.7.exe
49 42 pospelov
>> matplotlib can require dateutil http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-dateutil
50 6 pospelov
51 1 herck
> (alternative install Anaconda pack (python + mingw + numpy) from http://continuum.io/downloads ) Not checked!
52 1 herck
53 1 herck
h5. Comment about installation of additional libraries
54 1 herck
> All further installations should end up in C:\opt\local
55 1 herck
56 25 pospelov
h5. Install gsl
57 1 herck
58 35 pospelov
* use previously installed MinGW to compile gsl
59 25 pospelov
> create empty directory c:\gsl-1.16
60 25 pospelov
> download source gsl-1.16.tar.gz from ftp://ftp.gnu.org/gnu/gsl/ 
61 25 pospelov
> copy unpacked directory to C:\mingw\msys\1.0\home\pospelov
62 31 pospelov
> run c:\mingw\msys\msys.bat which will bring command line prompt
63 25 pospelov
> there, navigate to c:\mingw\msys\1.0\home\pospelov\gsl-1.16
64 25 pospelov
> compile
65 25 pospelov
>> ./configure --enable-static=yes --enable-shared=yes --prefix=/c/gsl-1.16
66 25 pospelov
>> make
67 25 pospelov
>> make install
68 28 pospelov
> copy directory "C:\gsl-1.16\include\gsl"  to "C:\opt\local\include\gsl"
69 28 pospelov
> copy files libgsl-0.dll and libgslcblas-0.dll into "C:\opt\local\lib"
70 25 pospelov
71 25 pospelov
h5. Install fftw3 
72 25 pospelov
73 12 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
74 6 pospelov
> unpack archive somewhere
75 6 pospelov
> copy fftw3.h to C:\opt\local\include
76 6 pospelov
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local\lib
77 15 pospelov
78 15 pospelov
h5. install BOOST
79 6 pospelov
80 6 pospelov
* install zlib and bzip2
81 6 pospelov
> from http://www.zlib.net/ into C:/opt/local/source/zlib-1.2.8
82 6 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local/source/bzip2-1.0.6
83 6 pospelov
84 6 pospelov
* Download and compile boost_1_54_0 
85 6 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
86 6 pospelov
> cd <BOOSTDIR>
87 6 pospelov
> bootstrap.bat mingw
88 6 pospelov
> b2 install --prefix=c:/opt/local toolset=gcc -sBZIP2_SOURCE="C:\opt\local\source\bzip2-1.0.6"   -sZLIB_SOURCE="C:\opt\local\source\zlib-1.2.8" address-model=32 variant=release link=static,shared threading=single,multi
89 6 pospelov
> Move c:/opt/local/include/boost_1.54/boost directory into c:/opt/local/include/boost
90 6 pospelov
91 6 pospelov
92 1 herck
h5. %PATH%
93 17 pospelov
94 17 pospelov
* Add c:\home\pospelov\development\git\BornAgain\lib;c:\opt\local\lib to PATH
95 6 pospelov
96 6 pospelov
h5. Where we are?
97 1 herck
98 39 pospelov
* At this point Qt creator Release, Debug builds are working 
99 39 pospelov
> Core + Fit + UnitTests + FunctionalTests (not App, GUI)
100 6 pospelov
101 39 pospelov
* cmake Release, Debug builds 
102 20 pospelov
> cmake -G "MinGW Makefiles"  ../BornAgain
103 1 herck
> mingw32-make -j4
104 20 pospelov
> mingw32-make check
105 39 pospelov
>> or cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug ../BornAgain
106 20 pospelov
107 20 pospelov
h2. MS Visual Studio build
108 20 pospelov
109 20 pospelov
110 20 pospelov
h5. Install VS.NET2012
111 20 pospelov
> Install En language pack
112 20 pospelov
> install "stop build on error" plugin http://visualstudiogallery.msdn.microsoft.com/91aaa139-5d3c-43a7-b39f-369196a84fa5
113 20 pospelov
114 20 pospelov
h5. Comment about installation of additional libraries
115 1 herck
> All further installations should end up in C:\opt\local_vc110
116 20 pospelov
117 1 herck
h5. Install gsl 
118 1 herck
119 41 pospelov
* download gsl-1.16-vc11.zip from http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php
120 38 pospelov
* Read build instructions containing in the archive
121 41 pospelov
> succeeded only for static build using "gslhdrs step" mentioned in gsl.vc11.readme
122 1 herck
123 29 pospelov
h5. Install fftw3
124 29 pospelov
125 22 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
126 22 pospelov
> unpack archive somewhere
127 1 herck
> copy fftw3.h to C:\opt\local_vc110\include
128 1 herck
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local_vc110\lib
129 1 herck
> generate corresponding lib file
130 1 herck
>> run "VS2012 x86 native tools command prompt"
131 23 pospelov
>>  run there "lib /def:libfftw3-3.def" to generate lib file
132 23 pospelov
133 23 pospelov
h5. install BOOST
134 23 pospelov
135 23 pospelov
* install zlib and bzip2
136 23 pospelov
> from http://www.zlib.net/ into C:/opt/local_vc110/source/zlib-1.2.8
137 24 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local_vc110/source/bzip2-1.0.6
138 23 pospelov
>> Patch bzip2 installation (MSVC specific!)
139 23 pospelov
>> Namely delete first line ("LIBRARY   LIBBZ2") from file libbz2.def
140 40 pospelov
>> This will remove unnecessary dependency from external bzip2 during later linking of boost libraries into other project
141 23 pospelov
142 23 pospelov
* Download and compile boost_1_54_0 
143 23 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
144 23 pospelov
> cd <BOOSTDIR>
145 1 herck
> bootstrap.bat
146 1 herck
> b2 install --prefix=c:/opt/local_vc110 -sBZIP2_SOURCE="C:\opt\local_vc110\source\bzip2-1.0.6"   -sZLIB_SOURCE="C:\opt\local_vc110\source\zlib-1.2.8" variant=release   link=static,shared threading=multi
147 1 herck
> Move c:/opt/local_vc110/include/boost_1.54/boost directory into c:/opt/local_vc110/include/boost
148 1 herck
149 1 herck
h5. %PATH%
150 1 herck
151 1 herck
* Add c:\opt\local_vc110\lib to PATH
152 38 pospelov
153 38 pospelov
154 38 pospelov
h5. Working with MSVC2012
155 38 pospelov
156 38 pospelov
* generate project file
157 1 herck
> cmake -G "Visual Studio 11" -DCMAKE_INCLUDE_PATH=C:/opt/local_vc110/include -DCMAKE_LIBRARY_PATH=C:/opt/local_vc110/lib ../BornAgain
158 38 pospelov
> Open BornAgain.sln in Visual Studio
159 38 pospelov
>> There will be several projects in the solution (INSTALL, ZERO_CHECK, etc), all are necessary. Select build type "Release" and do "BUILD/Build Solution"
160 39 pospelov
>> Functional tests can be runned additionally by building "check" project
161 38 pospelov
162 38 pospelov
h5. Where we are?
163 38 pospelov
164 39 pospelov
* MSVC2012 Release, Debug builds are working for Core + Fit + UnitTests + FunctionalTests