summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-10-07 16:06:00 +0200
committerJussi Pakkanen <jussi.pakkanen@mailbox.org>2025-10-29 18:59:30 +0200
commit1ae428cbb3200375d572e1b684241d760d1577a7 (patch)
treec169421b29572d0192129750be3feb80e32a765b
parent10cc5d9ceef64a536c301eb3bdfa3584568aa8dc (diff)
downloadmeson-1ae428cbb3200375d572e1b684241d760d1577a7.tar.gz
environment, backends: remove is_* methods
They are duplicates of what is already in compilers and have no state. Just use compilers. Fixes: #15082 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--mesonbuild/backend/backends.py7
-rw-r--r--mesonbuild/backend/ninjabackend.py34
-rw-r--r--mesonbuild/backend/vs2010backend.py12
-rw-r--r--mesonbuild/backend/xcodebackend.py5
-rw-r--r--mesonbuild/environment.py30
5 files changed, 30 insertions, 58 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 19f856b68..5be2ade27 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -24,6 +24,7 @@ from .. import dependencies
from .. import programs
from .. import mesonlib
from .. import mlog
+from .. import compilers
from ..compilers import detect, lang_suffixes
from ..mesonlib import (
File, MachineChoice, MesonException, MesonBugException, OrderedSet,
@@ -812,9 +813,9 @@ class Backend:
# Filter out headers and all non-source files
sources: T.List['FileOrString'] = []
for s in raw_sources:
- if self.environment.is_source(s):
+ if compilers.is_source(s):
sources.append(s)
- elif self.environment.is_object(s):
+ elif compilers.is_object(s):
result.append(s.relative_name())
# MSVC generate an object file for PCH
@@ -1393,7 +1394,7 @@ class Backend:
def get_custom_target_provided_by_generated_source(self, generated_source: build.CustomTarget) -> 'ImmutableListProtocol[str]':
libs: T.List[str] = []
for f in generated_source.get_outputs():
- if self.environment.is_library(f):
+ if compilers.is_library(f):
libs.append(os.path.join(self.get_target_dir(generated_source), f))
return libs
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 13f4cdc81..769de93ec 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -746,7 +746,7 @@ class NinjaBackend(backends.Backend):
if isinstance(genlist, (build.CustomTarget, build.CustomTargetIndex)):
continue
for src in genlist.get_outputs():
- if self.environment.is_header(src):
+ if compilers.is_header(src):
header_deps.append(self.get_target_generated_dir(target, genlist, src))
if target.vala_header:
vala_header = File.from_built_file(self.get_target_dir(target), target.vala_header)
@@ -788,8 +788,8 @@ class NinjaBackend(backends.Backend):
def get_target_source_can_unity(self, target, source: FileOrString) -> bool:
if isinstance(source, File):
source = source.fname
- if self.environment.is_llvm_ir(source) or \
- self.environment.is_assembly(source):
+ if compilers.is_llvm_ir(source) or \
+ compilers.is_assembly(source):
return False
suffix = os.path.splitext(source)[1][1:].lower()
for lang in backends.LANGS_CANT_UNITY:
@@ -964,16 +964,16 @@ class NinjaBackend(backends.Backend):
generated_source_files: T.List[File] = []
for rel_src in generated_sources.keys():
raw_src = File.from_built_relative(rel_src)
- if self.environment.is_source(rel_src):
+ if compilers.is_source(rel_src):
if is_unity and self.get_target_source_can_unity(target, rel_src):
unity_deps.append(raw_src)
abs_src = os.path.join(self.environment.get_build_dir(), rel_src)
unity_src.append(abs_src)
else:
generated_source_files.append(raw_src)
- elif self.environment.is_object(rel_src):
+ elif compilers.is_object(rel_src):
obj_list.append(rel_src)
- elif self.environment.is_library(rel_src) or modules.is_module_library(rel_src):
+ elif compilers.is_library(rel_src) or modules.is_module_library(rel_src):
pass
elif is_compile_target:
generated_source_files.append(raw_src)
@@ -991,9 +991,9 @@ class NinjaBackend(backends.Backend):
# this target. We create the Ninja build file elements for this here
# because we need `header_deps` to be fully generated in the above loop.
for src in generated_source_files:
- if not self.environment.is_separate_compile(src):
+ if not compilers.is_separate_compile(src):
continue
- if self.environment.is_llvm_ir(src):
+ if compilers.is_llvm_ir(src):
o, s = self.generate_llvm_ir_compile(target, src)
else:
o, s = self.generate_single_compile(target, src, True, order_deps=header_deps)
@@ -1041,7 +1041,7 @@ class NinjaBackend(backends.Backend):
# compile we get precise dependency info from dep files.
# This should work in all cases. If it does not, then just
# move them from orderdeps to proper deps.
- if self.environment.is_header(src):
+ if compilers.is_header(src):
header_deps.append(raw_src)
else:
transpiled_source_files.append(raw_src)
@@ -1051,11 +1051,11 @@ class NinjaBackend(backends.Backend):
# Generate compile targets for all the preexisting sources for this target
for src in target_sources.values():
- if not self.environment.is_separate_compile(src):
+ if not compilers.is_separate_compile(src):
continue
- if self.environment.is_header(src) and not is_compile_target:
+ if compilers.is_header(src) and not is_compile_target:
continue
- if self.environment.is_llvm_ir(src):
+ if compilers.is_llvm_ir(src):
o, s = self.generate_llvm_ir_compile(target, src)
obj_list.append(o)
elif is_unity and self.get_target_source_can_unity(target, src):
@@ -1872,9 +1872,9 @@ class NinjaBackend(backends.Backend):
generated_sources[ssrc] = mesonlib.File.from_built_file(gen.get_subdir(), ssrc)
# Following logic in L883-900 where we determine whether to add generated source
# as a header(order-only) dep to the .so compilation rule
- if not self.environment.is_source(ssrc) and \
- not self.environment.is_object(ssrc) and \
- not self.environment.is_library(ssrc) and \
+ if not compilers.is_source(ssrc) and \
+ not compilers.is_object(ssrc) and \
+ not compilers.is_library(ssrc) and \
not modules.is_module_library(ssrc):
header_deps.append(ssrc)
for source in pyx_sources:
@@ -2310,7 +2310,7 @@ class NinjaBackend(backends.Backend):
abss = os.path.normpath(os.path.join(self.environment.get_build_dir(), rels))
relsrc.append(rels)
abssrc.append(abss)
- elif self.environment.is_header(i):
+ elif compilers.is_header(i):
relh = i.rel_to_builddir(self.build_to_src)
absh = os.path.normpath(os.path.join(self.environment.get_build_dir(), relh))
abs_headers.append(absh)
@@ -3560,7 +3560,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485'''))
mlog.warning("Generated linker command has '-l' argument without following library name")
break
libs.add(lib)
- elif os.path.isabs(item) and self.environment.is_library(item) and os.path.isfile(item):
+ elif os.path.isabs(item) and compilers.is_library(item) and os.path.isfile(item):
absolute_libs.append(item)
guessed_dependencies = []
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index be88eb7fd..2c79be557 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -569,16 +569,16 @@ class Vs2010Backend(backends.Backend):
objects = []
languages = []
for i in srclist:
- if self.environment.is_header(i):
+ if compilers.is_header(i):
headers.append(i)
- elif self.environment.is_object(i):
+ elif compilers.is_object(i):
objects.append(i)
- elif self.environment.is_source(i):
+ elif compilers.is_source(i):
sources.append(i)
lang = self.lang_from_source_file(i)
if lang not in languages:
languages.append(lang)
- elif self.environment.is_library(i):
+ elif compilers.is_library(i):
pass
else:
# Everything that is not an object or source file is considered a header.
@@ -1481,13 +1481,13 @@ class Vs2010Backend(backends.Backend):
# Unfortunately, we can't use self.object_filename_from_source()
for gen in l.genlist:
for src in gen.get_outputs():
- if self.environment.is_source(src):
+ if compilers.is_source(src):
path = self.get_target_generated_dir(t, gen, src)
gen_src_ext = '.' + os.path.splitext(path)[1][1:]
extra_link_args.append(path[:-len(gen_src_ext)] + '.obj')
for src in l.srclist:
- if self.environment.is_source(src):
+ if compilers.is_source(src):
target_private_dir = self.relpath(self.get_target_private_dir(t),
self.get_target_dir(t))
rel_obj = self.object_filename_from_source(t, compiler, src, target_private_dir)
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index 7c040a613..87e1309a6 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -8,6 +8,7 @@ import typing as T
from . import backends
from .. import build
+from .. import compilers
from .. import mesonlib
from .. import mlog
from ..arglist import CompilerArgs
@@ -1512,7 +1513,7 @@ class XCodeBackend(backends.Backend):
phase_dict.add_item('files', file_arr)
for s in self.build_targets[name].sources:
s = os.path.join(s.subdir, s.fname)
- if not self.environment.is_header(s):
+ if not compilers.is_header(s):
file_arr.add_item(self.buildfile_ids[(name, s)], os.path.join(self.environment.get_source_dir(), s))
generator_id = 0
for gt in t.generated:
@@ -1661,7 +1662,7 @@ class XCodeBackend(backends.Backend):
# Swift can import declarations from C-based code using bridging headers.
# There can only be one header, and it must be included as a source file.
for i in target.get_sources():
- if self.environment.is_header(i) and is_swift:
+ if compilers.is_header(i) and is_swift:
relh = i.rel_to_builddir(self.build_to_src)
bridging_header = os.path.normpath(os.path.join(self.environment.get_build_dir(), relh))
break
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index dd6938366..970f012b0 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -28,15 +28,6 @@ from .envconfig import (
BinaryTable, MachineInfo, Properties, known_cpu_families, CMakeVariables,
)
from . import compilers
-from .compilers import (
- is_assembly,
- is_header,
- is_library,
- is_llvm_ir,
- is_object,
- is_separate_compile,
- is_source,
-)
from mesonbuild import envconfig
@@ -934,27 +925,6 @@ class Environment:
cmd.insert(1, '-u')
return cmd
- def is_header(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_header(fname)
-
- def is_source(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_source(fname)
-
- def is_assembly(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_assembly(fname)
-
- def is_separate_compile(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_separate_compile(fname)
-
- def is_llvm_ir(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_llvm_ir(fname)
-
- def is_object(self, fname: 'mesonlib.FileOrString') -> bool:
- return is_object(fname)
-
- def is_library(self, fname: mesonlib.FileOrString) -> bool:
- return is_library(fname)
-
def lookup_binary_entry(self, for_machine: MachineChoice, name: str) -> T.Optional[T.List[str]]:
return self.binaries[for_machine].lookup_entry(name)