android: fall back to SwiftShader’s LLVM
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

If no external/llvm-project directory is present, build with SwiftShader’s
static LLVM library if available. This can simplify Mesa builds inside
AOSP.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Reviewed-by: Antonio Ospite <antonio.ospite@collabora.com>
Reviewed-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37607>
This commit is contained in:
Deborah Brouwer 2025-09-26 16:26:15 -07:00
parent 23bd356b42
commit 9029c8b1e3

View file

@ -27,11 +27,20 @@ LOCAL_PATH := $(call my-dir)
MESA3D_TOP := $(dir $(LOCAL_PATH)) MESA3D_TOP := $(dir $(LOCAL_PATH))
LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\<version\>\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1) LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\<version\>\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1)
USE_LLVM_SWIFTSHADER := $(if $(wildcard external/llvm-project), false, \
$(if $(wildcard external/swiftshader/third_party/llvm-[0-9]*), true, false))
LLVM_VERSION_MAJOR = $(shell \ LLVM_VERSION_MAJOR = $(shell \
if [ -f external/llvm-project/cmake/Modules/LLVMVersion.cmake ]; then \ if [ -f external/llvm-project/cmake/Modules/LLVMVersion.cmake ]; then \
grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/cmake/Modules/LLVMVersion.cmake | grep -o '[0-9]\+'; \ grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/cmake/Modules/LLVMVersion.cmake | grep -o '[0-9]\+'; \
else \ elif [ -f external/llvm-project/llvm/CMakeLists.txt ]; then \
grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/llvm/CMakeLists.txt | grep -o '[0-9]\+'; \ grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/llvm/CMakeLists.txt | grep -o '[0-9]\+'; \
else \
ss_dir="$$(printf '%s\n' $(wildcard external/swiftshader/third_party/llvm-[0-9]*) | sort -V | tail -n1)"; \
if [ -n "$$ss_dir" ]; then \
echo "$$ss_dir" | sed -E 's|.*llvm-([0-9]+).*|\1|'; \
fi; \
fi) fi)
MESA_VK_LIB_SUFFIX_amd := radeon MESA_VK_LIB_SUFFIX_amd := radeon
@ -93,9 +102,16 @@ endif
ifneq ($(MESON_GEN_LLVM_STUB),) ifneq ($(MESON_GEN_LLVM_STUB),)
MESON_LLVM_VERSION := $(LLVM_VERSION_MAJOR).0.0 MESON_LLVM_VERSION := $(LLVM_VERSION_MAJOR).0.0
ifeq ($(strip $(USE_LLVM_SWIFTSHADER)),true)
LOCAL_C_INCLUDES += $(TOP)/external/swiftshader/third_party/llvm-$(LLVM_VERSION_MAJOR).0/include
LOCAL_STATIC_LIBRARIES += libLLVM$(LLVM_VERSION_MAJOR)_swiftshader
else
LOCAL_SHARED_LIBRARIES += libLLVM$(LLVM_VERSION_MAJOR) LOCAL_SHARED_LIBRARIES += libLLVM$(LLVM_VERSION_MAJOR)
endif endif
endif
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0) ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
LOCAL_SHARED_LIBRARIES += \ LOCAL_SHARED_LIBRARIES += \
android.hardware.graphics.mapper@4.0 \ android.hardware.graphics.mapper@4.0 \