summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/vala.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-10-06 10:21:07 -0700
committerDylan Baker <dylan@pnwbakers.com>2025-10-06 10:22:41 -0700
commita6af0ad50373324ec9fe569e8315b03439491865 (patch)
treeed221189af614ce578190dfb51193e1efcb72b17 /mesonbuild/compilers/vala.py
parent6c5a88632f1d3319124d03eab596d57416ef16c6 (diff)
downloadmeson-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.py29
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]]: