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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-02-14 07:09:32 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-02-14 11:56:55 +0300
commit07c6a57507e81fe68a7fb3ee23c951fc80f3a042 (patch)
treedbe0b7ad4afeb3c67a04f814a985425cdb6c074b /build_files/build_environment
parent0bc281a6dd12308f17b3d41bdc4cc1104a3e6f18 (diff)
cmake/deps: Update mesa to 20.3.4
This resolves build error with Py3.9x, use meson build system since autoconf/automake are no longer supported. This adds ninja & meson as dependencies for Linux. Reviewed By: brecht, sybren Ref D10282
Diffstat (limited to 'build_files/build_environment')
-rw-r--r--build_files/build_environment/cmake/check_software.cmake12
-rw-r--r--build_files/build_environment/cmake/mesa.cmake47
-rw-r--r--build_files/build_environment/cmake/versions.cmake4
3 files changed, 45 insertions, 18 deletions
diff --git a/build_files/build_environment/cmake/check_software.cmake b/build_files/build_environment/cmake/check_software.cmake
index 50b98ac447c..b942e32c8b7 100644
--- a/build_files/build_environment/cmake/check_software.cmake
+++ b/build_files/build_environment/cmake/check_software.cmake
@@ -33,6 +33,16 @@ if(UNIX)
yasm
)
+ if(NOT APPLE)
+ set(_required_software
+ ${_required_software}
+
+ # Needed for Mesa.
+ meson
+ ninja
+ )
+ endif()
+
foreach(_software ${_required_software})
find_program(_software_find NAMES ${_software})
if(NOT _software_find)
@@ -60,7 +70,7 @@ if(UNIX)
" ${_software_missing}\n"
"\n"
"On Debian and Ubuntu:\n"
- " apt install autoconf automake libtool yasm tcl\n"
+ " apt install autoconf automake libtool yasm tcl ninja-build meson python3-mako\n"
"\n"
"On macOS (with homebrew):\n"
" brew install autoconf automake bison libtool pkg-config yasm\n"
diff --git a/build_files/build_environment/cmake/mesa.cmake b/build_files/build_environment/cmake/mesa.cmake
index 6994d1c5813..e9782a0976f 100644
--- a/build_files/build_environment/cmake/mesa.cmake
+++ b/build_files/build_environment/cmake/mesa.cmake
@@ -20,19 +20,36 @@ set(MESA_CFLAGS "-static-libgcc")
set(MESA_CXXFLAGS "-static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a")
set(MESA_LDFLAGS "-L${LIBDIR}/zlib/lib -pthread -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a -l:libz_pic.a")
+# The 'native-file', used for overrides with the meson build system.
+# meson does not provide a way to do this using command line arguments.
+#
+# Note that we can't output to "${BUILD_DIR}/mesa/src/external_mesa" as
+# it doesn't exist when CMake first executes.
+file(WRITE ${BUILD_DIR}/mesa/tmp/native-file.ini "\
+[binaries]
+llvm-config = '${LIBDIR}/llvm/bin/llvm-config'"
+)
+
set(MESA_EXTRA_FLAGS
- CFLAGS=${MESA_CFLAGS}
- CXXFLAGS=${MESA_CXXFLAGS}
- LDFLAGS=${MESA_LDFLAGS}
- --enable-glx=gallium-xlib
- --with-gallium-drivers=swrast
- --disable-dri
- --disable-gbm
- --disable-egl
- --disable-gles1
- --disable-gles2
- --disable-llvm-shared-libs
- --with-llvm-prefix=${LIBDIR}/llvm
+ -Dbuildtype=release
+ -Dc_args=${MESA_CFLAGS}
+ -Dcpp_args=${MESA_CXXFLAGS}
+ -Dc_link_args=${MESA_LDFLAGS}
+ -Dcpp_link_args=${MESA_LDFLAGS}
+ -Dglx=gallium-xlib
+ -Dgallium-drivers=swrast
+ -Ddri-drivers=
+ -Dvulkan-drivers=
+ -Dgbm=disabled
+ -Degl=disabled
+ -Dgles1=disabled
+ -Dgles2=disabled
+ -Dshared-llvm=disabled
+ # Without this, the build fails when: `wayland-scanner` is not found.
+ # At some point we will likely want to support Wayland.
+ # Disable for now since it's not officially supported.
+ -Dplatforms=x11
+ --native-file ${BUILD_DIR}/mesa/tmp/native-file.ini
)
ExternalProject_Add(external_mesa
@@ -42,9 +59,9 @@ ExternalProject_Add(external_mesa
PREFIX ${BUILD_DIR}/mesa
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/mesa/src/external_mesa/ &&
- ${CONFIGURE_COMMAND_NO_TARGET} --prefix=${LIBDIR}/mesa ${MESA_EXTRA_FLAGS}
- BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa/ && make -j${MAKE_THREADS}
- INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa/ && make install
+ meson ${BUILD_DIR}/mesa/src/external_mesa-build --prefix=${LIBDIR}/mesa ${MESA_EXTRA_FLAGS}
+ BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja -j${MAKE_THREADS}
+ INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja install
INSTALL_DIR ${LIBDIR}/mesa
)
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index 3a44977e4d3..f61f02b8669 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -309,9 +309,9 @@ set(LIBGLU_VERSION 9.0.1)
set(LIBGLU_URI ftp://ftp.freedesktop.org/pub/mesa/glu/glu-${LIBGLU_VERSION}.tar.xz)
set(LIBGLU_HASH 151aef599b8259efe9acd599c96ea2a3)
-set(MESA_VERSION 18.3.1)
+set(MESA_VERSION 20.3.4)
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa/mesa-${MESA_VERSION}.tar.xz)
-set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be)
+set(MESA_HASH 556338446aef8ae947a789b3e0b5e056)
set(NASM_VERSION 2.15.02)
set(NASM_URI https://github.com/netwide-assembler/nasm/archive/nasm-${NASM_VERSION}.tar.gz)