~inkscape.dev/inkscape/trunk

15564 by Eduard Braun
Support for building with MSYS2
1
#!/usr/bin/env bash
2
# ------------------------------------------------------------------------------
3
# This script installs all dependecies required for building Inkscape with MSYS2
4
#   execute it once on an MSYS shell, i.e.
5
#    - use the "MSYS2 MSYS" shortcut in the start menu or
6
#    - run "msys2.exe" in MSYS2's installation folder
7
#
8
# MSYS2 and installed libraries can be updated later by executing
9
#   pacman -Syu --ignore=mingw-w64-*-imagemagick
10
# in an MSYS shell
11
# ------------------------------------------------------------------------------
12
13
# select if you want to build 32-bit (i686), 64-bit (x86_64), or both
14
#ARCH=mingw-w64-i686
15
#ARCH=mingw-w64-x86_64
16
ARCH={mingw-w64-i686,mingw-w64-x86_64}
17
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
18
# sync package databases
19
pacman -Sy
20
15564 by Eduard Braun
Support for building with MSYS2
21
# install basic development system, compiler toolchain and build tools
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
22
eval pacman -S --needed --noconfirm \
15564 by Eduard Braun
Support for building with MSYS2
23
bzr \
24
intltool \
25
base-devel \
26
$ARCH-toolchain \
27
$ARCH-cmake \
28
$ARCH-ninja
29
30
# install Inkscape dependecies (required)
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
31
eval pacman -S --needed --noconfirm \
15564 by Eduard Braun
Support for building with MSYS2
32
$ARCH-gc \
33
$ARCH-gsl \
34
$ARCH-popt \
35
$ARCH-libxslt \
36
$ARCH-boost \
37
$ARCH-gtk2 \
38
$ARCH-gtkmm \
39
$ARCH-gtk3 \
40
$ARCH-gtkmm3 \
41
$ARCH-gdl
42
43
# install Inkscape dependecies (optional)
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
44
eval pacman -S --needed --noconfirm \
15564 by Eduard Braun
Support for building with MSYS2
45
$ARCH-poppler \
46
$ARCH-potrace \
47
$ARCH-libcdr \
48
$ARCH-libvisio \
49
$ARCH-libwpg \
50
$ARCH-aspell \
51
$ARCH-aspell-en \
52
$ARCH-gtkspell \
15699 by Eduard Braun
cmake/MSYS2: Include libyaml for xverb feature
53
$ARCH-gtkspell3 \
54
$ARCH-libyaml
15564 by Eduard Braun
Support for building with MSYS2
55
56
# install ImageMagick (as Inkscape requires old version ImageMagick 6 we have to specify it explicitly)
57
# to prevent future updates:
58
#     add the line
59
#        "IgnorePkg = mingw-w64-*-imagemagick"
60
#     to
61
#        "C:\msys64\etc\pacman.conf"
62
#     or (always!) run pacman with the additional command line switch
63
#        --ignore=mingw-w64-*-imagemagick
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
64
for arch in $(eval echo $ARCH); do
15564 by Eduard Braun
Support for building with MSYS2
65
  case ${arch} in
66
    mingw-w64-i686)
67
      pacman -U --needed --noconfirm https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686/mingw-w64-i686-imagemagick-6.9.3.7-1-any.pkg.tar.xz
68
      ;;
69
    mingw-w64-x86_64)
70
      pacman -U --needed --noconfirm https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64/mingw-w64-x86_64-imagemagick-6.9.3.7-1-any.pkg.tar.xz
71
      ;;
72
  esac
73
done
74
75
76
# install Python and modules used by Inkscape
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
77
eval pacman -S --needed --noconfirm \
15564 by Eduard Braun
Support for building with MSYS2
78
$ARCH-python2 \
79
$ARCH-python2-pip \
80
$ARCH-python2-lxml \
15717 by Eduard Braun
cmake/MSYS2: install python2-pillow
81
$ARCH-python2-numpy \
82
$ARCH-python2-pillow
15577 by Eduard Braun
msys2installdeps.sh - Fix broken for loops (thanks for noticing jazzynico!) and avoid repeatedly synchronizing package databases
83
for arch in $(eval echo $ARCH); do
15564 by Eduard Braun
Support for building with MSYS2
84
  case ${arch} in
85
    mingw-w64-i686)
86
      /mingw32/bin/pip install coverage pyserial scour
87
      ;;
88
    mingw-w64-x86_64)
89
      /mingw64/bin/pip install coverage pyserial scour
90
      ;;
91
  esac
92
done