From 07c6a57507e81fe68a7fb3ee23c951fc80f3a042 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Feb 2021 15:09:32 +1100 Subject: 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 --- .../build_environment/cmake/check_software.cmake | 12 +++++- build_files/build_environment/cmake/mesa.cmake | 47 +++++++++++++++------- build_files/build_environment/cmake/versions.cmake | 4 +- 3 files changed, 45 insertions(+), 18 deletions(-) (limited to 'build_files/build_environment') 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) -- cgit v1.2.3