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/vala.py | |
| parent | 6c5a88632f1d3319124d03eab596d57416ef16c6 (diff) | |
| download | meson-a6af0ad50373324ec9fe569e8315b03439491865.tar.gz | |
Revert "compilers: refactor sanity checking code"
This reverts commit 806289a5d27958a084bc6cba41b7cf9ccee4ecf4.
Diffstat (limited to 'mesonbuild/compilers/vala.py')
| -rw-r--r-- | mesonbuild/compilers/vala.py | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/mesonbuild/compilers/vala.py b/mesonbuild/compilers/vala.py index 230a7739b..bbaefedb6 100644 --- a/mesonbuild/compilers/vala.py +++ b/mesonbuild/compilers/vala.py @@ -8,7 +8,7 @@ import typing as T from .. import mlog from .. import mesonlib -from ..mesonlib import version_compare, LibType +from ..mesonlib import EnvironmentException, version_compare, LibType from ..options import OptionKey from .compilers import CompileCheckMode, Compiler @@ -99,25 +99,18 @@ class ValaCompiler(Compiler): return parameter_list - def _sanity_check_source_code(self) -> str: - return 'public static int main() { return 0; }' - - def _sanity_check_compile_args(self, env: Environment, sourcename: str, binname: str) -> T.List[str]: - cmdlist = self.exelist.copy() - cmdlist.extend(env.coredata.get_external_args(self.for_machine, self.language)) + def sanity_check(self, work_dir: str, environment: 'Environment') -> None: + code = 'class MesonSanityCheck : Object { }' + extra_flags: T.List[str] = [] + extra_flags += environment.coredata.get_external_args(self.for_machine, self.language) if self.is_cross: - cmdlist.extend(self.get_compile_only_args()) + extra_flags += self.get_compile_only_args() else: - cmdlist.extend(env.coredata.get_external_link_args(self.for_machine, self.language)) - cmdlist.extend(self.get_output_args(binname)) - cmdlist.append(sourcename) - return cmdlist - - def _run_sanity_check(self, env: Environment, cmdlist: T.List[str], work_dir: str) -> None: - # Vala will do a Vala -> C -> Exe, so the output file will actually have - # the name of the C compiler. - # TODO: find a way to not make this so hacky - return super()._run_sanity_check(env, [os.path.join(work_dir, 'sanity_check_for_c.exe')], work_dir) + extra_flags += environment.coredata.get_external_link_args(self.for_machine, self.language) + with self.cached_compile(code, environment.coredata, extra_args=extra_flags, mode=CompileCheckMode.COMPILE) as p: + if p.returncode != 0: + msg = f'Vala compiler {self.name_string()!r} cannot compile programs' + raise EnvironmentException(msg) def find_library(self, libname: str, env: 'Environment', extra_dirs: T.List[str], libtype: LibType = LibType.PREFER_SHARED, lib_prefix_warning: bool = True, ignore_system_dirs: bool = False) -> T.Optional[T.List[str]]: |
