summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
authorAndrew McNulty <amcn@users.noreply.github.com>2025-04-09 18:13:39 +0200
committerGitHub <noreply@github.com>2025-04-09 09:13:39 -0700
commitf23b0e7f35661645b7fec82025e72dffa189ab59 (patch)
tree24725595e179c525e71acd2cc662c23084c365f2 /mesonbuild/compilers
parent1afdac1bc4cbf9816e7109bbedef2825c4fe1155 (diff)
downloadmeson-f23b0e7f35661645b7fec82025e72dffa189ab59.tar.gz
interpreter: Error if java sources used with non-jar target (#14424)
If the user specifies java sources as input to a non-jar build target, raise an error with a message directing them to use the jar target instead. Fixes: https://github.com/mesonbuild/meson/issues/13870
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/__init__.py2
-rw-r--r--mesonbuild/compilers/compilers.py6
2 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py
index 116b3fa7a..aab761af4 100644
--- a/mesonbuild/compilers/__init__.py
+++ b/mesonbuild/compilers/__init__.py
@@ -19,6 +19,7 @@ __all__ = [
'is_llvm_ir',
'is_object',
'is_source',
+ 'is_java',
'is_known_suffix',
'lang_suffixes',
'LANGUAGES_USING_LDFLAGS',
@@ -55,6 +56,7 @@ from .compilers import (
get_base_link_args,
is_header,
is_source,
+ is_java,
is_assembly,
is_llvm_ir,
is_object,
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index a3b243dd9..3c1d58b4e 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -148,6 +148,12 @@ def is_assembly(fname: 'mesonlib.FileOrString') -> bool:
suffix = fname.split('.')[-1]
return suffix in assembler_suffixes
+def is_java(fname: mesonlib.FileOrString) -> bool:
+ if isinstance(fname, mesonlib.File):
+ fname = fname.fname
+ suffix = fname.split('.')[-1]
+ return suffix in lang_suffixes['java']
+
def is_llvm_ir(fname: 'mesonlib.FileOrString') -> bool:
if isinstance(fname, mesonlib.File):
fname = fname.fname