diff options
| author | L. E. Segovia <amy@amyspark.me> | 2025-05-18 14:35:00 -0300 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-05-23 12:54:36 -0700 |
| commit | 315140fd07625ea9f692ac01fc19da27ae1754c5 (patch) | |
| tree | 78349698bd5d7853595bb33175f33063f1abeefa | |
| parent | 82fca502e131007f21d849f6a51064a92ac5b9ba (diff) | |
| download | meson-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.py | 1 | ||||
| -rw-r--r-- | mesonbuild/cmake/toolchain.py | 9 |
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)}) |
