mesa-clc: add an option to force inclusion of OpenCL headers

Currently mesa-clc bundles OpenCL headers from Clang only if the static
LLVM is used (which means Clang / LLVM are not present on the target
system). In some cases (e.g. when building in OpenEmbedded environemnt)
it is desirable to have shared LLVM library, but skip installing the
whole Clang runtime just to compile shaders. Add an option that forces
OpenCL headers to be bundled with the mesa-clc binary.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34551>
This commit is contained in:
Dmitry Baryshkov 2025-04-16 14:35:37 +03:00 committed by Marge Bot
parent 680752d97f
commit 419a9e9d42
2 changed files with 12 additions and 1 deletions

View file

@ -786,6 +786,16 @@ option(
description : 'Install the mesa-clc compiler (if needed for cross builds).'
)
option(
'mesa-clc-bundle-headers',
type : 'combo',
value : 'auto',
choices : [
'enabled', 'auto'
],
description : 'Bundle the OpenCL headers into the mesa-clc binary (default to bundle if static LLVM is used). Note, it might require rebuilding mesa-clc if opencl-c.h or opencl-c-base.h are changed (e.g. on Clang upgrades).'
)
option(
'precomp-compiler',
type : 'combo',

View file

@ -11,7 +11,8 @@ _libmesaclc_c_args = []
_libmesaclc_cpp_args = ['-DLLVM_LIB_DIR="@0@"'.format(llvm_libdir)]
_libmesaclc_sources = []
if not _shared_llvm
if not _shared_llvm or \
get_option('mesa-clc-bundle-headers') == 'enabled'
# LLVM 16 moved clang header path from using full version to only major version
if dep_llvm.version().version_compare('< 16')
# Prior to LLVM 16, this path used a full version