diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2025-10-06 10:21:07 -0700 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-06 10:22:41 -0700 |
| commit | a6af0ad50373324ec9fe569e8315b03439491865 (patch) | |
| tree | ed221189af614ce578190dfb51193e1efcb72b17 /mesonbuild/compilers/cs.py | |
| parent | 6c5a88632f1d3319124d03eab596d57416ef16c6 (diff) | |
| download | meson-a6af0ad50373324ec9fe569e8315b03439491865.tar.gz | |
Revert "compilers: refactor sanity checking code"
This reverts commit 806289a5d27958a084bc6cba41b7cf9ccee4ecf4.
Diffstat (limited to 'mesonbuild/compilers/cs.py')
| -rw-r--r-- | mesonbuild/compilers/cs.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/mesonbuild/compilers/cs.py b/mesonbuild/compilers/cs.py index e515c338f..4bbddeb20 100644 --- a/mesonbuild/compilers/cs.py +++ b/mesonbuild/compilers/cs.py @@ -3,10 +3,11 @@ from __future__ import annotations -import os.path +import os.path, subprocess import textwrap import typing as T +from ..mesonlib import EnvironmentException from ..linkers import RSPFileSyntax from .compilers import Compiler @@ -82,21 +83,26 @@ class CsCompiler(BasicLinkerIsCompilerMixin, Compiler): def get_pch_name(self, header_name: str) -> str: return '' - def _sanity_check_source_code(self) -> str: - return textwrap.dedent(''' - public class Sanity { - static public void Main () { + def sanity_check(self, work_dir: str, environment: 'Environment') -> None: + src = 'sanity.cs' + obj = 'sanity.exe' + source_name = os.path.join(work_dir, src) + with open(source_name, 'w', encoding='utf-8') as ofile: + ofile.write(textwrap.dedent(''' + public class Sanity { + static public void Main () { + } } - } - ''') - - def _sanity_check_compile_args(self, env: Environment, sourcename: str, binname: str) -> T.List[str]: - return self.exelist + self.get_always_args() + [sourcename] + self.get_output_args(binname) - - def _sanity_check_run_with_exe_wrapper(self, env: Environment, command: T.List[str]) -> T.List[str]: + ''')) + pc = subprocess.Popen(self.exelist + self.get_always_args() + [src], cwd=work_dir) + pc.wait() + if pc.returncode != 0: + raise EnvironmentException('C# compiler %s cannot compile programs.' % self.name_string()) if self.runner: - return [self.runner] + command - return command + cmdlist = [self.runner, obj] + else: + cmdlist = [os.path.join(work_dir, obj)] + self.run_sanity_check(environment, cmdlist, work_dir, use_exe_wrapper_for_cross=False) def needs_static_linker(self) -> bool: return False |
