Difference between revisions of "Compiling Inkscape on Windows 64-bit"
Line 84: | Line 84: | ||
Collect all the needed files and create a selfcontaing directory. ''This currently does not work as with btool.'' | Collect all the needed files and create a selfcontaing directory. ''This currently does not work as with btool.'' | ||
<pre>mingw32-make | <pre>mingw32-make DESTDIR=mydir install</pre> | ||
See [http://stackoverflow.com/questions/11307465/destdir-and-prefix-of-make this article] in stackoverflow about the difference in | See [http://stackoverflow.com/questions/11307465/destdir-and-prefix-of-make this article] in stackoverflow about the difference in DESTDIR and PREFIX of make. | ||
After this step we have a *mydir/Program Files/inkscape/* where everything ''should'' be. | |||
As cmake hides the actual compiler calls, here is a way how to see what make is doing. | As cmake hides the actual compiler calls, here is a way how to see what make is doing. | ||
<pre>mingw32-make -j 2 VERBOSE=1</pre> | <pre>mingw32-make -j 2 VERBOSE=1</pre> |
Revision as of 12:15, 18 April 2016
For 32 bit: see Compiling Inkscape on Windows
Compiling Inkscape on Windows 64-bit works similar to compiling Inkscape on Windows 32-bit where you can find additional information.
This page only describes the basic steps that are required while highlighting the differences compared to a 32-bit build.
Requirements
MinGW-w64
Get MinGW-w64 which contains the necessary GNU developer tools to build Inkscape on Windows.
You have to download a version that is configured for building native win64 applications with win32 threading model and SEH exception handling, to ensure compatibility with the inkscape-devlibs64.
A matching build based on GCC 5.3 can be downloaded here. The exact version used for building the inkscape-devlibs64 is MinGW-w64 x86_64-5.3.0-release-win32-seh-rt_v4-rev0.7z.
CMake
CMake is a Cross-Platform buildsystem generator similar to autotools. It generates makefiles to be processed by make. Get CMake from the official website cmake.org. As of writing version 3.5.2 is the most recent version.
Inkscape development libraries for Windows 64-bit
Get the inkscape-devlibs64 which include pre-compiled binaries of all Inkscape dependencies.
To checkout via Bazaar use the command
bzr checkout --lightweight lp:inkscape-devlibs64 C:\devlibs64
The --lightweight
switch ensures that you only have to download the latest version of all binaries, C:\devlibs64
is the folder you want them to be downloaded to.
See also Inkscape Devlibs 64-bit (only relevant if you want to update the development libraries)
Inkscape source code
Get the Inkscape source code from launchpad
To checkout via Bazaar use the command
bzr checkout lp:inkscape C:\inkscape
See also additional information on obtaining Inkscape source code and working with Bazaar.
Building
Environment variables
Edit the file mingwenv.bat
in the root directory of the Inkscape source to match you local paths. Most importantly the two lines
IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs64 IF "%MINGW_PATH%"=="" set MINGW_PATH=C:\mingw64
should point to the folders containing MinGW-w64 and the inkscape-devlibs64.
Whenever you want to build Inkscape open a command prompt (cmd.exe
), change into the root directory of the Inkscape source and execute mingwenv.bat
to set environment variables.
Compiling build tool
Compile btool
(the command line tool that handles the actual build) using
g++ buildtool.cpp -o btool -fopenmp
Compiling Inkscape
Use btool
to compile Inkscape compile and create the distribution directory:
btool -file build-x64.xml -j 2
The file build-x64.xml
contains the necessary instructions for creating a standard 64-bit build.
If you want to make a GTK+ 3 build use build-x64-gtk3.xml
instead (please note that GTK+ 3 builds are experimental and not ready for production yet).
The -j
switch allows to instruct btool to use multiple parallel threads to speed up compilation (e.g. 2 in the example above).
Compiling Inkscape using CMake
Go to source code directory.
Create the output directory, where the intermediate output goes to.
mkdir build cd build
Create the makefiles using CMake.
cmake .. -G "MinGW Makefiles"
Start the build proccess. The INkscape.exe will be in build/bin directory afterwards.
mingw32-make -j 2
Collect all the needed files and create a selfcontaing directory. This currently does not work as with btool.
mingw32-make DESTDIR=mydir install
See this article in stackoverflow about the difference in DESTDIR and PREFIX of make. After this step we have a *mydir/Program Files/inkscape/* where everything should be.
As cmake hides the actual compiler calls, here is a way how to see what make is doing.
mingw32-make -j 2 VERBOSE=1