diff --git a/meson.build b/meson.build index 51df7dd38f5..c150bff74ff 100644 --- a/meson.build +++ b/meson.build @@ -1849,7 +1849,7 @@ if dep_spirv_tools.found() endif dep_clang = null_dep -if with_clc +if with_clc or with_gallium_clover llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir') dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) @@ -1864,7 +1864,7 @@ if with_clc if dep_llvm.version().version_compare('>= 15.0') clang_modules += 'clangSupport' endif - if dep_llvm.version().version_compare('>= 16.0') + if dep_llvm.version().version_compare('>= 16.0') or with_gallium_clover clang_modules += 'clangASTMatchers' endif if dep_llvm.version().version_compare('>= 18.0') diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build index 55f5c19274b..ab2c83556a8 100644 --- a/src/gallium/targets/opencl/meson.build +++ b/src/gallium/targets/opencl/meson.build @@ -22,56 +22,6 @@ if dep_llvm.version().version_compare('>=10.0.0') polly_isl_dep = cpp.find_library('PollyISL', dirs : llvm_libdir, required : false) endif -dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) - -# meson will return clang-cpp from system dirs if it's not found in llvm_libdir -linker_rpath_arg = '-Wl,--rpath=@0@'.format(llvm_libdir) -clang_test_code = ''' - #include - int main (void) { - size_t found_pos = clang::getClangFullVersion().find(CLANG_VERSION_STRING); - return found_pos == ::std::string::npos ? 1 : 0; - } -''' -can_check_clang = (not meson.is_cross_build() or meson.can_run_host_binaries()) and cpp.has_link_argument(linker_rpath_arg) -if can_check_clang - test_run = cpp.run(clang_test_code, name : 'dep-clang-usable', - dependencies : [dep_llvm, dep_clang], args : linker_rpath_arg) - dep_clang_usable = test_run.compiled() and test_run.returncode() == 0 -else - dep_clang_usable = true -endif -if not _shared_llvm or not (dep_clang.found() and dep_clang_usable) - dep_clang = [ - cpp.find_library('clangCodeGen', dirs : llvm_libdir), - cpp.find_library('clangFrontendTool', dirs : llvm_libdir), - cpp.find_library('clangFrontend', dirs : llvm_libdir), - cpp.find_library('clangDriver', dirs : llvm_libdir), - cpp.find_library('clangSerialization', dirs : llvm_libdir), - cpp.find_library('clangParse', dirs : llvm_libdir), - cpp.find_library('clangSema', dirs : llvm_libdir), - cpp.find_library('clangAnalysis', dirs : llvm_libdir), - cpp.find_library('clangAST', dirs : llvm_libdir), - cpp.find_library('clangASTMatchers', dirs : llvm_libdir), - cpp.find_library('clangEdit', dirs : llvm_libdir), - cpp.find_library('clangLex', dirs : llvm_libdir), - cpp.find_library('clangBasic', dirs : llvm_libdir), - polly_dep, polly_isl_dep, - ] - if dep_llvm.version().version_compare('>= 15.0') - dep_clang += cpp.find_library('clangSupport', dirs : llvm_libdir) - endif - - # check clang once more - if can_check_clang - test_run = cpp.run(clang_test_code, name : 'dep-clang-usable', - dependencies : [dep_llvm, dep_clang], args : linker_rpath_arg) - if not test_run.compiled() or test_run.returncode() != 0 - error('No usable clang found!') - endif - endif -endif - ocldef_in = files(opencl_libname + '.def.in')[0] ocldef = custom_target( 'ocldef.def', @@ -90,7 +40,7 @@ libopencl = shared_library( link_with : [libpipe_loader_dynamic, libgallium], dependencies : [ idep_mesautil, - dep_clock, dep_dl, dep_unwind, dep_elf, dep_clang, dep_version + dep_clock, dep_dl, dep_unwind, dep_elf, dep_clang, polly_dep, polly_isl_dep, dep_version ], name_prefix : host_machine.system() == 'windows' ? '' : [], # otherwise mingw will create libOpenCL-1.dll or libMesaOpenCL-1.dll version : '@0@.0.0'.format(opencl_version),