Welcome to mirror list, hosted at ThFree Co, Russian Federation.

linux-centos7-setup.sh « linux « build_environment « build_files - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e664f530edbee516fb5f658bd287e102f6f464be (plain)
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
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-or-later

# This script is part of the official build environment, see WIKI page for details.
# https://wiki.blender.org/wiki/Building_Blender/Other/CentOS7ReleaseEnvironment

set -e

if [ `id -u` -ne 0 ]; then
   echo "This script must be run as root"
   exit 1
fi

# yum-config-manager does not come in the default minimal install,
# so make sure it is installed and available.
yum -y update
yum -y install yum-utils

# Install all the packages needed for a new toolchain.
#
# NOTE: Keep this separate from the packages install, since otherwise
# older toolchain will be installed.
yum -y update
yum -y install epel-release
yum -y install centos-release-scl
yum -y install devtoolset-9

# Install packages needed for Blender's dependencies.
PACKAGES_FOR_LIBS=(
    # Used to checkout Blender's code.
    git
    # Used to checkout Blender's `../lib/` directory.
    subversion
    # Used to extract packages.
    bzip2
    # Used to extract packages.
    tar
    # Blender and some dependencies use `cmake`.
    cmake3
    # Apply patches from Blender's: `./build_files/build_environment/patches`
    patch
    # Use by `cmake` and `autoconf`.
    make

    # Required by: `external_nasm` which uses an `autoconf` build-system.
    autoconf
    automake
    libtool

    # Meta-build system used by various packages.
    meson
    # Builds generated by meson use Ninja for the actual build.
    ninja-build

    # Required by Blender build option: `WITH_GHOST_X11`.
    libXrandr-devel
    libXinerama-devel
    libXcursor-devel
    libXi-devel
    libX11-devel
    libXt-devel

    # Required by Blender build option: `WITH_GHOST_WAYLAND`.
    mesa-libEGL-devel
    # Required by: Blender & `external_opensubdiv` (probably others).
    mesa-libGL-devel
    mesa-libGLU-devel

    # Required by: `external_ispc`.
    zlib-devel
    # TODO: dependencies build without this, consider removal.
    rubygem-asciidoctor
    # TODO: dependencies build without this, consider removal.
    wget
    # Required by: `external_sqlite` as a build-time dependency (needed for the `tclsh` command).
    tcl
    # Required by: `external_aom`.
    # TODO: Blender is already building `external_nasm` which is listed as an alternative to `yasm`.
    # Why are both needed?
    yasm

    # Required by: `meson` (Python based build system).
    python36
    # Required by: `mako` (Python module used for building `external_mesa`)
    python-setuptools

    # Required by: `external_igc` & `external_osl` as a build-time dependency.
    bison
    # Required by: `external_osl` as a build-time dependency.
    flex
    # TODO: dependencies build without this, consider removal.
    ncurses-devel
)

# Additional packages needed for building Blender.
PACKAGES_FOR_BLENDER=(
    # Required by Blender build option: `WITH_GHOST_WAYLAND`.
    libxkbcommon-devel
)

yum -y install -y ${PACKAGES_FOR_LIBS[@]} ${PACKAGES_FOR_BLENDER[@]}

# Dependencies for Mesa
yum -y install expat-devel
python3 -m pip install mako

# Dependencies for pip (needed for buildbot-worker).
yum -y install python36-pip python36-devel

# Dependencies for asound.
yum -y install -y  \
    alsa-lib-devel pulseaudio-libs-devel

alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake 10  \
    --slave /usr/local/bin/ctest ctest /usr/bin/ctest  \
    --slave /usr/local/bin/cpack cpack /usr/bin/cpack  \
    --slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake  \
    --family cmake

alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20  \
    --slave /usr/local/bin/ctest ctest /usr/bin/ctest3  \
    --slave /usr/local/bin/cpack cpack /usr/bin/cpack3  \
    --slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3  \
    --family cmake

alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20  \
    --slave /usr/local/bin/ctest ctest /usr/bin/ctest3  \
    --slave /usr/local/bin/cpack cpack /usr/bin/cpack3  \
    --slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3  \
    --family cmake