aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2022-04-08 17:21:54 +0200
committerEli Schwartz <eschwartz93@gmail.com>2022-04-12 18:25:38 -0400
commit589600cb51534decf1ce2a10e4739dc1d4c26ae0 (patch)
tree0c5598c894142526b211bac3e3f3c9092b545fe0 /mesonbuild/dependencies
parent0176419becd232ec09cc6edf7255c562849c1d3f (diff)
downloadmeson-589600cb51534decf1ce2a10e4739dc1d4c26ae0.zip
meson-589600cb51534decf1ce2a10e4739dc1d4c26ae0.tar.gz
meson-589600cb51534decf1ce2a10e4739dc1d4c26ae0.tar.bz2
cmake: Always use all compilers for LLVM (fixes #10249)
Diffstat (limited to 'mesonbuild/dependencies')
-rw-r--r--mesonbuild/dependencies/cmake.py4
-rw-r--r--mesonbuild/dependencies/data/CMakeListsLLVM.txt1
-rw-r--r--mesonbuild/dependencies/dev.py13
3 files changed, 14 insertions, 4 deletions
diff --git a/mesonbuild/dependencies/cmake.py b/mesonbuild/dependencies/cmake.py
index cff0e58..e9a4aa3 100644
--- a/mesonbuild/dependencies/cmake.py
+++ b/mesonbuild/dependencies/cmake.py
@@ -76,10 +76,10 @@ class CMakeDependency(ExternalDependency):
# one module
return module
- def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any], language: T.Optional[str] = None) -> None:
+ def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any], language: T.Optional[str] = None, force_use_global_compilers: bool = False) -> None:
# Gather a list of all languages to support
self.language_list = [] # type: T.List[str]
- if language is None:
+ if language is None or force_use_global_compilers:
compilers = None
if kwargs.get('native', False):
compilers = environment.coredata.compilers.build
diff --git a/mesonbuild/dependencies/data/CMakeListsLLVM.txt b/mesonbuild/dependencies/data/CMakeListsLLVM.txt
index 9d3e412..da23189 100644
--- a/mesonbuild/dependencies/data/CMakeListsLLVM.txt
+++ b/mesonbuild/dependencies/data/CMakeListsLLVM.txt
@@ -1,4 +1,3 @@
-cmake_minimum_required(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} )
set(PACKAGE_FOUND FALSE)
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index c2bef0d..97d1633 100644
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -404,7 +404,18 @@ class LLVMDependencyCMake(CMakeDependency):
def __init__(self, name: str, env: 'Environment', kwargs: T.Dict[str, T.Any]) -> None:
self.llvm_modules = stringlistify(extract_as_list(kwargs, 'modules'))
self.llvm_opt_modules = stringlistify(extract_as_list(kwargs, 'optional_modules'))
- super().__init__(name, env, kwargs, language='cpp')
+
+ compilers = None
+ if kwargs.get('native', False):
+ compilers = env.coredata.compilers.build
+ else:
+ compilers = env.coredata.compilers.host
+ if not compilers or not all(x in compilers for x in ('c', 'cpp')):
+ self.is_found = False
+ mlog.warning('The LLVM dependency was not found via CMake since both a C and C++ compiler are required.')
+ return
+
+ super().__init__(name, env, kwargs, language='cpp', force_use_global_compilers=True)
# Cmake will always create a statically linked binary, so don't use
# cmake if dynamic is required