summaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2024-06-30 13:16:42 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2024-07-11 11:53:39 +0300
commit0d7bb776e2d97d406b726b90090bbfa8df13232b (patch)
tree78817e1840f0741439871682b3c25a1e40a3067f /mesonbuild/modules
parentc2552527fb2f607052c7aed633b67dbb19f06e38 (diff)
downloadmeson-0d7bb776e2d97d406b726b90090bbfa8df13232b.tar.gz
Move OptionKey in the option source file.
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r--mesonbuild/modules/__init__.py5
-rw-r--r--mesonbuild/modules/cmake.py7
-rw-r--r--mesonbuild/modules/external_project.py3
-rw-r--r--mesonbuild/modules/gnome.py11
-rw-r--r--mesonbuild/modules/hotdoc.py3
-rw-r--r--mesonbuild/modules/i18n.py3
-rw-r--r--mesonbuild/modules/pkgconfig.py11
-rw-r--r--mesonbuild/modules/python.py7
8 files changed, 29 insertions, 21 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 046c530a8..e1b9eb27b 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -8,6 +8,7 @@ import dataclasses
import typing as T
from .. import build, mesonlib
+from ..options import OptionKey
from ..build import IncludeDirs
from ..interpreterbase.decorators import noKwargs, noPosargs
from ..mesonlib import relpath, HoldableObject, MachineChoice
@@ -134,13 +135,13 @@ class ModuleState:
machine: MachineChoice = MachineChoice.HOST,
lang: T.Optional[str] = None,
module: T.Optional[str] = None) -> T.Union[T.List[str], str, int, bool]:
- return self.environment.coredata.get_option(mesonlib.OptionKey(name, subproject, machine, lang, module))
+ return self.environment.coredata.get_option(OptionKey(name, subproject, machine, lang, module))
def is_user_defined_option(self, name: str, subproject: str = '',
machine: MachineChoice = MachineChoice.HOST,
lang: T.Optional[str] = None,
module: T.Optional[str] = None) -> bool:
- key = mesonlib.OptionKey(name, subproject, machine, lang, module)
+ key = OptionKey(name, subproject, machine, lang, module)
return key in self._interpreter.user_defined_options.cmd_line_options
def process_include_dirs(self, dirs: T.Iterable[T.Union[str, IncludeDirs]]) -> T.Iterable[IncludeDirs]:
diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py
index b9161021d..4fda7b30d 100644
--- a/mesonbuild/modules/cmake.py
+++ b/mesonbuild/modules/cmake.py
@@ -10,6 +10,7 @@ import typing as T
from . import ExtensionModule, ModuleReturnValue, ModuleObject, ModuleInfo
from .. import build, mesonlib, mlog, dependencies
+from ..options import OptionKey
from ..cmake import TargetOptions, cmake_defines_to_args
from ..interpreter import SubprojectHolder
from ..interpreter.type_checking import REQUIRED_KW, INSTALL_DIR_KW, NoneType, in_set_validator
@@ -299,7 +300,7 @@ class CmakeModule(ExtensionModule):
pkgroot = pkgroot_name = kwargs['install_dir']
if pkgroot is None:
- pkgroot = os.path.join(state.environment.coredata.get_option(mesonlib.OptionKey('libdir')), 'cmake', name)
+ pkgroot = os.path.join(state.environment.coredata.get_option(OptionKey('libdir')), 'cmake', name)
pkgroot_name = os.path.join('{libdir}', 'cmake', name)
template_file = os.path.join(self.cmake_root, 'Modules', f'BasicConfigVersion-{compatibility}.cmake.in')
@@ -370,14 +371,14 @@ class CmakeModule(ExtensionModule):
install_dir = kwargs['install_dir']
if install_dir is None:
- install_dir = os.path.join(state.environment.coredata.get_option(mesonlib.OptionKey('libdir')), 'cmake', name)
+ install_dir = os.path.join(state.environment.coredata.get_option(OptionKey('libdir')), 'cmake', name)
conf = kwargs['configuration']
if isinstance(conf, dict):
FeatureNew.single_use('cmake.configure_package_config_file dict as configuration', '0.62.0', state.subproject, location=state.current_node)
conf = build.ConfigurationData(conf)
- prefix = state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))
+ prefix = state.environment.coredata.get_option(OptionKey('prefix'))
abs_install_dir = install_dir
if not os.path.isabs(abs_install_dir):
abs_install_dir = os.path.join(prefix, install_dir)
diff --git a/mesonbuild/modules/external_project.py b/mesonbuild/modules/external_project.py
index 5fdb0214c..fb82a384d 100644
--- a/mesonbuild/modules/external_project.py
+++ b/mesonbuild/modules/external_project.py
@@ -19,7 +19,8 @@ from ..interpreterbase import FeatureNew
from ..interpreter.type_checking import ENV_KW, DEPENDS_KW
from ..interpreterbase.decorators import ContainerTypeInfo, KwargInfo, typed_kwargs, typed_pos_args
from ..mesonlib import (EnvironmentException, MesonException, Popen_safe, MachineChoice,
- get_variable_regex, do_replacement, join_args, OptionKey)
+ get_variable_regex, do_replacement, join_args)
+from ..options import OptionKey
if T.TYPE_CHECKING:
from typing_extensions import TypedDict
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index cab7c76a3..37a8b5105 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -31,6 +31,7 @@ from ..interpreterbase.decorators import typed_pos_args
from ..mesonlib import (
MachineChoice, MesonException, OrderedSet, Popen_safe, join_args, quote_arg
)
+from ..options import OptionKey
from ..programs import OverrideProgram
from ..scripts.gettext import read_linguas
@@ -516,7 +517,7 @@ class GnomeModule(ExtensionModule):
if gresource: # Only one target for .gresource files
return ModuleReturnValue(target_c, [target_c])
- install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(mesonlib.OptionKey('includedir'))
+ install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('includedir'))
assert isinstance(install_dir, str), 'for mypy'
target_h = GResourceHeaderTarget(
f'{target_name}_h',
@@ -905,7 +906,7 @@ class GnomeModule(ExtensionModule):
cflags += state.global_args[lang]
if state.project_args.get(lang):
cflags += state.project_args[lang]
- if mesonlib.OptionKey('b_sanitize') in compiler.base_options:
+ if OptionKey('b_sanitize') in compiler.base_options:
sanitize = state.environment.coredata.optstore.get_value('b_sanitize')
cflags += compiler.sanitizer_compile_args(sanitize)
sanitize = sanitize.split(',')
@@ -1642,7 +1643,7 @@ class GnomeModule(ExtensionModule):
targets = []
install_header = kwargs['install_header']
- install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(mesonlib.OptionKey('includedir'))
+ install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('includedir'))
assert isinstance(install_dir, str), 'for mypy'
output = namebase + '.c'
@@ -1954,7 +1955,7 @@ class GnomeModule(ExtensionModule):
) -> build.CustomTarget:
real_cmd: T.List[T.Union[str, 'ToolType']] = [self._find_tool(state, 'glib-mkenums')]
real_cmd.extend(cmd)
- _install_dir = install_dir or state.environment.coredata.get_option(mesonlib.OptionKey('includedir'))
+ _install_dir = install_dir or state.environment.coredata.get_option(OptionKey('includedir'))
assert isinstance(_install_dir, str), 'for mypy'
return CustomTarget(
@@ -2166,7 +2167,7 @@ class GnomeModule(ExtensionModule):
cmd.append(gir_file)
vapi_output = library + '.vapi'
- datadir = state.environment.coredata.get_option(mesonlib.OptionKey('datadir'))
+ datadir = state.environment.coredata.get_option(OptionKey('datadir'))
assert isinstance(datadir, str), 'for mypy'
install_dir = kwargs['install_dir'] or os.path.join(datadir, 'vala', 'vapi')
diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
index fc8832efc..50b5fe6f2 100644
--- a/mesonbuild/modules/hotdoc.py
+++ b/mesonbuild/modules/hotdoc.py
@@ -20,6 +20,7 @@ from ..interpreter.interpreterobjects import _CustomTargetHolder
from ..interpreter.type_checking import NoneType
from ..mesonlib import File, MesonException
from ..programs import ExternalProgram
+from ..options import OptionKey
if T.TYPE_CHECKING:
from typing_extensions import TypedDict
@@ -330,7 +331,7 @@ class HotdocTargetBuilder:
for path in self.include_paths:
self.cmd.extend(['--include-path', path])
- if self.state.environment.coredata.get_option(mesonlib.OptionKey('werror', subproject=self.state.subproject)):
+ if self.state.environment.coredata.get_option(OptionKey('werror', subproject=self.state.subproject)):
self.cmd.append('--fatal-warnings')
self.generate_hotdoc_config()
diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py
index 27c9dc00e..551e0b36f 100644
--- a/mesonbuild/modules/i18n.py
+++ b/mesonbuild/modules/i18n.py
@@ -10,6 +10,7 @@ import typing as T
from . import ExtensionModule, ModuleReturnValue, ModuleInfo
from .. import build
from .. import mesonlib
+from ..options import OptionKey
from .. import mlog
from ..interpreter.type_checking import CT_BUILD_BY_DEFAULT, CT_INPUT_KW, INSTALL_TAG_KW, OUTPUT_KW, INSTALL_DIR_KW, INSTALL_KW, NoneType, in_set_validator
from ..interpreterbase import FeatureNew, InvalidArguments
@@ -277,7 +278,7 @@ class I18nModule(ExtensionModule):
targets.append(pottarget)
install = kwargs['install']
- install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(mesonlib.OptionKey('localedir'))
+ install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('localedir'))
assert isinstance(install_dir, str), 'for mypy'
if not languages:
languages = read_linguas(path.join(state.environment.source_dir, state.subdir))
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index 1a7307079..d66c2a901 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -13,6 +13,7 @@ from . import ModuleReturnValue
from .. import build
from .. import dependencies
from .. import mesonlib
+from ..options import OptionKey
from .. import mlog
from ..options import BUILTIN_DIR_OPTIONS
from ..dependencies.pkgconfig import PkgConfigDependency, PkgConfigInterface
@@ -482,7 +483,7 @@ class PkgConfigModule(NewExtensionModule):
srcdir = PurePath(state.environment.get_source_dir())
else:
outdir = state.environment.scratch_dir
- prefix = PurePath(_as_str(coredata.get_option(mesonlib.OptionKey('prefix'))))
+ prefix = PurePath(_as_str(coredata.get_option(OptionKey('prefix'))))
if pkgroot:
pkgroot_ = PurePath(pkgroot)
if not pkgroot_.is_absolute():
@@ -499,7 +500,7 @@ class PkgConfigModule(NewExtensionModule):
if optname == 'prefix':
ofile.write('prefix={}\n'.format(self._escape(prefix)))
else:
- dirpath = PurePath(_as_str(coredata.get_option(mesonlib.OptionKey(optname))))
+ dirpath = PurePath(_as_str(coredata.get_option(OptionKey(optname))))
ofile.write('{}={}\n'.format(optname, self._escape('${prefix}' / dirpath)))
if uninstalled and not dataonly:
ofile.write('srcdir={}\n'.format(self._escape(srcdir)))
@@ -694,13 +695,13 @@ class PkgConfigModule(NewExtensionModule):
pkgroot = pkgroot_name = kwargs['install_dir'] or default_install_dir
if pkgroot is None:
if mesonlib.is_freebsd():
- pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'libdata', 'pkgconfig')
+ pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('prefix'))), 'libdata', 'pkgconfig')
pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig')
elif mesonlib.is_haiku():
- pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
+ pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig')
else:
- pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('libdir'))), 'pkgconfig')
+ pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('libdir'))), 'pkgconfig')
pkgroot_name = os.path.join('{libdir}', 'pkgconfig')
relocatable = state.get_option('relocatable', module='pkgconfig')
self._generate_pkgconfig_file(state, deps, subdirs, name, description, url,
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index 013723da0..dec77e249 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -22,7 +22,8 @@ from ..interpreterbase import (
InvalidArguments, typed_pos_args, typed_kwargs, KwargInfo,
FeatureNew, FeatureNewKwargs, disablerIfNotFound
)
-from ..mesonlib import MachineChoice, OptionKey
+from ..mesonlib import MachineChoice
+from ..options import OptionKey
from ..programs import ExternalProgram, NonExistingExternalProgram
if T.TYPE_CHECKING:
@@ -112,7 +113,7 @@ class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']):
def __init__(self, python: 'PythonExternalProgram', interpreter: 'Interpreter'):
_ExternalProgramHolder.__init__(self, python, interpreter)
info = python.info
- prefix = self.interpreter.environment.coredata.get_option(mesonlib.OptionKey('prefix'))
+ prefix = self.interpreter.environment.coredata.get_option(OptionKey('prefix'))
assert isinstance(prefix, str), 'for mypy'
self.variables = info['variables']
self.suffix = info['suffix']
@@ -373,7 +374,7 @@ class PythonModule(ExtensionModule):
def _get_install_scripts(self) -> T.List[mesonlib.ExecutableSerialisation]:
backend = self.interpreter.backend
ret = []
- optlevel = self.interpreter.environment.coredata.get_option(mesonlib.OptionKey('bytecompile', module='python'))
+ optlevel = self.interpreter.environment.coredata.get_option(OptionKey('bytecompile', module='python'))
if optlevel == -1:
return ret
if not any(PythonExternalProgram.run_bytecompile.values()):