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