Difference between revisions of "Compiling Inkscape on Windows 64-bit"
(→Compiling Inkscape using CMake: add note about non-functioning DESTDIR) |
(→Compiling Inkscape using CMake: sync with Compiling Inkscape on Windows (we should really optimize that and avoid duplication...)) |
||
Line 62: | Line 62: | ||
=== Compiling Inkscape using CMake === | === Compiling Inkscape using CMake === | ||
Go to source | Go to the directory containing your Inkscape source and create the build output directory. In example: | ||
<pre> | <pre> |
Revision as of 20:11, 27 January 2017
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.
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.
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.
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:
# Path to the Inkscape development libraries. if "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs64 # Path to the MinGW installation. Note: MinGW does not work with white spaces in the path name. 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 set the environment variables with the following command:
mingwenv.bat
Compiling Inkscape using CMake
Go to the directory containing your Inkscape source and create the build output directory. In example:
mkdir build cd build
You can also create an out of source build anywhere else in your file system. Just make sure that you pass the correct path to the source code directory in the next step. Create the makefiles using CMake:
# Pass the path to the source code directory as a parameter. cmake -G "MinGW Makefiles" ..
Start the build proccess. The compiled Inkscape.exe will be in bin directory afterwards:
# 2 is the number of parallel threads to use for compiling. Increase the number to utiliize more of your available CPU cores. mingw32-make -j 2
Collect all the needed files and create a selfcontaing directory:
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. (Note: Using relative paths with DESTDIR
is currently broken. Usually you can just omit the command to simply install into ./build/inkscape/
)
As cmake hides the actual compiler calls, here is a way how to see what make is doing.
mingw32-make VERBOSE=1 -j 2
Compiling Inkscape using btool (deprecated)
Note: This method was the default up to Inkscape 0.91. It still works in 0.92 but compiling using CMake as described above is the preferred option.
Compile btool
(the command line tool that handles the actual build) using
g++ buildtool.cpp -o btool -fopenmp
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).