forked from scribusproject/scribus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BUILDING_win32_msvc.txt
164 lines (127 loc) · 9.9 KB
/
BUILDING_win32_msvc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
BUILDING SCRIBUS ON MICROSOFT WINDOWS WITH MICROSOFT VISUAL STUDIO
==================================================================
This documentation is minimal and assume you have a decent knowledge of
Microsoft Visual Studio. No help regarding use of Visual Studio and
related tools will be provided.
You will need:
- Microsoft Vista, 7 or a more recent version
- Microsoft Visual Studio 2012 or later (for 32/64bit build)
- A recent Qt release built with corresponding Visual Studio version (minimum 5.2, recommended >= 5.3.2)
- Scribus common libraries kit downloaded from http://sourceforge.net/projects/scribus/files/scribus-libs/
- Scribus 15x libraries kit downloaded from http://sourceforge.net/projects/scribus/files/scribus-libs/
It is possible to use Microsoft Visual Studio 2012 or 2013 Express editions.
GETTING DEPENDENCIES
====================
This is a quick and dirty set of notes that will be filled out once everything's
verified as correct and working. It assumes that you'll be building all your
dependencies at a single root such as C:\Developer. The root *MUST NOT* have spaces
in its path.
Building Qt:
------------
Download the latest Qt 5 release from http://download.qt.io/official_releases/qt/ and unpack it to C:\Developer.
Follow instructions in following pages to get Qt build dependencies, noticeably perl, python and ruby:
http://doc.qt.io/qt-5/windows-requirements.html
http://doc.qt.io/qt-5/windows-building.html
Start a command line and import your Visual Studio environment:
- for building 32bit : \path\to\visual\studio\VC\vcvarsall.bat x86
- for building 64bit : \path\to\visual\studio\VC\vcvarsall.bat x86_amd64
Now cd to C:\Developer\qt-everywhere-whatever and run configure:
- Visual Studio 2012 : configure -platform win32-msvc2012 -prefix /path/where/you/want/qt5/to/be/installed -nomake examples -nomake tests -opengl desktop -opensource -mp
- Visual Studio 2013 : configure -platform win32-msvc2013 -prefix /path/where/you/want/qt5/to/be/installed -nomake examples -nomake tests -opengl desktop -opensource -mp
After configure has finished its work, run nmake. Depending on the number of processors available on your machine, a complete Qt build may
take from a few hours to several days. Once Qt has finished building, run following command to install Qt to its install directory:
nmake install
If you want to build Qt docs, you might want to run following command afterwards:
nmake docs
nmake install_docs
Once you finished building and installing Qt, you can run following command to clean Qt source directory:
nmake distclean
Building 3rd party libraries:
-----------------------------
Archives with ready-to-build solutions for scribus dependencies have been made available on Sourceforge:
http://sourceforge.net/projects/scribus/files/scribus-libs/
These archives can be used to compile all dependencies necessary for Scribus.
Two different archives are needed :
- scribus-commmon-libs-YYYYMMDD.7z : common libraries for 14x and trunk, no compilation is required here
- scribus-15x-libs-msvcXXXX-YYYYMMDD.7z : Scribus 15x specific libraries used for current Scribus 1.5.x releases
These archives are named using a scheme where:
- msvcXXXX represents the Visual Studio version needed to compile provided Visual Studio solution
- YYYYMMDD represents the date where the archive has been prepared/uploaded to Sourceforge.
For building 15x dependencies, an archive for Visual Studio 2012 is provided. This archive allows to build libraries
for 32bit and 64bit platforms using the different available toolsets, excluding the v110_xp and v120_xp ones. The default
configuration, corresponding to the msvc 2012 default toolset (v110), allows to build binaries compatible with Windows Vista and up.
Once you downloaded the two appropriate archives :
- decompress them in the *same* directory so as to get a layout similar to this one :
- your_script_libs_directory
|- scribus-1.5.x-libs-msvc2012
|- scribus-common-libs
- open the visual studio solution (*.sln) located in the scribus-1.5.x-libs-* directory
- build debug and release configurations for all platforms (Win32 and/or x64) you plan to execute scribus on
If you want to build using a different toolset, you can use msbuild through the command line. To do so you can use the provided
build-all-platform-libs.bat script. For example :
- to build with Visual Studio 2010 toolset for Win32 platform: build-all-platform-libs.bat Win32 v100
- to build with Visual Studio 2012 XP compatible toolset for Win32 platform: build-all-platform-libs.bat Win32 v110_xp
BUILDING SCRIBUS
====================
After having installed all dependencies, open Scribus-build-props.props files located in Scribus\win32\vc11 in a text editor
Update the dependency paths to match your system.
Open the Visual Studio solution located in same directoy and start building. Note: if you built dependencies with a different
toolset than the default one, you should either modify toolset directly in all projects or build the solution through command
line using msbuild.
After building completed, you will find executables in a Scribus-builds\scribus-$(configuration)-$(platform)-$(platformtoolset)\
directory, located in same directory as Scribus sources. Those executables will not function yet. Scribus resources and
dependencies must be copied to install directory first.
INSTALLING RESOURCES AND DEPENDENCIES
=====================================
To copy resources to build directory, create a batch script and copy/paste following lines :
set SCRIBUS_SRC_PATH=.\Scribus
set SCRIBUS_BUILD_ROOT=.\Scribus-builds
set SCRIBUS_INSTALL_PATH=.\Scribus-builds\scribus-debug-win32-v110
if not exist %SCRIBUS_INSTALL_PATH%\libs mkdir %SCRIBUS_INSTALL_PATH%\libs
if not exist %SCRIBUS_INSTALL_PATH%\share mkdir %SCRIBUS_INSTALL_PATH%\share
if not exist %SCRIBUS_INSTALL_PATH%\share\doc mkdir %SCRIBUS_INSTALL_PATH%\share\doc
if not exist %SCRIBUS_INSTALL_PATH%\share\plugins mkdir %SCRIBUS_INSTALL_PATH%\share\plugins
if not exist %SCRIBUS_INSTALL_PATH%\share\qml mkdir %SCRIBUS_INSTALL_PATH%\share\qml
copy %SCRIBUS_SRC_PATH%\AUTHORS %SCRIBUS_INSTALL_PATH%\share\doc
copy %SCRIBUS_SRC_PATH%\COPYING %SCRIBUS_INSTALL_PATH%\share\doc
copy %SCRIBUS_SRC_PATH%\LINKS %SCRIBUS_INSTALL_PATH%\share\doc
copy %SCRIBUS_SRC_PATH%\TRANSLATION %SCRIBUS_INSTALL_PATH%\share\doc
xcopy %SCRIBUS_SRC_PATH%\doc %SCRIBUS_INSTALL_PATH%\share\doc /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\dicts %SCRIBUS_INSTALL_PATH%\share\dicts /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\editorconfig %SCRIBUS_INSTALL_PATH%\share\editorconfig /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\iconsets\1_5_0 %SCRIBUS_INSTALL_PATH%\share\icons /s /y /i /D
copy %SCRIBUS_SRC_PATH%\resources\iconsets\1_5_0\*.xml %SCRIBUS_INSTALL_PATH%\share\icons /y
xcopy %SCRIBUS_SRC_PATH%\resources\iconsets\1_5_1 %SCRIBUS_INSTALL_PATH%\share\icons /s /y /i /D
copy %SCRIBUS_SRC_PATH%\resources\iconsets\1_5_1\*.xml %SCRIBUS_INSTALL_PATH%\share\icons /y
xcopy %SCRIBUS_SRC_PATH%\resources\loremipsum %SCRIBUS_INSTALL_PATH%\share\loremipsum /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\profiles %SCRIBUS_INSTALL_PATH%\share\profiles /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\swatches %SCRIBUS_INSTALL_PATH%\share\swatches /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\resources\templates %SCRIBUS_INSTALL_PATH%\share\templates /s /y /i /D
copy %SCRIBUS_SRC_PATH%\scribus\scribus.css %SCRIBUS_INSTALL_PATH%\libs\scribus.css /y
copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathcut\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathfinder\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\scripts %SCRIBUS_INSTALL_PATH%\share\scripts /s /y /i /D
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\samples %SCRIBUS_INSTALL_PATH%\share\samples /s /y /i /D
copy %SCRIBUS_SRC_PATH%\scribus\plugins\import\ps\import.prolog %SCRIBUS_INSTALL_PATH%\libs\import.prolog
copy %SCRIBUS_SRC_PATH%\scribus\plugins\barcodegenerator\barcode.ps %SCRIBUS_INSTALL_PATH%\share\plugins\barcode.ps
xcopy %SCRIBUS_SRC_PATH%\scribus\ui\qml %SCRIBUS_INSTALL_PATH%\share\qml /s /y
copy %SCRIBUS_SRC_PATH%\scribus\unicodemap\unicodenameslist.txt %SCRIBUS_INSTALL_PATH%\share\unicodenameslist.txt
del %SCRIBUS_BUILD_ROOT%\*CMake* /s
del %SCRIBUS_BUILD_ROOT%\*MakeFile* /s
Adjust SCRIBUS_SRC_PATH, SCRIBUS_BUILD_ROOT and SCRIBUS_INSTALL_PATH as needed and run batch script.
To install common libs:
- open the scribus-common-libs directory where you uncompressed 15x/trunk libs
- open the copy-dlls-to-15x-build-dir.bat file from scribus-common-libs directory in a text editor
- modify the SCRIBUS_BUILDS_DIR, SCRIBUS_LIB_TOOLSET and PYTHON_DIR_* variables appropriately
- execute batch file
To install version specific libs:
- open the scribus-15x-libs-msvc* directory where you uncompressed Scribus 15x libs
- open the copy-*-dlls-to-build-dir.bat file in a text editor
- modify the SCRIBUS_BUILDS_DIR and SCRIBUS_LIB_TOOLSET variables appropriately
- execute batch file
Finally copy Qt DLLs to build directory and Qt plugins directory to "qtplugins" directory.
Scribus should now run.
Crash problems at runtime? Verify that Scribus and all its dependencies use the same runtime, and that all were built
for debug or release configurations and not a mixture of the two. On Windows, it is strictly not recommended to mix
debug and release binaries. Doing so is not supported and will usually trigger unpredictable issues and crashes.
You can use depends.exe to check that the runtimes match.