[Bf-blender-cvs] [07c6a57507e] master: cmake/deps: Update mesa to 20.3.4

Campbell Barton noreply at git.blender.org
Sun Feb 14 11:06:19 CET 2021


Commit: 07c6a57507e81fe68a7fb3ee23c951fc80f3a042
Author: Campbell Barton
Date:   Sun Feb 14 15:09:32 2021 +1100
Branches: master
https://developer.blender.org/rB07c6a57507e81fe68a7fb3ee23c951fc80f3a042

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

===================================================================

M	build_files/build_environment/cmake/check_software.cmake
M	build_files/build_environment/cmake/mesa.cmake
M	build_files/build_environment/cmake/versions.cmake

===================================================================

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)



More information about the Bf-blender-cvs mailing list