Windows build » History » Version 40

pospelov, 06 Sep 2013 14:17

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 6 pospelov
50 1 herck
> (alternative install Anaconda pack (python + mingw + numpy) from http://continuum.io/downloads ) Not checked!
51 1 herck
52 1 herck
h5. Comment about installation of additional libraries
53 1 herck
> All further installations should end up in C:\opt\local
54 1 herck
55 25 pospelov
h5. Install gsl
56 1 herck
57 35 pospelov
* use previously installed MinGW to compile gsl
58 25 pospelov
> create empty directory c:\gsl-1.16
59 25 pospelov
> download source gsl-1.16.tar.gz from ftp://ftp.gnu.org/gnu/gsl/ 
60 25 pospelov
> copy unpacked directory to C:\mingw\msys\1.0\home\pospelov
61 31 pospelov
> run c:\mingw\msys\msys.bat which will bring command line prompt
62 25 pospelov
> there, navigate to c:\mingw\msys\1.0\home\pospelov\gsl-1.16
63 25 pospelov
> compile
64 25 pospelov
>> ./configure --enable-static=yes --enable-shared=yes --prefix=/c/gsl-1.16
65 25 pospelov
>> make
66 25 pospelov
>> make install
67 28 pospelov
> copy directory "C:\gsl-1.16\include\gsl"  to "C:\opt\local\include\gsl"
68 28 pospelov
> copy files libgsl-0.dll and libgslcblas-0.dll into "C:\opt\local\lib"
69 25 pospelov
70 25 pospelov
h5. Install fftw3 
71 25 pospelov
72 12 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
73 6 pospelov
> unpack archive somewhere
74 6 pospelov
> copy fftw3.h to C:\opt\local\include
75 6 pospelov
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local\lib
76 15 pospelov
77 15 pospelov
h5. install BOOST
78 6 pospelov
79 6 pospelov
* install zlib and bzip2
80 6 pospelov
> from http://www.zlib.net/ into C:/opt/local/source/zlib-1.2.8
81 6 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local/source/bzip2-1.0.6
82 6 pospelov
83 6 pospelov
* Download and compile boost_1_54_0 
84 6 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
85 6 pospelov
> cd <BOOSTDIR>
86 6 pospelov
> bootstrap.bat mingw
87 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
88 6 pospelov
> Move c:/opt/local/include/boost_1.54/boost directory into c:/opt/local/include/boost
89 6 pospelov
90 6 pospelov
91 1 herck
h5. %PATH%
92 17 pospelov
93 17 pospelov
* Add c:\home\pospelov\development\git\BornAgain\lib;c:\opt\local\lib to PATH
94 6 pospelov
95 6 pospelov
h5. Where we are?
96 1 herck
97 39 pospelov
* At this point Qt creator Release, Debug builds are working 
98 39 pospelov
> Core + Fit + UnitTests + FunctionalTests (not App, GUI)
99 6 pospelov
100 39 pospelov
* cmake Release, Debug builds 
101 20 pospelov
> cmake -G "MinGW Makefiles"  ../BornAgain
102 1 herck
> mingw32-make -j4
103 20 pospelov
> mingw32-make check
104 39 pospelov
>> or cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug ../BornAgain
105 20 pospelov
106 20 pospelov
h2. MS Visual Studio build
107 20 pospelov
108 20 pospelov
109 20 pospelov
h5. Install VS.NET2012
110 20 pospelov
> Install En language pack
111 20 pospelov
> install "stop build on error" plugin http://visualstudiogallery.msdn.microsoft.com/91aaa139-5d3c-43a7-b39f-369196a84fa5
112 20 pospelov
113 20 pospelov
h5. Comment about installation of additional libraries
114 1 herck
> All further installations should end up in C:\opt\local_vc110
115 20 pospelov
116 1 herck
h5. Install gsl 
117 1 herck
118 36 pospelov
* http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php
119 38 pospelov
* Read build instructions containing in the archive
120 39 pospelov
> succeeded only for static build using "gslhdrs" utility mentioned in gsl.vc11.readme
121 1 herck
122 29 pospelov
h5. Install fftw3
123 29 pospelov
124 22 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
125 22 pospelov
> unpack archive somewhere
126 1 herck
> copy fftw3.h to C:\opt\local_vc110\include
127 1 herck
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local_vc110\lib
128 1 herck
> generate corresponding lib file
129 1 herck
>> run "VS2012 x86 native tools command prompt"
130 23 pospelov
>>  run there "lib /def:libfftw3-3.def" to generate lib file
131 23 pospelov
132 23 pospelov
h5. install BOOST
133 23 pospelov
134 23 pospelov
* install zlib and bzip2
135 23 pospelov
> from http://www.zlib.net/ into C:/opt/local_vc110/source/zlib-1.2.8
136 24 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local_vc110/source/bzip2-1.0.6
137 23 pospelov
>> Patch bzip2 installation (MSVC specific!)
138 23 pospelov
>> Namely delete first line ("LIBRARY   LIBBZ2") from file libbz2.def
139 40 pospelov
>> This will remove unnecessary dependency from external bzip2 during later linking of boost libraries into other project
140 23 pospelov
141 23 pospelov
* Download and compile boost_1_54_0 
142 23 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
143 23 pospelov
> cd <BOOSTDIR>
144 1 herck
> bootstrap.bat
145 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
146 1 herck
> Move c:/opt/local_vc110/include/boost_1.54/boost directory into c:/opt/local_vc110/include/boost
147 1 herck
148 1 herck
h5. %PATH%
149 1 herck
150 1 herck
* Add c:\opt\local_vc110\lib to PATH
151 38 pospelov
152 38 pospelov
153 38 pospelov
h5. Working with MSVC2012
154 38 pospelov
155 38 pospelov
* generate project file
156 1 herck
> cmake -G "Visual Studio 11" -DCMAKE_INCLUDE_PATH=C:/opt/local_vc110/include -DCMAKE_LIBRARY_PATH=C:/opt/local_vc110/lib ../BornAgain
157 38 pospelov
> Open BornAgain.sln in Visual Studio
158 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"
159 39 pospelov
>> Functional tests can be runned additionally by building "check" project
160 38 pospelov
161 38 pospelov
h5. Where we are?
162 38 pospelov
163 39 pospelov
* MSVC2012 Release, Debug builds are working for Core + Fit + UnitTests + FunctionalTests