From 940d79b12eaac22d4c83d833f8025339f3102390 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Fri, 24 May 2024 13:50:12 +0000 Subject: [PATCH] llvm: include build of llvm-spirv required by mesa-24.1.0 when building for iris Co-authored-by: CvH <1355173+CvH@users.noreply.github.com> --- packages/lang/llvm/package.mk | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/lang/llvm/package.mk b/packages/lang/llvm/package.mk index f2f806e2cf..efe06a6db3 100644 --- a/packages/lang/llvm/package.mk +++ b/packages/lang/llvm/package.mk @@ -13,6 +13,10 @@ PKG_DEPENDS_TARGET="toolchain llvm:host zlib" PKG_LONGDESC="Low-Level Virtual Machine (LLVM) is a compiler infrastructure." PKG_TOOLCHAIN="cmake" +if listcontains "${GRAPHIC_DRIVERS}" "iris"; then + PKG_DEPENDS_UNPACK="spirv-headers spirv-llvm-translator" +fi + PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_BUILD_TOOLS=OFF \ -DLLVM_BUILD_UTILS=OFF \ @@ -41,8 +45,21 @@ PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_ENABLE_RTTI=ON \ -DLLVM_ENABLE_UNWIND_TABLES=OFF \ -DLLVM_ENABLE_Z3_SOLVER=OFF \ + -DLLVM_SPIRV_INCLUDE_TESTS=OFF \ -DCMAKE_SKIP_RPATH=ON" +post_unpack() { + if listcontains "${GRAPHIC_DRIVERS}" "iris"; then + mkdir -p "${PKG_BUILD}"/llvm/projects/{SPIRV-Headers,SPIRV-LLVM-Translator} + tar --strip-components=1 \ + -xf "${SOURCES}/spirv-headers/spirv-headers-$(get_pkg_version spirv-headers).tar.gz" \ + -C "${PKG_BUILD}/llvm/projects/SPIRV-Headers" + tar --strip-components=1 \ + -xf "${SOURCES}/spirv-llvm-translator/spirv-llvm-translator-$(get_pkg_version spirv-llvm-translator).tar.gz" \ + -C "${PKG_BUILD}/llvm/projects/SPIRV-LLVM-Translator" + fi +} + pre_configure() { PKG_CMAKE_SCRIPT=${PKG_BUILD}/llvm/CMakeLists.txt } @@ -84,12 +101,20 @@ pre_configure_host() { post_make_host() { ninja ${NINJA_OPTS} llvm-config llvm-tblgen + + if listcontains "${GRAPHIC_DRIVERS}" "iris"; then + ninja ${NINJA_OPTS} llvm-as llvm-link llvm-spirv opt + fi } post_makeinstall_host() { mkdir -p ${TOOLCHAIN}/bin cp -a bin/llvm-config ${TOOLCHAIN}/bin cp -a bin/llvm-tblgen ${TOOLCHAIN}/bin + + if listcontains "${GRAPHIC_DRIVERS}" "iris"; then + cp -a bin/{llvm-as,llvm-link,llvm-spirv,opt} "${TOOLCHAIN}/bin" + fi } pre_configure_target() {