summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorL. E. Segovia <amy@amyspark.me>2025-05-18 14:35:00 -0300
committerDylan Baker <dylan@pnwbakers.com>2025-05-23 12:54:36 -0700
commit315140fd07625ea9f692ac01fc19da27ae1754c5 (patch)
tree78349698bd5d7853595bb33175f33063f1abeefa
parent82fca502e131007f21d849f6a51064a92ac5b9ba (diff)
downloadmeson-315140fd07625ea9f692ac01fc19da27ae1754c5.tar.gz
cmake: Fix toolchain including unsupported languages
The most egregious cases are Nasm (which needs to be transformed to `ASM_NASM`) and Rust (which is not yet supported by CMake). See https://cmake.org/cmake/help/v4.0/command/project.html
-rw-r--r--mesonbuild/cmake/common.py1
-rw-r--r--mesonbuild/cmake/toolchain.py9
2 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/cmake/common.py b/mesonbuild/cmake/common.py
index 7644c0b96..b7ab1ba22 100644
--- a/mesonbuild/cmake/common.py
+++ b/mesonbuild/cmake/common.py
@@ -19,6 +19,7 @@ language_map = {
'cuda': 'CUDA',
'objc': 'OBJC',
'objcpp': 'OBJCXX',
+ 'nasm': 'ASM_NASM',
'cs': 'CSharp',
'java': 'Java',
'fortran': 'Fortran',
diff --git a/mesonbuild/cmake/toolchain.py b/mesonbuild/cmake/toolchain.py
index d410886ec..11a00be5d 100644
--- a/mesonbuild/cmake/toolchain.py
+++ b/mesonbuild/cmake/toolchain.py
@@ -175,7 +175,12 @@ class CMakeToolchain:
# Set the compiler variables
for lang, comp_obj in self.compilers.items():
- prefix = 'CMAKE_{}_'.format(language_map.get(lang, lang.upper()))
+ language = language_map.get(lang, None)
+
+ if not language:
+ continue # unsupported language
+
+ prefix = 'CMAKE_{}_'.format(language)
exe_list = comp_obj.get_exelist()
if not exe_list:
@@ -211,7 +216,7 @@ class CMakeToolchain:
# Generate the CMakeLists.txt
mlog.debug('CMake Toolchain: Calling CMake once to generate the compiler state')
languages = list(self.compilers.keys())
- lang_ids = [language_map.get(x, x.upper()) for x in languages]
+ lang_ids = [language_map.get(x) for x in languages if x in language_map]
cmake_content = dedent(f'''
cmake_minimum_required(VERSION 3.10)
project(CompInfo {' '.join(lang_ids)})