aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-07-27 15:26:02 -0700
committerDylan Baker <dylan@pnwbakers.com>2021-09-24 10:36:05 -0700
commitd661a0cd96e2453e8e4629c867589657b81239d1 (patch)
treedfe6acbb7a20b0f2a43e334470a311aa8f754122 /mesonbuild/modules
parent6c5bfd4c241e94f5e0f4dea9ba7fb5d5090a4802 (diff)
downloadmeson-d661a0cd96e2453e8e4629c867589657b81239d1.zip
meson-d661a0cd96e2453e8e4629c867589657b81239d1.tar.gz
meson-d661a0cd96e2453e8e4629c867589657b81239d1.tar.bz2
build: use an object rather than a dict for the dep_manifest
This really is more of a struct than a dict, as the types are disjoint and they are internally handled, (ie, not from user input). This cleans some things up, in addition I spotted a bug in the ModuleState where the dict with the version and license is passed to a field that expects just the version string.
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r--mesonbuild/modules/__init__.py2
-rw-r--r--mesonbuild/modules/pkgconfig.py16
-rw-r--r--mesonbuild/modules/unstable_external_project.py2
3 files changed, 12 insertions, 8 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 8f64120..0129909 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -45,7 +45,7 @@ class ModuleState:
self.current_lineno = interpreter.current_lineno
self.environment = interpreter.environment
self.project_name = interpreter.build.project_name
- self.project_version = interpreter.build.dep_manifest[interpreter.active_projectname]
+ self.project_version = interpreter.build.dep_manifest[interpreter.active_projectname].version
# The backend object is under-used right now, but we will need it:
# https://github.com/mesonbuild/meson/issues/1419
self.backend = interpreter.backend
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index f73e168..7be4796 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -12,18 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os
from pathlib import PurePath
+import os
+import typing as T
+from . import ExtensionModule
+from . import ModuleReturnValue
from .. import build
from .. import dependencies
-from ..dependencies import ThreadDependency
from .. import mesonlib
from .. import mlog
-from . import ModuleReturnValue
-from . import ExtensionModule
+from ..dependencies import ThreadDependency
from ..interpreterbase import permittedKwargs, FeatureNew, FeatureNewKwargs
+if T.TYPE_CHECKING:
+ from . import ModuleState
+
already_warned_objs = set()
class DependenciesHelper:
@@ -451,8 +455,8 @@ class PkgConfigModule(ExtensionModule):
'install_dir', 'extra_cflags', 'variables', 'url', 'd_module_versions',
'dataonly', 'conflicts', 'uninstalled_variables',
'unescaped_variables', 'unescaped_uninstalled_variables'})
- def generate(self, state, args, kwargs):
- default_version = state.project_version['version']
+ def generate(self, state: 'ModuleState', args, kwargs):
+ default_version = state.project_version
default_install_dir = None
default_description = None
default_name = None
diff --git a/mesonbuild/modules/unstable_external_project.py b/mesonbuild/modules/unstable_external_project.py
index 8bd3c1c..87b0ab6 100644
--- a/mesonbuild/modules/unstable_external_project.py
+++ b/mesonbuild/modules/unstable_external_project.py
@@ -232,7 +232,7 @@ class ExternalProject(NewExtensionModule):
abs_includedir = Path(abs_includedir, subdir)
abs_libdir = Path(self.install_dir, self.rel_prefix, self.libdir)
- version = self.project_version['version']
+ version = self.project_version
incdir = []
compile_args = [f'-I{abs_includedir}']
link_args = [f'-L{abs_libdir}', f'-l{libname}']